Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2021/02/03 OSS LT会 「自作したOSSに対し厳しいFeedbackがあった話」
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
1k
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
480
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
500
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
3k
考えることを仕組み化する
doyaaaaaken
1
780
プルリクへのセルフコメントという小技
doyaaaaaken
0
690
先取りKtor2.0
doyaaaaaken
1
740
Other Decks in Programming
See All in Programming
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
230
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
Getting Started with Vibe Coding
miccheng
0
190
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
小さなアプリを作って公開するまで
onozaty
0
140
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
630
Performance Optimization With LLMs
xleitix
0
250
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
930
AI Augmentation Techniques with Liberty
ivargrimstad
1
400
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
121
120k
Designing for Timeless Needs
cassininazir
1
550
Making the Leap to Tech Lead
cromwellryan
135
10k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
520
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
560
Between Models and Reality
mayunak
4
570
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
300
Abbi's Birthday
coloredviolet
4
11k
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