新しいプロダクトのサーバーサイド技術を選定する中で,Kotlinを検討している方やJavaでサーバサイド開発をしているが,より保守性の高い,安全なコードに変えていきたいと感じている方などこれからGoogleが開発したプログラミング言語を勉強したい方に読んでほしい1冊。
『Kotlinサーバーサイドプログラミング実践開発』要約
「Kotlin」は,Android開発ではすでに広く知られていますが,JVM(Java仮想マシン)で動作するサーバーサイド開発での選択肢としても注目されている言語の一つ。
本書はサーバーサイドの開発者を読者対象とし,Kotlinの基本構⽂とともに,Javaとの親和性が⾼いうえに,Javaよりも安全性が⾼く書きやすいと⾔われる理由を解説している。
実践的な内容としてSpring Bootを使い,データベースの検索系/更新系機能や認証/認可機能などを実装したWebアプリケーションを構築できるようになる。加えて,従来型の案件だけでなく新規プロダクトへの⾜がかりにもなるよう,gRPCやKtorなどといった⽐較的新しい技術との組み合わせ⽅を理解できる。「実践開発」という書名のとおり,プロダクトの開発でKotlinを導入する際に役立てられる内容。
『Kotlinサーバーサイドプログラミング実践開発』目次
【第1部Kotlin入門】
第1章|Kotlinをお勧めする理由
1. なぜKotlinが誕生したのか?
2. Kotlinでなにを作れるのか?〜サーバーサイドでの利⽤意義
3. コードの安全性を高めるKotlinの型とNull非許容/許容
4. 環境構築と最初のプログラムの実行
5. Kotlinの基本構文
第2章|様々なKotlinの機能
1. if,when文を式として扱いコードをシンプルにできる
2. プロパティの定義でアクセサメソッド(getter,setter)が不要になる
3. データクラスでボイラープレートを減らせる
4. デフォルト引数と名前付き引数で関数呼び出しをシンプルにできる
5. 関数型と⾼階関数,タイプエイリアスでロジックを再利用しやすくできる
6. 拡張関数で柔軟にロジックを追加できる
7. スコープ関数でオブジェクトへの処理をシンプルにできる
8. 演算子オーバーロードでクラスに対する演算子の処理を実装できる
9. デリゲートで冗長な処理を委譲できる
10. 充実したコレクションライブラリでコレクションに対する処理をシンプルにできる
11. コルーチンで非同期処理が実装できる
第3章|JavaとKotlinの相互互換が既存の資産を生かす
1. Javaのコードを呼び出す
2. Javaのライブラリを呼び出す
3. Javaのクラスを継承してKotlinで実装する
4. Javaと相互呼び出しする際の特殊な例
5. JavaのコードをKotlinのコードへ変換する
【第2部Kotlinでのサーバーサイド開発】
第4章|Webアプリケーション開発の基盤となるSpring Bootを導入する
1. Spring Bootの導入
2. Spring BootでのREST APIの実装
3. Spring FrameworkのDIを使用する
第5章|O/Rマッパーを使用してデータベースへ接続する
1. MyBatisとは?
2. DockerでMySQLの環境構築
3. MyBatisの導入
4. MyBatisでCRUDを作成する
5. Spring BootからMyBatisを使用する
第6章|Spring BootとMyBatisで書籍管理システムのWebアプリケーションを開発する
1. 書籍管理システムの仕様
2. アプリケーションの構成
3. プロジェクトの環境構築
4. 検索系機能(一覧取得,詳細取得)のAPI実装
5. 更新系機能(登録,更新,削除)のAPI実装
第7章|書籍管理システムの機能を拡充する
1. Spring Securityでユーザー認証,認可の機構を実装する
2. 貸出,返却機能のAPI実装
3. Spring AOPでログの出力
第8章|JUnitで単体テストを実装する
1. JUnitの導入
2. JUnitでWebアプリケーションの単体テスト
【第3部Kotlinで色々なフレームワークを使ってみる】
第9章|高速な通信フレームワーク gRPC
1. gRPCとは?
2. gRPCの導入
3. Spring BootでgRPCのKotlinサーバーサイドプログラムを実装
第10章|Kotlin製のWebフレームワーク Ktor
1. Ktorとは?
2. Ktorの導入
3. REST APIの実装
4. 認証機構の実装
第11章|Kotlin製のO/Rマッパー Exposed
1. Exposedとは?
2. Exposedの導入
3. DSLとDAOそれぞれの実装方法
4. DAOでCRUDを作成する
第12章|Kotlin製のテスティングフレームワーク Kotest,MockK
1. Kotestとは?
2. Kotestの導入
3. いくつかのコーディングスタイル(Spec)で単体テストを書く
4. データ駆動テストを使う
5. MockKを使用してモック化する
『サーバーサイドプログラミング実践開発』読んだ感想
otlin製のフレームワークとしてはおなじみのKtor、Exposed。JetBrains製の2つは、サーバーサイドKotlinの今後を考えると絶対にチェックしておくべきだと感じた。APIサーバーではないWebサーバーの場合はクライアントサイドのレンダリング(SpringならThymeleaf)も考える必要があるので少し注意して読んだ方がいいかもしれません。