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
930
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
910
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
410
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
450
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
2.9k
考えることを仕組み化する
doyaaaaaken
1
730
プルリクへのセルフコメントという小技
doyaaaaaken
0
650
先取りKtor2.0
doyaaaaaken
1
680
Other Decks in Programming
See All in Programming
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
0
250
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
520
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
230
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.3k
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
37k
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
330
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.4k
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
230
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4.9k
AIエージェントの設計で注意するべきポイント6選
har1101
6
2.9k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
330
Go コードベースの構成と AI コンテキスト定義
andpad
0
150
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
Practical Orchestrator
shlominoach
190
11k
Statistics for Hackers
jakevdp
799
230k
Facilitating Awesome Meetings
lara
57
6.7k
Making Projects Easy
brettharned
120
6.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
140
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
410
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
100k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
1
340
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
100
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
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