Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2021/02/03 OSS LT会 「自作したOSSに対し厳しいFeedbackがあった話」
Search
doyaaaaaken
February 02, 2021
Programming
1.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2021/02/03 OSS LT会 「自作したOSSに対し厳しいFeedbackがあった話」
doyaaaaaken
February 02, 2021
More Decks by doyaaaaaken
See All by doyaaaaaken
コンパウンドスタートアップの“疎結合すぎない”チーム設計
doyaaaaaken
5
1.7k
スマートラウンドで試してみた ChatGPT活用成功/失敗事例8選!
doyaaaaaken
3
4.6k
Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~ @Kotlin Fest 2022
doyaaaaaken
3
990
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
450
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
490
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
3k
考えることを仕組み化する
doyaaaaaken
1
760
プルリクへのセルフコメントという小技
doyaaaaaken
0
680
先取りKtor2.0
doyaaaaaken
1
720
Other Decks in Programming
See All in Programming
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
110
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
240
えっ!!コードを読まずに開発を!?
hananouchi
0
220
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
140
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
6.4k
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
130
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
180
どこまでゆるくて許されるのか
tk3fftk
0
500
自作OSでスライド発表する
uyuki234
1
3.8k
Featured
See All Featured
Navigating Team Friction
lara
192
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
The Cult of Friendly URLs
andyhume
79
6.9k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
530
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The SEO identity crisis: Don't let AI make you average
varn
0
520
Context Engineering - Making Every Token Count
addyosmani
9
1k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Transcript
ࣗ࡞ͨ͠OSSʹର͠ ݫ͍͠Feedback͕͋ͬͨ 2021/02/03 খࢁ݈ଠ(Kenta Koyama) @doyaaaaaaken
ࣗݾհ • SaaS৽نࣄۀͷϓϩμΫτ։ൃാͷਓؒͰ͢ • ݱࡏגࣜձࣾsmartroundͷCTO • ʰελʔτΞοϓɾࢿՈؒͷσʔλϓϥοτϑΥʔϜʱΛࢦ͍ͯ͠Δ • ελʔτΞοϓ͚ʹגओ૯ձɾࢿຊࡦɾגओ݄࣍ใࠂͷSaaS •
ࢿՈ͚ʹࢿઌཧɾࢿҊ݅ཧͷSaaS • OSS׆ಈKotlinܥ͕ϝΠϯ • KtorɾExposedͷίϯτϦϏϡʔτ • kotlin-csvΛࣗ࡞
kotlin-csvͷհ • ७ਮʹkotlinͷΈͰॻ͔ΕͨCSV Reader/Writer ʢϦϦʔε͔Β1ͷ2020/01࣌ͰStar220ఔ⭐ʣ Github Link: https://github.com/doyaaaaaken/kotlin-csv
ࠓճ͢Τϐιʔυ • ৭ʑ͍ͨ͠Τϐιʔυ͋Γ·͕͢… • ʰॳظͷ։ൃΛͲ͏͍͏;͏ʹ͔ͨ͠ʱ • ʰͲ͏͍͏τϥϒϧ͕͔͋ͬͨʱ • ʰͲ͏ͬͯStar͕૿͑ͨͷ͔ʱ •
ʰϞνϕʔγϣϯ͕ંΕͦ͏ʹͳΓɺ͔ͦ͜Βճ෮ͨ͠ͱ͖ͷʱ ࠓճͷίϨ
kotlin-csvΛ࡞ͬͨഎܠ • എܠ • KotlinCSVϥΠϒϥϦ͕ແ͔ͬͨ • JavaCSVϥΠϒϥϦ৴པͰ͖Δ͕υΩϡϝϯτ͕ղͰؾָ͕͞ͳ͔ͬͨ • ߟ͑ͨ͜ͱ •
Scalaʹscala-csvͱ͍͏ϥΠϒϥϦ͕͋ΓɺେखاۀͰΘΕ͍ͯͨͷͰɺ ͦͷݴޠݻ༗ͷϥΠϒϥϦʹχʔζ͋Γͦ͏ • kotlinmultiplatformػೳ͕͋Δ͠ʢ=ϏϧυՌ͕JVM༻Ҏ֎ʹAndroid/iOS/Έ ࠐΈ/JSɺ༷ʑͳϓϥοτϑΥʔϜͰಈ͔ͤΔܗࣜʹରԠ͢Δػೳʣɺ७ਮͳkotlinͰॻ ͔ΕͨCSVϥΠϒϥϦ͕͋ͬͨ΄͏͕ྑͦ͞͏
ϦϦʔε & ࠂ • 1લͷ2019/08/23ʹβ൛ͱͯ͠ϦϦʔε globalͷKotlin SlackίϛϡχςΟʹͯࠂ
ωΨςΟϒͳ͕͋ͬͨɾɾɾ • CSVʹΊͪΌͪ͘Όৄͦ͠͏ͳਓ͔Β 3400จࣈʢA4༻ࢴ3ຕʣͷਏͳίϝϯτ͕ଈ͍ͭͨ طଘͷ5SJFEBOE5SVFख़ͨ͠$47ϥΠϒϥϦͷ্ʹ͍͍͢%4-ΛॏͶͨ͜ͱʹ ?ɻ $47ඍົͰ͢ ඍົͳͷ༷ͷܽͱʮݱʯͰͷಛఆԽͷద߹ੑͷܽͳͷͰҾ༻͠·͢ ɻࢲɺ$47ʹڞ௨͢Δʮݱ࣮ੈքʯͰͷࠔͷൣғΛաখධՁͤͣɺ͜ΕΒͷݱ࣮Λѻ͏ͨΊʹ ͨ͠ϥΠϒϥϦΛʮϢʔβʔʹߴػೳͳϥΠϒϥϦඞཁͳ͍ʯͱҰׅΓʹ͠ͳ͍͜ͱΛ͓קΊ͠·͢ɻ
݁߹͞ΕΔ͕͋Γ·͕͢ɺԿ͕ʮख͚ͩͲෆཁͳʯػೳͳͷ͔͕໌Β͔Ͱͳ͍ͷʹରͯ͠ɺʮ?͋ͳͨຊʹͳͥ͜Μͳ͜ͱΛ͠ͳ͚ΕͳΒͳ͔ͬͨͷ͔Γͨ͘ͳ͍Ͱ͠ΐ͏ͰࢲΛ৴ͯ͡ɺ ͋ͳͨͦΕΛඞཁͱ͍ͯ͠Δʯͱ͍͏Α͏ͳͰ͢ɻ ࢲɺ͋ͳͨͷϥΠϒϥϦ͕ެ։͍ͯ͠ΔՃՁʢʮγϯϓϧ%4-ϢʔεέʔεʯʣʹযΛͯΔ͜ͱΛ͓קΊ͠·͕͢ɺख़ͨ͠ʢϓϥάΠϯՄೳͳʣ$47ϥΠϒϥϦʢෳՄʣͷ্ʹͦΕΛϥοϓ͢Δ͜ͱ Λ͓קΊ͠·͢ɻ ͳͥϓϥΨϒϧͳͷ͔ʁωΠςΟϒʯͳσΟεϏδϣϯؔ࿈ੑ͕͋Γ·͕͢ɺ+7.্ͰɺϓϩάϥϜ͕ՄೳͳݶΓσʔλͷγϦΞϥΠζύʔεσʔλϚοϐϯάͷͭͷʮϑΝϛϦʔʯʹݻࣥ͢Δཧ༝͕͋ Γ·͢ɻ ྫ͑ɺΧϥϜϔομͷσʔλϑΟʔϧυϓϩύςΟ໊ͷҰ؏ͨ͠ϚοϐϯάɺͦΕΒ͕૬ޓӡ༻Ͱ͖ΔΑ͏ʹࣄΛઃఆ͢ΔҰ؏ͨ͠ํ๏ͳͲͰ͢ɻ ྫ͑ɺ֎෦ఆٛͷ$47ϑΝΠϧΛಡΈॻ͖͠ͳ͚ΕͳΒͳ͍ΞϓϦʹऔΓΜͰ͍·͢ɻ ࣮ࡍʹ547 ·ͨɺ͜ΕΒΛ,PUMJOΫϥεʹσʔλϚοϐϯάͯ͠ɺ෦ͷϏδωεϩδοΫαʔυύʔςΟͷ πʔϧʢ(6*%#ͳͲʣʹެ։͢Δඞཁ͕͋Γ·͢ɻ Ϩίʔυ൪߸ʯͷΑ͏ͳίϥϜͷݟग़͠ͷΑ͏ͳʮ୯७ͳʯͷΛ࠷ޙ·ͰҰ؏࣏ͨ͠ྍΛड͚Δͷɺ৴͡ΒΕͳ͍΄Ͳͷۤ௧Ͱ͢ɻ ͬͱඍົͳ547ϑΝΠϧ λϒDTW Ҿ༻ූͰғ·ΕͨΛؚΉ͔ɺؚ·ͳ͍͔ ϔομͷॱ൪໌Β͔ʹͳΔͷ͔ ಡΈࠐΈ࣌ʹॱ൪͕ڰ͍ͬͯΔ͜ͱΛݕग़Ͱ͖Δͷ͔ ॻ͖ࠐΈ࣌ʹͲ͏͔ ಡ ΈऔΓͱॻ͖ࠐΈಉ͡༰Λੜ͠ͳ͚ΕͳΒͳ͍ͷ͔ɺͦΕͱ୯ʹཧతʹಉͷ༰Λੜ͠ͳ͚ΕͳΒͳ͍ͷ͔ʁεΩʔϚσʔλͷݕূʹ༻Ͱ͖Δ͔ DTWTDIFNBͷΑ͏ʹ ɺΧϥϜ໊Ͱσʔλ ΛݕࡧͰ͖Δ͔ Ճܽམͨ͠ΧϥϜ͋Γ·͔͢ʁۭͷψϧ·ͨͰ͔͢ʁೖྗ͞Ε͍ͯ·͔͢ ແޮͳڋ൱͞ΕΔ͔͞ΕΔ͔ ɺΤεέʔϓ༻͞Ε͍ͯ·͔͢ ༻͞Ε͍ͯΔ߹ɺ ͲͷΑ͏ͳελΠϧͰ͔͢ ຒΊࠐ·Εͨվߦଘࡏ͢Δ͔ʁ ͜ΕΒͷҰ෦ʹա͗·ͤΜɻओཁͳ$47ϥΠϒϥϦͷνΣοΫΠϯཤྺΛݟΕɺগͣͭ͠ղܾ͞Ε͖ͯͨͷྺ࢙ΛݟΔ͜ͱ͕Ͱ͖·͢ɻ ϥΠϒϥϦ࡞ऀͷࢹͰ൚༻తͳέʔεͰɺಠࣗͷύʔαΛॻ͔ͳ͍͜ͱΛڧ͓͘קΊ͠·͢ɻ ϥΠϒϥϦͷফඅऀͷ؍͔Βɺݹ͍ख़ͨ͠ڞಉσʔλϕʔεʹج͍͍ͮͯͳ͍$47ϥΠϒϥϦʹ͔ۙͮͳ͍Α͏ʹ͍ͨ͠ͱࢥ͍·͢ՃՁ͕Ͳ͏Ͱ͋ΕϦεΫΛෛ͏Ձ͋Γ·ͤΜɻ աڈ ͷؒʹɺʮ͜ΕͰेͩΑʯͱ͍͏༮ஓͳࢼΈ͕ԿߦΘΕ͖ͯ·ͨ͠ ࢲଟ͘ͷ$47ϥΠϒϥϦ͕σʔλϚοϐϯάϥΠϒϥϦʹؔ࿈͍ͯ͠Δ͜ͱΛൃݟ͠·ͨ͠ɻࢲɺDTWͷಡΈࠐΈ͕σʔλϕʔεΞΫηευΩϡϝϯτͷղੳʹ༻͞ΕΔͷͱಉ͡Α͏ͳ༻ྫ͕͋Δͱߟ ͍͑ͯ·͢DTWͷڞ௨ͷʮίΠϯͷཪଆʯͰ͢ɻͦͷ݁Ռɺྫ͑+BDLTPOσʔλόΠϯσΟϯά ΦϒδΣΫτϚούʔ +BDLTPO$47Ϟδϡʔϧɺ·ͨ4JNQMF'MBU.BQQFSKECDDTWͯ͢ͷؔ࿈͢Δ Ϛοϐϯάڞ௨ͷσʔλϚοϐϯάϥΠϒϥϦ KECDϕʔεͷϚούʔͷΑ͏ͳ ʹ౷߹͞ΕͨͷʹͳΓ·͢ɻ ϓϥάΠϯՄೳͳ$47ϥΠϒϥϦΛ༻͍ͯ͠Δ߹ɺϓϥάΠϯՄೳͳΦϒδΣΫτσʔλϚούʔͱʮϖΞϦϯάʯͰ͖ΔΑ͏ʹ͍ͨ͠ͱࢥ͏͔͠Εͳ͍ͷͰɺ͜ͷʹҙ͍ͯͩ͘͠͞ɻ͜ΕʹΑΓɺෳ ͷγϦΞϥΠθʔγϣϯͰಈ࡞͢Δڞ௨ͷΫϥεఆٛͱΞϊςʔγϣϯηοτΛ༻͢Δ͜ͱ͕Ͱ͖·͢ɻ ʢ˞%FFQ-ແྉ൛༁ʣ ※ ҰݴͰ͍͏ͱʮCSVͱ͍͏՝ΛաখධՁ͗͢͠ɻख़͍ͯ͠ͳ͍ϥΠϒϥϦ͍ͨ͘ͳ͍ɻʯͱ͍͏ҙݟ
։ൃఀࢭɾެ։ఀࢭ͖͔͢ͷ໎͍ • ໎͍1: ࢦఠ༰Ұݸਓͷҙݟͱͯ͠શʹਖ਼͍͠ • ʮख़ͨ͠ϥΠϒϥϦΛ͏ʯͱ͍͏ҙݟਅͬͳҙݟ • ໎͍2: ࢲࣗCSVʹ͍ͭͯৄ͍͠ਓͰͳ͍ •
RFCಡΜ͕ͩɺ࣮ଶͷʹ͍ͭͯૉਓ • ࢦఠͨ͠ਓઐੑ͕ߴͦ͏ 㱺 ͜ͷ··։ൃɾެ։ΛਐΊͯେৎͳͷ͔ʹ໎͍͕ग़ͯ ɹ Ϟνϕʔγϣϯ͕ંΕ͔͚ͨ
։͖Γ • ։͖ΕΔ͚ͩͷࠜڌ͕ʢͨ·ͨ·ʣ͋ͬͨ • scala-csvͷ࣮ϩδοΫΛࢀߟʹͨͨ͠ΊࣗલϩδοΫͰͳ͘ ͋Δఔͷ҆৺ײ͋ͬͨ • scala-csvʹ͋ͬͨCSVςετσʔλʹ͍ͭͯɺͦΕΒʹؔ͢Δςετ͕શͯ kotlin-csvͷςετͰύε͢ΔΑ͏ʹ͍ͯͨ͠ •
݁ • ެ։ࣗମଓ͚Α͏ • ։ൃͱΓ͋͑ͣଓ͚Α͏ • ͠ϥΠϒϥϦར༻ऀʹτϥϒϧ͕සൃ͢ΔΑ͏ͳΒɺެ։ɾ։ൃΛΊΑ͏
ͦͷޙͷճ෮ • ಛஈએແ͠ͰStar͕গͣͭࣗ͠વ૿Ճ͍ͯͬͨ͠ • mavenϦϙδτϦ͔ΒݟΕΔμϯϩʔυࣗવ૿Ճ͍ͯͬͨ͠ • IssuePull RequestఆظతʹཱͭΑ͏ʹͳͬͨ 㱺 ͬͺΓχʔζ͋ΔͷͰʁͱࣗ৴ճ෮ͨ͠
࠷ޙʹ 1.ϑΟʔυόοΫେࣄ͕ͩɺࣗͳΓͷߟ͕͑ͦ͜Ұ൪େࣄ • ϑΟʔυόοΫʹͦͷ··ै͏ͷͰͳ͘ɺϑΟʔυόοΫΛࣗͷߟ͑ͱөͤ͞Δ • ݖҖͷ͋Γͦ͏ͳਓ͔ΒͷҙݟʢϚαΧϦʣ͕͋ͬͨͱͯ͠Ҥॖ͠ͳ͍ • શੈքʹެ։͢ΔݶΓɺͲΜͳOSSͰࣗͷΑΓͦͷྖҬʹৄ͍͠ਓ͕ඞͣͨ͘͞Μ͍Δ 2.օ͞ΜOSS࡞ͬͯωΨςΟϒͳҙݟΛड͚ͨͱ͖ʹɺ ͜ͷLTΛࢥ͍ฦͯ͠ݩؾΛग़͍͚ͯͨͩ͠Εͱࢥ͍·͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ @doyaaaaaken