Submit Search
Upload
2019 kotlin-rejected-fest-doyaaaaaken
•
Download as PPTX, PDF
•
3 likes
•
7,527 views
Koyama Kenta
Follow
Kotlin Fest Reject Conference 2019 [非公式]での発表資料 by @doyaaaaaken
Read less
Read more
Software
Report
Share
Report
Share
1 of 24
Download now
Recommended
Node-REDについて
Node-REDについて
Atsushi Kojo
Node redでソーシャルデータ分析
Node redでソーシャルデータ分析
Atsushi Kojo
すぐにでも使える Windows Virtual Desktop
すぐにでも使える Windows Virtual Desktop
Tsukasa Kato
Flutterと Kotlin Multiplatform Mobileを ディープに理解して比較する
Flutterと Kotlin Multiplatform Mobileを ディープに理解して比較する
RyotaNishimine
リーンとかいろいろあるけどどう違うの
リーンとかいろいろあるけどどう違うの
Taro Kawai
GAになったGolangでCDKを触ってみよう
GAになったGolangでCDKを触ってみよう
Atsushi Umakatsu
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
masahito12
20191010 Blockchain GIG #5 石原様資料
20191010 Blockchain GIG #5 石原様資料
オラクルエンジニア通信
Recommended
Node-REDについて
Node-REDについて
Atsushi Kojo
Node redでソーシャルデータ分析
Node redでソーシャルデータ分析
Atsushi Kojo
すぐにでも使える Windows Virtual Desktop
すぐにでも使える Windows Virtual Desktop
Tsukasa Kato
Flutterと Kotlin Multiplatform Mobileを ディープに理解して比較する
Flutterと Kotlin Multiplatform Mobileを ディープに理解して比較する
RyotaNishimine
リーンとかいろいろあるけどどう違うの
リーンとかいろいろあるけどどう違うの
Taro Kawai
GAになったGolangでCDKを触ってみよう
GAになったGolangでCDKを触ってみよう
Atsushi Umakatsu
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
masahito12
20191010 Blockchain GIG #5 石原様資料
20191010 Blockchain GIG #5 石原様資料
オラクルエンジニア通信
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
Futa HIRAKOBA
ODC 2020 : "Rocky 8"
ODC 2020 : "Rocky 8"
Naoto Gohko
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
Tsukasa Kato
リモート先へログインする時環境あるある
リモート先へログインする時環境あるある
Ryota Sakamoto
2018 07-23
2018 07-23
Yuji Oshima
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
Takehiro Kudou
2018 07-19dist
2018 07-19dist
Yuji Oshima
5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて
Masanori Kusunoki
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
NTT Software Innovation Center
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
Try IoT with Node-RED
Try IoT with Node-RED
Kimihiko Kitase
Katib
Katib
Yuji Oshima
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
Nobuyuki Matsui
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
シスコシステムズ合同会社
インフラCICDの勘所
インフラCICDの勘所
Toru Makabe
Rust で RTOS を考える
Rust で RTOS を考える
ryuz88
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
Kentaro Ebisawa
SendGrid SDKを捨てた話
SendGrid SDKを捨てた話
Yuta Matsumura
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
Katz Ueno
ベアメタルプロビジョニング(Ironic)について
ベアメタルプロビジョニング(Ironic)について
Mitsuhiro SHIGEMATSU
More Related Content
Similar to 2019 kotlin-rejected-fest-doyaaaaaken
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
Futa HIRAKOBA
ODC 2020 : "Rocky 8"
ODC 2020 : "Rocky 8"
Naoto Gohko
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
Tsukasa Kato
リモート先へログインする時環境あるある
リモート先へログインする時環境あるある
Ryota Sakamoto
2018 07-23
2018 07-23
Yuji Oshima
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
Takehiro Kudou
2018 07-19dist
2018 07-19dist
Yuji Oshima
5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて
Masanori Kusunoki
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
NTT Software Innovation Center
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
Try IoT with Node-RED
Try IoT with Node-RED
Kimihiko Kitase
Katib
Katib
Yuji Oshima
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
Nobuyuki Matsui
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
シスコシステムズ合同会社
インフラCICDの勘所
インフラCICDの勘所
Toru Makabe
Rust で RTOS を考える
Rust で RTOS を考える
ryuz88
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
Kentaro Ebisawa
SendGrid SDKを捨てた話
SendGrid SDKを捨てた話
Yuta Matsumura
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
Katz Ueno
ベアメタルプロビジョニング(Ironic)について
ベアメタルプロビジョニング(Ironic)について
Mitsuhiro SHIGEMATSU
Similar to 2019 kotlin-rejected-fest-doyaaaaaken
(20)
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
ODC 2020 : "Rocky 8"
ODC 2020 : "Rocky 8"
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
今後のContainerの行く末の感じたこと、思ったこと〜JKD参加報告〜
リモート先へログインする時環境あるある
リモート先へログインする時環境あるある
2018 07-23
2018 07-23
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
2018 07-19dist
2018 07-19dist
5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Try IoT with Node-RED
Try IoT with Node-RED
Katib
Katib
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(応用編)
インフラCICDの勘所
インフラCICDの勘所
Rust で RTOS を考える
Rust で RTOS を考える
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
SendGrid SDKを捨てた話
SendGrid SDKを捨てた話
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
ベアメタルプロビジョニング(Ironic)について
ベアメタルプロビジョニング(Ironic)について
2019 kotlin-rejected-fest-doyaaaaaken
1.
KOTLIN DSL パターン 2019/9/9
Kotlin Fest Rejected Conference 2019 小山 健太 (Koyama Kenta) Twitter/Github @doyaaaaaken
2.
自己紹介 • 活動領域: ・サーバサイドメインのフルスタックエンジニア(という名のなん でも屋) ・SaaSの立ち上げ期が好きで3度ほど経験 • 趣味: ・漫画・ボードゲーム・麻雀・テニス・ポーカー… ・最近はKotlin製OSSへのコントリビュート(ktor,
Exposed, kotlintest, kohttp)、自作OSS(kotlin-csv)とかも
3.
会社紹介 smartround株式会社で 起業家・投資家間の 資金調達プロセスを管理する SaaSの開発をしています (ktorが1.0.0-betaの頃に開 発スタートしました) https://jp.smartround.com/
4.
発表のゴール 1. Kotlin DSLについてパターン化 ⇒
記憶・整理の手助けとなる 2. 詳細な実装方式を紹介 ⇒ 明日から書きたくなる
5.
DSL例1 • kotlintest (testing
library)
6.
DSL例2 • ktor (web
framework)
7.
DSL例3 • Exposed (O/R
Mapper)
8.
• よく見るパターンを4つ紹介します • 覚えやすいようにパターンには仮の名前をつけてます •
Kotlinの機能をそのまま使っているものも 便宜上パターンと呼んでいます • ちなみにMartinFowlerは50パターンぐらい紹介してましたw https://martinfowler.com/dslCatalog/
9.
1. SENTENCE PATTERN •
ドット・括弧無しのメソッド呼び出しにより、文っぽくするやつ
10.
1. SENTENCE PATTERN
11.
2. OPERATOR OVERRIDE
PATTERN • +, -, * /などの演算子に独自の意味を定義する機能
12.
2. OPERATOR OVERRIDE
PATTERN
13.
3. NESTED STRUCTURE
PATTERN(1) • ネストにより構造化された情報を表現するパターン
14.
3. NESTED STRUCTURE
PATTERN(1)
15.
3. NESTED STRUCTURE
PATTERN(1) これだけでは足りない
16.
3. NESTED STRUCTURE
PATTERN(2) • 大抵の場合ネストの内側のスコープで 状態を保持するかメソッドを定義してやる必要がある
17.
3. NESTED STRUCTURE
PATTERN(2)
18.
3. NESTED STRUCTURE
PATTERN(2) レシーバ付きLambda (拡張関数Lambdaという理解でOK)
19.
3. NESTED STRUCTURE
PATTERN(2) 空のHttpRequestContextを作成後、拡張関数lambdaを実行
20.
3. NESTED STRUCTURE
PATTERN(2) レシーバとしてHttpRequestContextが使える ⇒ 結果スコープ内でのみ利用できる Mutableなオブジェクトとなる
21.
3. NESTED STRUCTURE
PATTERN(2)
22.
4. PROPERTY ACCESS
DELEGATION PATTERN • 委譲プロパティを使ってプロパティの値取得・セット時に 追加の処理をやる
23.
4. PROPERTY ACCESS
DELEGATION PATTERN
24.
HAVE A NICE KOTLIN!
Download now