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
20210404 Kotlin Tech Talk発表『例外ではなくnullを返すKotlin...
Search
doyaaaaaken
April 05, 2021
Programming
1
890
20210404 Kotlin Tech Talk発表『例外ではなくnullを返すKotlinらしいAPIデザイン』
doyaaaaaken
April 05, 2021
Tweet
Share
More Decks by doyaaaaaken
See All by doyaaaaaken
コンパウンドスタートアップの“疎結合すぎない”チーム設計
doyaaaaaken
5
1.5k
スマートラウンドで試してみた ChatGPT活用成功/失敗事例8選!
doyaaaaaken
3
4.3k
Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~ @Kotlin Fest 2022
doyaaaaaken
3
830
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
370
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
400
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
2.8k
考えることを仕組み化する
doyaaaaaken
1
690
プルリクへのセルフコメントという小技
doyaaaaaken
0
620
先取りKtor2.0
doyaaaaaken
1
640
Other Decks in Programming
See All in Programming
Doma で目指す ORM 最適解
nakamura_to
1
170
カクヨムAndroidアプリのリブート
numeroanddev
0
130
単体テストの始め方/作り方
toms74209200
0
290
〜可視化からアクセス制御まで〜 BigQuery×Looker Studioで コスト管理とデータソース認証制御する方法
cuebic9bic
2
280
Use Perl as Better Shell Script
karupanerura
0
680
OpenNext + Hono on Cloudflare でイマドキWeb開発スタックを実現する
rokuosan
0
110
抽象データ型について学んだ
ryounasso
0
210
TypeScript LSP の今までとこれから
quramy
0
220
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate'"
philipschwarz
PRO
0
160
Building an Application with TDD, DDD and Hexagonal Architecture - Isn't it a bit too much?
mufrid
0
380
TSConfigからTypeScriptの世界を覗く
planck16
2
1.3k
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
yuisakamoto
6
1k
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
470
The Pragmatic Product Professional
lauravandoore
35
6.7k
Typedesign – Prime Four
hannesfritz
41
2.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Code Reviewing Like a Champion
maltzj
524
40k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Rails Girls Zürich Keynote
gr2m
94
13k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Transcript
ྫ֎Ͱͳ͘nullΛฦ͢ KotlinΒ͍͠APIσβΠϯ Kotlin Tech Talk 2021/04/05 খࢁ݈ଠ(Kenta Koyama) @doyaaaaaaken
ࣗݾհ • ࣄ • גࣜձࣾsmartround ۀϝϯόʔ / CTO • αʔόαΠυKotlinɾVueJSΛࠓΑ͘ॻ͍͍ͯ·͢
• OSS׆ಈ • kotlin-csvͷ࡞ऀʢ⭐: 250ʣ • KtorɾExposedɾkotestͷίϯτϦϏϡʔτ • झຯ • ອըɾήʔϜɾϓϩάϥϛϯάɾάϧϝɾςχεɾϘʔυήʔϜɾຑɾཱྀߦ…etc
͋Δײͨ͡՝ • java.time.LocalDateͷparseϝιου͕͍ͮΒ͍ • LocalDate.parse(dateStr: String): LocalDate • ՝1: yyyy-MM-ddܗࣜͷจࣈྻ͔͠ड͚͚ͳ͍
• ՝2: ྫ֎ͷ߹ʹඋ͑try-catchΛॻ͘ඞཁ͕͋Γ
՝ͷରॲ • จࣈྻΛύʔε͢ΔutilityؔΛ࡞ͬͨ • fun parseLocalDate(dateStr: String): LocalDate? • ՝1:
yyyy-MM-ddܗࣜͷจࣈྻ͔͠ड͚͚ͳ͍ 㱺 ෳͷϑΥʔϚοτΛύʔεՄೳʹɻղܾʂʂ • ՝2: ྫ֎ͷ߹ʹඋ͑try-catchΛॻ͘ඞཁ͕͋Γ 㱺 ྫ֎Ͱͳ͘nullΛฦ͢Α͏ʹɻղܾʂʂ
ίʔυϨϏϡʔ • ࣭༰ • ࣭ɿʰ ྫ֎Ͱͳ͘nullΛฦ͢Α͏ʹͨ͠ͷͳͥʁʱ • ݩʑJavaඪ४ϥΠϒϥϦ͕ྫ֎Λฦ͢ͷཧ༝͕͋ΔͷͰͳ͍͔ʁ • ճ
1. ྫ֎Λฦ͢ඞવੑ͕ͳ͍ͨΊ 2. nullableʹ͢Δઃܭͷ΄͏͕try-catchΛॻ͔ͣʹࡁΈɺίʔυهड़ྔ͕গͳ͘ͳΔ 3. Kotilnͷඪ४ϥΠϒϥϦͱ͔Λݟͯͯɺͪ͜Βͷ΄͏͕KotlinͬΆ͍͔Β
ίʔυϨϏϡʔ • ࣭༰ • ࣭ɿʰ ྫ֎Ͱͳ͘nullΛฦ͢Α͏ʹͨ͠ͷͳͥʁʱ • ݩʑJavaඪ४ϥΠϒϥϦ͕ྫ֎Λฦ͢ͷཧ༝͕͋ΔͷͰͳ͍͔ʁ • ճ
1. ྫ֎Λฦ͢ඞવੑ͕ͳ͍ͨΊ 2. nullableʹ͢Δઃܭͷ΄͏͕try-catchΛॻ͔ͣʹࡁΈɺίʔυهड़ྔ͕গͳ͘ͳΔ 3. Kotilnͷඪ४ϥΠϒϥϦͱ͔Λݟͯͯɺͪ͜Βͷ΄͏͕KotlinͬΆ͍͔Β ओ؍తͳճͳͷͰɺ͏গ͖ͪ͠ΜͱݴޠԽͯ͠આ໌͍ͨ͠ͱײ͍ͯͨ͡
༗ࣝऀͷݟղ • JetbrainsͷKotlin։ൃϦʔυͷਓ͕ॻ͍ͨهࣄ͕ෲམͪ͢Δ༰ͩͬͨ • Kotlin and Exceptions • ཁ •
KotlinΒ͍͠APIσβΠϯͱͯ͠… 1. ϝιουͷฦΓΛnullઐ༻ܕʹ͢Δ͜ͱͰɺϝιουͷৼΔ͍Λදݱ͖͢ 2. ྫ֎༧ظͤ͵ൃੜ࣌ʹ͛ɺͦͷྫ֎ΞϓϦέʔγϣϯͷϧʔτϨϕϧͰHandling͖͢ • JavaϥΠϒϥϦ͕ྫ֎Λฦ͢͜ͱ͕ଟ͍ͷݕࠪྫ֎͕͋Δ͔Β • Kotlinඪ४ϥΠϒϥϦ OrNull ͕͍ͭͨͷ͕ଟ͍ • ྫɿStringܕͷtoIntOrNull, ListܕͷgetOrNull, firstOrNull …
ͦͷଞɿࢀߟهࣄհ • ࠓճͷ༰ͷৄࡉҎԼهࣄʹ·ͱ·͍ͬͯ·͢ • ʰKotlinΒ͍͠APIσβΠϯʹ͢Δʹྫ֎Ͱͳ͘nullΛฦ͢ʱ ※ ଞʹKotlinؔ࿈ͷTipsܥهࣄΛ৭ʑॻ͍ͯ·͢ • ʰKotlinͷlazyʢԆॲཧʣͷΈΛௐͯࣗͰ؆қʹ࣮ͯ͠Έͨʱ •
ʰKotlinͷΫϥεҕৡͷ͍ॴʱ • ʰKotlinʹ͓͚ΔFactoryϝιουͷ࣮ύλʔϯʱ • ʰKotlinͰωετߏͷDSLΛ࣮͢Δํ๏ʱ • ʰܕ҆શʹIDͷܕΛએݴ͢Δ࣮ύλʔϯʢKotlinͷ߹ʣʱ • ʰKotlinͷSequenceͱListͷڍಈͷҧ͍ʹ͍ͭͯʱ
ձࣾએ • smartroundͰΤϯδχΞΛ ઈࢍืू͍ͯ͠·͢ʂʂ • ʰελʔτΞοϓɾࢿՈؒͷσʔλڞ༗ɾཧ ϓϥοτϑΥʔϜʱΛ։ൃ • ελʔτΞοϓ1500ࣾɾࢿՈ100͕ࣾొ •
αʔόαΠυKotlinɾVue.jsɾAWSΛར༻ • ࣾһ10໊ఔͷϑΣʔζͰ͢ ͚ͩฉ͍͍ͨํେܴͳͷͰWantedlyɾTwitter DM͔Β͓ؾܰʹ͝Ԡื͍ͩ͘͞ʂ ࢀߟ63- w αʔϏε-1ϖʔδ w ٕज़հࢿྉʰTNBSUSPVOEΛࢧ͑Δٕज़ʱ w XBOUFEMZ࠾༻ϖʔδ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ @doyaaaaaken