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
460
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
490
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
3k
考えることを仕組み化する
doyaaaaaken
1
780
プルリクへのセルフコメントという小技
doyaaaaaken
0
680
先取りKtor2.0
doyaaaaaken
1
730
Other Decks in Programming
See All in Programming
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
Security issues being discussed on Web Platforms
petamoriken
0
820
iOSDC2026登壇資料.pdf
riofujimon
0
120
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
430
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
130
Jetpack Compose メカニズム
skydoves
0
140
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
110
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
510
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
140
What We Talk About When We Talk About XP
m_seki
2
570
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
440
Featured
See All Featured
Fireside Chat
paigeccino
43
4k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
It's Worth the Effort
3n
188
29k
How to build a perfect <img>
jonoalderson
1
6k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
900
Making the Leap to Tech Lead
cromwellryan
135
10k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Curious Case for Waylosing
cassininazir
1
500
How GitHub (no longer) Works
holman
316
150k
The SEO Collaboration Effect
kristinabergwall1
1
550
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