Upgrade to Pro — share decks privately, control downloads, hide ads and more …

黒べこ本の話 + Ktor試してみた #m3kt

黒べこ本の話 + Ktor試してみた #m3kt

14c9795d267f5b85abb98ca5e8780646?s=128

Taro Nagasawa

October 02, 2017
Tweet

Transcript

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

  2. 自己紹介 • 長澤 太郎(たろーって呼んでね) • @ngsw_taro • エムスリー株式会社 • ディズニーが大好き!

    エムスリーは 国内最大規模の 医療情報プラット フォームを開発・ 運営しています。 エンジニア募 集中!
  3. 祝☆新刊 10/6発売

  4. 概要 • 「Kotlin Webアプリケーション」 • リックテレコム社 • 10/6発売 • 284ページ

    • 3部構成 • 3,000円(税別)
  5. 第1部 • Kotlin言語について詳解 • Kotlinの概要と誕生の背景 • 開発環境の紹介、構築方法 • 文法と言語機能 •

    Javaとの相互運用性 • Kotlin ver1.1について
  6. 第2部 • 簡単なWebアプリケーションの開発 ◦ TODOリスト ◦ DBを持たない ◦ 画面を持たない(REST API)

    • Spark Framework
  7. 第3部 • ちょっと本格的なWebアプリ開発 ◦ TODOリスト ◦ DBを持つ(インメモリ、ファイル) ◦ 画面を持つ(Thymeleaf) ◦

    テスト ◦ Heroku • Spring Boot
  8. Re:VIEW ソースファイル PDF, TXTにビルド 編集さん メール 執筆環境 PDFを読む TXTを読む

  9. Kotlinについて 詳しい スピード重視 かなり詳しい 特徴 Kotlinについて詳しい解 説(私の書き下ろし) Androidアプリ開発での 活用方法を解説。 Webアプリケーションの

    開発にKotlinを使う。 Web初心者でも読み進め られる内容。Kotlin 1.1の 一部機能や文法について も解説。 これさえ読めばKotlin博 士になれるレベル。 Androidなどの応用につ いてはあまり言及されて いない。 どの本を読めばいいのか?
  10. Ktor試してみた

  11. Ktorとは • KotlinのためのWebマイクロフレームワーク • 非常に薄く、余分な機能は3rdパーティ任せ ◦ ロギング、永続化、テンプレートエンジン、DI ◦ サーブレットコンテナ: Tomcat,

    Jetty, Netty • DSL ◦ ラムダ(特に拡張関数としてのラムダ)を多様 ◦ 宣言的にプログラムを組み立てる • ノンブロッキング ◦ 複雑な非同期プログラミングをコルーチンで
  12. Hello World fun main(args: Array<String>) { embeddedServer(Netty, 8080) { routing

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

    { get("/hello") { call.respondText("Hello, world") } }.start(wait = true) } }
  14. Ktorの主要な登場人物 • Application • ApplicationCall • ApplicationFeature

  15. ところで • 「黒べこ本」で扱う題材 ◦ TODOリスト Spark Framework ◦ TODOリスト Spring

    Boot • 購入者特典 ◦ 各ソースファイル一式 ◦ 導入のための解説動画
  16. TODOリスト Ktorバージョンを公開しました https://github.com/ntaro/todolist-ktor

  17. ちょっとだけ触ってみた所感 • Sparkと比べると癖がある ≒ 学習コスト高め? • すでに用意されているAPIを触る分には、コルーチンを意識す る必要はなさそう • 業務で使うならSpringかなぁ

    • まだベータ版なので今後が楽しみ ◦ コントリビュートするチャンス!
  18. ご静聴 ありがとうございました