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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
doyaaaaaken
February 02, 2021
Programming
1.7k
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.5k
Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~ @Kotlin Fest 2022
doyaaaaaken
3
980
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
450
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
480
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
3k
考えることを仕組み化する
doyaaaaaken
1
760
プルリクへのセルフコメントという小技
doyaaaaaken
0
680
先取りKtor2.0
doyaaaaaken
1
720
Other Decks in Programming
See All in Programming
Agentic UI
manfredsteyer
PRO
0
190
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
910
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
730
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
210
さぁV100、メモリをお食べ・・・
nilpe
0
150
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
1B+ /day規模のログを管理する技術
broadleaf
0
110
Performance Engineering for Everyone
elenatanasoiu
0
210
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
13k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
360
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Faster Mobile Websites
deanohume
310
32k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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