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
970
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20210404 Kotlin Tech Talk発表『例外ではなくnullを返すKotlinらしいAPIデザイン』
doyaaaaaken
April 05, 2021
More Decks by doyaaaaaken
See All by doyaaaaaken
コンパウンドスタートアップの“疎結合すぎない”チーム設計
doyaaaaaken
5
1.7k
スマートラウンドで試してみた ChatGPT活用成功/失敗事例8選!
doyaaaaaken
3
4.5k
Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~ @Kotlin Fest 2022
doyaaaaaken
3
970
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
450
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
480
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
3k
考えることを仕組み化する
doyaaaaaken
1
760
プルリクへのセルフコメントという小技
doyaaaaaken
0
670
先取りKtor2.0
doyaaaaaken
1
710
Other Decks in Programming
See All in Programming
Oxlintのカスタムルールの現況
syumai
6
1.1k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
530
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.3k
Lessons from Spec-Driven Development
simas
PRO
0
150
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
250
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
320
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.2k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
330
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
280
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
230
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
A Tale of Four Properties
chriscoyier
163
24k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Mobile First: as difficult as doing things right
swwweet
225
10k
Marketing to machines
jonoalderson
1
5.4k
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