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
950
20210404 Kotlin Tech Talk発表『例外ではなくnullを返すKotlinらしいAPIデザイン』
doyaaaaaken
April 05, 2021
Tweet
Share
More Decks by doyaaaaaken
See All by doyaaaaaken
コンパウンドスタートアップの“疎結合すぎない”チーム設計
doyaaaaaken
5
1.6k
スマートラウンドで試してみた ChatGPT活用成功/失敗事例8選!
doyaaaaaken
3
4.4k
Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~ @Kotlin Fest 2022
doyaaaaaken
3
930
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
420
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
460
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
2.9k
考えることを仕組み化する
doyaaaaaken
1
740
プルリクへのセルフコメントという小技
doyaaaaaken
0
660
先取りKtor2.0
doyaaaaaken
1
690
Other Decks in Programming
See All in Programming
Oxlint JS plugins
kazupon
1
1.1k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
7
1.1k
Oxlintはいいぞ
yug1224
5
1.5k
ふん…おもしれぇ Parser。RubyKaigi 行ってやるぜ
aki_pin0
0
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
120
Premier Disciplin for Micro Frontends Multi Version/ Framework Scenarios @OOP 2026, Munic
manfredsteyer
PRO
0
170
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
240
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
120
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.5k
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜 / Understanding nil in Go Interface Representation and Why nil != nil
kuro_kurorrr
1
360
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
270
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
4 Signs Your Business is Dying
shpigford
187
22k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
330
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Site-Speed That Sticks
csswizardry
13
1.1k
Between Models and Reality
mayunak
1
210
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
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