$30 off During Our Annual Pro Sale. View Details »

書籍『Kotlin サーバーサイドプログラミング実践開発』のこだわりとおすすめポイント

書籍『Kotlin サーバーサイドプログラミング実践開発』のこだわりとおすすめポイント

2021年5月19日(水) 「集まれKotlin好き!Kotlin愛好会 vol.29 @オンライン」の談義資料です。

Takehata Naoto

May 19, 2021
Tweet

More Decks by Takehata Naoto

Other Decks in Programming

Transcript

  1. 書籍『Kotlin
    サーバーサイドプログラミング実践開発』の
    こだわりとおすすめポイント
    2021
    年5
    月19


    竹端 尚人

    View Slide

  2. 自己紹介

    View Slide

  3. 概要
    竹端 尚人

    フリーランスエンジニア
    Twitter: @n_takehata

    職種:
    バックエンドエンジニア

    好きな言語:Kotlin
    Server-Side Kotlin
    、Java
    、etc…
    (
    少し前まで)
    スマートフォンゲーム開発
    昨年12
    月からフリーランスに

    View Slide

  4. 登壇、執筆など
    CEDEC2018
    、2019
    登壇
    Software Design 2019
    年2
    〜4
    月号で短期連

    Swift/Kotlin
    愛好会で技術書典執筆
    https://booth.pm/ja/items/1315478
    書籍「
    Kotlin
    サーバーサイドプログラミング
    実践開発」を2021
    年4
    月に発売
    https://gihyo.jp/book/2021/978-4-297-
    11859-4

    View Slide

  5. この書籍で書いたこだわりとおすすめポイントを紹介します

    View Slide

  6. ブログでも紹介しています
    書籍『Kotlin
    サーバーサイドプログラミング実践開発』のこだわりとオススメポイント

    https://blog.takehata-engineer.com/entry/kotlin-server-side-programming-practical-development-
    commitment-and-recommendations

    View Slide

  7. Gihyo Digital Publishing
    で月間販売数
    4
    位!!

    View Slide

  8. 書店ではAndroid
    関連のエリアに置いてあることが(
    多分)
    多いです

    View Slide

  9. アジェンダ
    1.
    こだわり
    2.
    おすすめポイント
    3.
    まとめ

    View Slide

  10. 1.
    こだわり

    View Slide

  11. サーバーサイドの話に特化したKotlin
    の書籍
    実践で導入する際の参考にできる
    Java
    を知らなくても読める

    View Slide

  12. サーバーサイドの話に特化したKotlin
    の書籍
    Android
    のKotlin
    の本は多いが、サーバーサイドの本はほとんどない
    サーバーサイドKotlin
    に関して、市場の中でもかなりガッツリ書いている
    Kotlin
    の本としても最近のバージョンのものとして価値がある

    View Slide

  13. 実践で導入する際の参考にできる
    実際のプロダクトで導入する際の参考になるように意識
    DB
    の使用、認証・認可、単体テストやロギングなども網羅
    実践的なアーキテクチャでのサーバーアプリケーションの開発

    View Slide

  14. Java
    を知らなくても読める
    Java
    との比較などは全くしていない
    Java
    との相互互換を解説している箇所(10P
    程度)
    以外は、一切Java
    のコードはない
    Spring Boot
    なども「Kotlin
    で使うフレームワーク」として解説

    View Slide

  15. 表紙はやかん(Kotlin
    の由来にちなんで)

    View Slide

  16. 2.
    おすすめポイント

    View Slide

  17. 第1

    Kotlin
    入門

    View Slide

  18. 第1
    部 Kotlin
    入門
    第1
    章 Kotlin
    をお勧めする理由
    第2
    章 様々なKotlin
    の機能
    第3
    章 Java
    とKotlin
    の相互互換が既存の資産を生かす

    View Slide

  19. プログラミング基礎は薄めに、Kotlin
    については厚めに

    View Slide

  20. プログラミング基礎は薄めに
    変数
    制御構文
    クラス、インターフェース
    コレクション
    (
    対象読者はサーバーサイド開発経験者のため)

    View Slide

  21. Kotlin
    については厚めに
    データクラス
    拡張関数
    スコープ関数
    コルーチン
    etc…

    View Slide

  22. Kotlin
    の基礎を改めて体系的に学びたい人にもおすすめ

    View Slide

  23. 第2

    Kotlin
    でのサーバーサイド開発

    View Slide

  24. 第2
    部 Kotlin
    でのサーバーサイド開発
    第4
    章 Web
    アプリケーション開発の基盤となるSpring Boot
    を導入する
    第5
    章 O/R
    マッパーを使用してデータベースへ接続する
    第6
    章 Spring Boot
    とMyBatis
    で書籍管理システムのWeb
    アプリケーションを開発する
    第7
    章 書籍管理システムの機能を拡充する
    第8
    章 JUnit
    で単体テストを実装する

    View Slide

  25. サーバーサイド開発を実践
    この本の核になる部分

    View Slide

  26. フレームワークの導入から実践開発
    Spring Boot
    を使用してサーバーサイド開発
    MyBatis
    を使用してデータベースアクセス
    2
    つのフレームワークを使い、実践的なアーキテクチャのアプリケーション開発

    View Slide

  27. 実際にサーバーサイドのアプリケーションを開発

    View Slide

  28. アプリケーションをより実践的に

    View Slide

  29. 実プロダクトでも必要な機能を実装
    Spring Security
    での認証・認可の実装
    Spring AOP
    でAOP
    でのロギングの実装
    JUnit
    で各種単体テストの実装

    View Slide

  30. 基本機能の実装(
    マスタデータのCRUD)

    認証・認可とユーザー情報を扱う機能の実装

    ロギングの実装

    単体テスト

    View Slide

  31. 単体テストはDomain Object
    、Service
    、Controller
    それぞれのテストや、モック化したテストなど
    必要なパターンを網羅

    View Slide

  32. アーキテクチャも実践的に

    View Slide

  33. アプリケーションのアーキテクチャも実プロダクトを想定
    オニオンアーキテクチャをベースとしたアーキテクチャ
    SPA
    を想定したREST API
    として開発
    フロントエンドのコードもGitHub
    で提供

    View Slide

  34. アプリケーションのイメージ

    View Slide

  35. アプリケーションのイメージ
    フロント部分はGitHub
    で提供

    View Slide

  36. 業務で導入する際の一つの例としても使える!

    View Slide

  37. 第3

    Kotlin
    で色々なフレームワーク

    使ってみる

    View Slide

  38. 第3
    部 Kotlin
    で色々なフレームワークを使ってみる
    第9
    章 高速な通信フレームワーク gRPC
    第10
    章 Kotlin
    製のWeb
    フレームワーク Ktor
    第11
    章 Kotlin
    製のO/R
    マッパー Exposed
    第12
    章 Kotlin
    製のテスティングフレームワーク Kotest
    ,MockK

    View Slide

  39. 未来を見据えて新しい技術スタックも紹介

    View Slide

  40. 今の時代に必須なgRPC
    マイクロサービスが一般的に取り入れられる今の時代には必須
    gRPC
    に書いてる書籍も多くないのでその情報も価値アリ
    昨年12
    月にgrpc-kotlin
    も1.0.0
    になった(
    執筆中に正式版になった)

    View Slide

  41. gRPC
    を使ってマイクロサービスっぽい形で実装

    View Slide

  42. おなじみのJetBrains
    製のフレームワーク2

    View Slide

  43. JetBrains
    製のKtor
    とExposed
    Ktor
    はサーバーサイドKotlin
    やる上では絶対に知っておきたい選択肢
    Exposed
    もJetBrains
    製ORM
    としては知っておきたい(
    なかなか1.0.0
    にならないけど)
    知られてはいるけどこれも載ってる書籍は少ない

    View Slide

  44. Ktor
    はREST API
    と認証機構の実装まで

    Exposed
    ではCRUD
    を作成して一通りの実装を体験

    View Slide

  45. おすすめのテスティングフレームワークKotest

    View Slide

  46. Kotlin
    製のKotest
    Kotlin
    でのテスティングフレームワークとして個人的に一番おすすめ
    MockK
    も併せてモックを使ったテストケースも解説
    Web
    上でもまだまだ情報が少ないので、こちらも情報の価値アリ

    View Slide

  47. 期待の高い各種Kotlin
    製フレームワークを紹介している

    View Slide

  48. 3.
    まとめ

    View Slide

  49. サーバーサイドKotlin
    に関して市場の中でもトップレベルに充実した内容
    実践での導入に使えることを意識して書いている
    最近のKotlin
    製フレームワークについても書かれている

    View Slide

  50. 迷っている方はぜひ手に取ってみてください!!

    View Slide

  51. https://gihyo.jp/book/2021/978-4-297-11859-4

    View Slide