Slide 1

Slide 1 text

黒べこ本の話 + Ktor試してみた 2017-09-28 どこでもKotlin #m3kt 長澤太郎 @ngsw_taro

Slide 2

Slide 2 text

自己紹介 ● 長澤 太郎(たろーって呼んでね) ● @ngsw_taro ● エムスリー株式会社 ● ディズニーが大好き! エムスリーは 国内最大規模の 医療情報プラット フォームを開発・ 運営しています。 エンジニア募 集中!

Slide 3

Slide 3 text

祝☆新刊 10/6発売

Slide 4

Slide 4 text

概要 ● 「Kotlin Webアプリケーション」 ● リックテレコム社 ● 10/6発売 ● 284ページ ● 3部構成 ● 3,000円(税別)

Slide 5

Slide 5 text

第1部 ● Kotlin言語について詳解 ● Kotlinの概要と誕生の背景 ● 開発環境の紹介、構築方法 ● 文法と言語機能 ● Javaとの相互運用性 ● Kotlin ver1.1について

Slide 6

Slide 6 text

第2部 ● 簡単なWebアプリケーションの開発 ○ TODOリスト ○ DBを持たない ○ 画面を持たない(REST API) ● Spark Framework

Slide 7

Slide 7 text

第3部 ● ちょっと本格的なWebアプリ開発 ○ TODOリスト ○ DBを持つ(インメモリ、ファイル) ○ 画面を持つ(Thymeleaf) ○ テスト ○ Heroku ● Spring Boot

Slide 8

Slide 8 text

Re:VIEW ソースファイル PDF, TXTにビルド 編集さん メール 執筆環境 PDFを読む TXTを読む

Slide 9

Slide 9 text

Kotlinについて 詳しい スピード重視 かなり詳しい 特徴 Kotlinについて詳しい解 説(私の書き下ろし) Androidアプリ開発での 活用方法を解説。 Webアプリケーションの 開発にKotlinを使う。 Web初心者でも読み進め られる内容。Kotlin 1.1の 一部機能や文法について も解説。 これさえ読めばKotlin博 士になれるレベル。 Androidなどの応用につ いてはあまり言及されて いない。 どの本を読めばいいのか?

Slide 10

Slide 10 text

Ktor試してみた

Slide 11

Slide 11 text

Ktorとは ● KotlinのためのWebマイクロフレームワーク ● 非常に薄く、余分な機能は3rdパーティ任せ ○ ロギング、永続化、テンプレートエンジン、DI ○ サーブレットコンテナ: Tomcat, Jetty, Netty ● DSL ○ ラムダ(特に拡張関数としてのラムダ)を多様 ○ 宣言的にプログラムを組み立てる ● ノンブロッキング ○ 複雑な非同期プログラミングをコルーチンで

Slide 12

Slide 12 text

Hello World fun main(args: Array) { embeddedServer(Netty, 8080) { routing { get("/hello") { call.respondText("Hello, world") } }.start(wait = true) } }

Slide 13

Slide 13 text

Hello World fun main(args: Array) { embeddedServer(Netty, 8080) { install(Routing) { get("/hello") { call.respondText("Hello, world") } }.start(wait = true) } }

Slide 14

Slide 14 text

Ktorの主要な登場人物 ● Application ● ApplicationCall ● ApplicationFeature

Slide 15

Slide 15 text

ところで ● 「黒べこ本」で扱う題材 ○ TODOリスト Spark Framework ○ TODOリスト Spring Boot ● 購入者特典 ○ 各ソースファイル一式 ○ 導入のための解説動画

Slide 16

Slide 16 text

TODOリスト Ktorバージョンを公開しました https://github.com/ntaro/todolist-ktor

Slide 17

Slide 17 text

ちょっとだけ触ってみた所感 ● Sparkと比べると癖がある ≒ 学習コスト高め? ● すでに用意されているAPIを触る分には、コルーチンを意識す る必要はなさそう ● 業務で使うならSpringかなぁ ● まだベータ版なので今後が楽しみ ○ コントリビュートするチャンス!

Slide 18

Slide 18 text

ご静聴 ありがとうございました