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
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
730
Other Decks in Programming
See All in Programming
AWSに止められる覚悟してますか?
morizo_1984
2
530
Kubernetes祭り #2 OP/ED
bells17
0
110
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
380
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
410
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
150
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
170
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
460
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.6k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
170
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
160
パスワード再設定メールのURLについて知っておこう
uyuki234
0
140
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
440
HDC tutorial
michielstock
2
960
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
320
What's in a price? How to price your products and services
michaelherold
247
13k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
A designer walks into a library…
pauljervisheath
211
25k
Un-Boring Meetings
codingconduct
0
450
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
The SEO Collaboration Effect
kristinabergwall1
1
590
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