2021年5月19日(水) 「集まれKotlin好き!Kotlin愛好会 vol.29 @オンライン」の談義資料です。
書籍『Kotlinサーバーサイドプログラミング実践開発』のこだわりとおすすめポイント2021年5月19日竹端 尚人
View Slide
自己紹介
概要竹端 尚人フリーランスエンジニアTwitter: @n_takehata職種:バックエンドエンジニア好きな言語:KotlinServer-Side Kotlin、Java、etc…(少し前まで)スマートフォンゲーム開発昨年12月からフリーランスに
登壇、執筆など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
この書籍で書いたこだわりとおすすめポイントを紹介します
ブログでも紹介しています書籍『Kotlinサーバーサイドプログラミング実践開発』のこだわりとオススメポイントhttps://blog.takehata-engineer.com/entry/kotlin-server-side-programming-practical-development-commitment-and-recommendations
Gihyo Digital Publishingで月間販売数4位!!
書店ではAndroid関連のエリアに置いてあることが(多分)多いです
アジェンダ1.こだわり2.おすすめポイント3.まとめ
1.こだわり
サーバーサイドの話に特化したKotlinの書籍実践で導入する際の参考にできるJavaを知らなくても読める
サーバーサイドの話に特化したKotlinの書籍AndroidのKotlinの本は多いが、サーバーサイドの本はほとんどないサーバーサイドKotlinに関して、市場の中でもかなりガッツリ書いているKotlinの本としても最近のバージョンのものとして価値がある
実践で導入する際の参考にできる実際のプロダクトで導入する際の参考になるように意識DBの使用、認証・認可、単体テストやロギングなども網羅実践的なアーキテクチャでのサーバーアプリケーションの開発
Javaを知らなくても読めるJavaとの比較などは全くしていないJavaとの相互互換を解説している箇所(10P程度)以外は、一切JavaのコードはないSpring Bootなども「Kotlinで使うフレームワーク」として解説
表紙はやかん(Kotlinの由来にちなんで)
2.おすすめポイント
第1部Kotlin入門
第1部 Kotlin入門第1章 Kotlinをお勧めする理由第2章 様々なKotlinの機能第3章 JavaとKotlinの相互互換が既存の資産を生かす
プログラミング基礎は薄めに、Kotlinについては厚めに
プログラミング基礎は薄めに変数制御構文クラス、インターフェースコレクション(対象読者はサーバーサイド開発経験者のため)
Kotlinについては厚めにデータクラス拡張関数スコープ関数コルーチンetc…
Kotlinの基礎を改めて体系的に学びたい人にもおすすめ
第2部Kotlinでのサーバーサイド開発
第2部 Kotlinでのサーバーサイド開発第4章 Webアプリケーション開発の基盤となるSpring Bootを導入する第5章 O/Rマッパーを使用してデータベースへ接続する第6章 Spring BootとMyBatisで書籍管理システムのWebアプリケーションを開発する第7章 書籍管理システムの機能を拡充する第8章 JUnitで単体テストを実装する
サーバーサイド開発を実践この本の核になる部分
フレームワークの導入から実践開発Spring Bootを使用してサーバーサイド開発MyBatisを使用してデータベースアクセス2つのフレームワークを使い、実践的なアーキテクチャのアプリケーション開発
実際にサーバーサイドのアプリケーションを開発
アプリケーションをより実践的に
実プロダクトでも必要な機能を実装Spring Securityでの認証・認可の実装Spring AOPでAOPでのロギングの実装JUnitで各種単体テストの実装
基本機能の実装(マスタデータのCRUD)↓認証・認可とユーザー情報を扱う機能の実装↓ロギングの実装↓単体テスト
単体テストはDomain Object、Service、Controllerそれぞれのテストや、モック化したテストなど必要なパターンを網羅
アーキテクチャも実践的に
アプリケーションのアーキテクチャも実プロダクトを想定オニオンアーキテクチャをベースとしたアーキテクチャSPAを想定したREST APIとして開発フロントエンドのコードもGitHubで提供
アプリケーションのイメージ
アプリケーションのイメージフロント部分はGitHubで提供
業務で導入する際の一つの例としても使える!
第3部Kotlinで色々なフレームワークを使ってみる
第3部 Kotlinで色々なフレームワークを使ってみる第9章 高速な通信フレームワーク gRPC第10章 Kotlin製のWebフレームワーク Ktor第11章 Kotlin製のO/Rマッパー Exposed第12章 Kotlin製のテスティングフレームワーク Kotest,MockK
未来を見据えて新しい技術スタックも紹介
今の時代に必須なgRPCマイクロサービスが一般的に取り入れられる今の時代には必須gRPCに書いてる書籍も多くないのでその情報も価値アリ昨年12月にgrpc-kotlinも1.0.0になった(執筆中に正式版になった)
gRPCを使ってマイクロサービスっぽい形で実装
おなじみのJetBrains製のフレームワーク2つ
JetBrains製のKtorとExposedKtorはサーバーサイドKotlinやる上では絶対に知っておきたい選択肢ExposedもJetBrains製ORMとしては知っておきたい(なかなか1.0.0にならないけど)知られてはいるけどこれも載ってる書籍は少ない
KtorはREST APIと認証機構の実装までExposedではCRUDを作成して一通りの実装を体験
おすすめのテスティングフレームワークKotest
Kotlin製のKotestKotlinでのテスティングフレームワークとして個人的に一番おすすめMockKも併せてモックを使ったテストケースも解説Web上でもまだまだ情報が少ないので、こちらも情報の価値アリ
期待の高い各種Kotlin製フレームワークを紹介している
3.まとめ
サーバーサイドKotlinに関して市場の中でもトップレベルに充実した内容実践での導入に使えることを意識して書いている最近のKotlin製フレームワークについても書かれている
迷っている方はぜひ手に取ってみてください!!
https://gihyo.jp/book/2021/978-4-297-11859-4