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

サーバーサイド Kotlin を学ぶ敷居を下げるための本「ハンズオンで学ぶサーバーサイド Kotlin」を v2 に更新した話

Msksgm
March 08, 2024
160

サーバーサイド Kotlin を学ぶ敷居を下げるための本「ハンズオンで学ぶサーバーサイド Kotlin」を v2 に更新した話

サーバーサイドKotlin LT大会 vol.11 の登壇資料です。
https://server-side-kotlin-meetup.connpass.com/event/309183/
「ハンズオンで学ぶサーバーサイド Kotlin」
https://zenn.dev/msksgm/books/implementing-server-side-kotlin-development

Msksgm

March 08, 2024
Tweet

Transcript

  1. ⽬次 • はじめに • 「ハンズオンで学ぶサーバーサイド Kotlin」について • 「ハンズオンで学ぶサーバーサイド Kotlin」の⽬的・内容 •

    書籍の v1 から v2 の更新内容 • 「ハンズオンで学ぶサーバーサイド Kotlin」の今後 • まとめ 1
  2. はじめに ⾃⼰紹介 • 名前 • Msksgm • SNS • X:

    @msksgm • GitHub: Msksgm • 業務 • Yahoo! オークション・Yahoo! フリマ の課⾦システム • 来⽉から SRE 関連も携わる • 技術的興味関⼼ • 最近︓DevOps・SRE、Kotlin、英語 2 SNS のアイコン
  3. 「ハンズオンで学ぶサーバーサイド Kotlin」の概要 • Zenn に公開したサーバーサイド Kotlin の書籍 • 全ページ無料公開 •

    Like 数 160 ぐらいになりました🙏 • 使⽤技術 • ⾔語︓Kotlin • フレームワーク︓Spring Boot • その他︓Arrow、 DatabaseRider、SpringDoc、jqwik • 公開⽇・更新⽇ • v1 公開⽇: 2023/03/28 • v2 更新⽇: 2024/02/25 「ハンズオンで学ぶサーバーサイド Kotlin」について 4 書籍カバー
  4. 作成⽬的 • サーバーサイド Kotlin をもっと⾝近なものにしたかった • Kotlin は柔軟な表現⼒と強⼒な型システムを持つ⾔語 • しかし、Better

    Java を⽬的にした⾔語なのに、Android のイメージが根強い • 現状、サーバーサイド Kotlin を学ぶには敷居が⾼かった • 体系的に学べる資料が少なく感じた • Java の資料を参考にすると Mybatis や H2 Database は癖が強いと考えた 「ハンズオンで学ぶサーバーサイド Kotlin」の⽬的・内容 5
  5. 章ごとの概要 「ハンズオンで学ぶサーバーサイド Kotlin」の⽬的・内容 6 実践的 ⼊⾨的 単純 複雑 第 1

    章 付録 第 2 章 第 3 章 ⼊⾨的 -> Hello World、基礎⽂法、など 実践的 -> CRUD ができる、テストがある、など 単純 -> コード量が少ない、基本的な⽂法のみ、など 複雑 -> コード量が多い、ライブラリを活⽤する、など
  6. 章ごとの詳細 • 章構成 • 第 1 章: Kotlin ⼊⾨ ->

    println で Hello World • 第 2 章: Spring Boot ⼊⾨ -> Spring Boot の Hello World • 第 3 章: 実践 -> Arrow × Spring Boot で CRUD API サーバー • 付録 A︓Kotlin の基礎 -> Kotlin の基礎⽂法から、Arrow の使い⽅まで 「ハンズオンで学ぶサーバーサイド Kotlin」の⽬的・内容 7
  7. 「第 3 章︓実践」が実践の⼀例 • Arrow の Either 型を利⽤した関数型プログラミング • Either

    型を利⽤したエラーハンドリングを API 実装に組み込む • MockMVC と DatabaseRider を組み合わせた API 統合テスト • リクエストから DB まで処理をテストで検証可能 「ハンズオンで学ぶサーバーサイド Kotlin」の⽬的・内容 8
  8. 書籍の v1 から v2 の更新内容 書籍の v1 から v2 への更新点

    • より実践的かつ最新の状況に対応 • Spring Boot v3 対応 • Spring Boot v2 は EOL のため • Arrow v1.2 系対応(v1.1 系 -> v1.2 系) • ⼀部 Deprecated になった型(Validated、ValidatedNel)を更新 • OpenAPI Generator の利⽤を削除 • Kotlin ⼊⾨という本としては癖が強すぎた 9
  9. 「ハンズオンで学ぶサーバーサイド Kotlin」の今後 「ハンズオンで学ぶサーバーサイド Kotlin」の今後 • 付録に RealWorld を作成 • サンプルコードはAPI

    の数が少なく、認証認可がない • RealWorld を実装することで、より実践的な内容に近づけたい • 説明しきれなかった考え⽅をどこかでまとめたい • 例外(予期する例外・予期しない例外、ビジネス例外・技術的例外)と O11y • Kotlin Fest にプロポーザルを提出予定 • 随時ライブラリやサンプルコードの更新 • Arrow や Spring Boot の更新があれば即座に対応したい • typo レベルでもあれば更新 10
  10. 「ハンズオンで学ぶサーバーサイド Kotlin」の今後 「ハンズオンで学ぶサーバーサイド Kotlin」の今後 • 付録に RealWorld を作成 • サンプルコードはAPI

    の数が少なく、認証認可がない • RealWorld を実装することで、より実践的な内容に近づけたい • 説明しきれなかった考え⽅をどこかでまとめたい • 例外(予期する例外・予期しない例外、ビジネス例外・技術的例外)と O11y • Kotlin Fest にプロポーザルを提出予定 • 随時ライブラリやサンプルコードの更新 • Arrow や Spring Boot の更新があれば即座に対応したい • typo レベルでもあれば更新 11 zenn の scrap に読者コミュニティを⽤意しています なんでも、気がついた点や質問があればコメントください🙏
  11. まとめ 発表まとめ • 「ハンズオンで学ぶサーバーサイド Kotlin」の紹介 • 作成経緯、⽬的・内容について紹介 • 章ごとのざっくりとした概要を説明 •

    v1 から v2 へ更新内容を説明 • Spring Boot や Arrow まわりで⼤きな変更があったので更新しています • 今後 • RealWorld のサンプルコードを作成予定 • Kotlin Fest にプロポーザルを提出予定 • 随時、些細な部分でも内容を更新 12