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

サーバーサイド Kotlin を学ぶ敷居を下げるための本「ハンズオンで学ぶサーハ...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Msksgm Msksgm
March 08, 2024
500

サーバーサイド 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

Avatar for Msksgm

Msksgm

March 08, 2024
Tweet

More Decks by Msksgm

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