Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

概要 竹端 尚人 フリーランスエンジニア Twitter: @n_takehata 職種: バックエンドエンジニア 好きな言語:Kotlin Server-Side Kotlin 、Java 、etc… ( 少し前まで) スマートフォンゲーム開発 昨年12 月からフリーランスに

Slide 4

Slide 4 text

登壇、執筆など 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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

ブログでも紹介しています 書籍『Kotlin サーバーサイドプログラミング実践開発』のこだわりとオススメポイント https://blog.takehata-engineer.com/entry/kotlin-server-side-programming-practical-development- commitment-and-recommendations

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

1. こだわり

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

2. おすすめポイント

Slide 17

Slide 17 text

第1 部 Kotlin 入門

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

第2 部 Kotlin でのサーバーサイド開発

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

基本機能の実装( マスタデータのCRUD) ↓ 認証・認可とユーザー情報を扱う機能の実装 ↓ ロギングの実装 ↓ 単体テスト

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

第3 部 Kotlin で色々なフレームワーク を 使ってみる

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

Ktor はREST API と認証機構の実装まで Exposed ではCRUD を作成して一通りの実装を体験

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

3. まとめ

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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