2023年に読んだ技術書
今年私が読んだ技術書をまとめました。
個人的な備忘録としての側面が大きいです。
読んで良かった度を星1〜3の3段階評価でつけています。
システム運用アンチパターン
読んで良かった度: ⭐️
システム運用をある程度ちゃんとわかっていなければいけないようになってきたため、とりあえず読見ました。
一通り読んでおいて全く知識ない状態から運用の回し方のイメージを捉えられた気になれました。
ただし、後半はあまり消化できずにいます。
Domain Modeling Made Functional
読んで良かった度: ⭐️⭐️
関数型でDDDするとどうなるかを解説した本です。
去年の年末くらいから一休のCTOのnaoyaさんを中心に話題になった本だったので、社内の読書会を立ち上げて読みました。
自分がTypeScript、Prisma、GraphQLという構成の中で、クラス指向ではない形でDDDをやっていくにはどうするか悩んでいたタイミングだったので、とても参考になりました。
型定義を使ってドメインモデルを表現するというのは、自分にとってとても斬新でしたが、それをユビキタス言語にして非エンジニアとコミュニケーションをとるというのは、自分にとっては現実的ではないと感じられました。
ただし、型定義を厳密に行うことで、コードの表現力を高めるということと、スマートコンストラクターパターンを使うことで、ドメインモデルの不整合を防ぐということは、とても参考になりました。
この書籍を読んでからはGraphQLのMutationの入力に対して必ず、Zodのオブジェクトによるバリデーションを行うようにして、ドメインモデルの不整合を防ぐようにしています。
データ指向アプリケーションデザイン
読んで良かった度: ⭐️⭐️⭐️
読むまでは、目次の内容のとっつきづらさから、敬遠していましたが、先輩エンジニアから勧めていただいたので読んでみました。
間違いなく、今年最も読んでよかった一冊です。
データベースのトランザクションがいかに重要かを改めて認識できました。
また、RDBMSと比較して、そのほかのデータストアをどのような目的でどのように使うかという判断をするための指針が得られました。
この本を読んでからは、エンジニアとして、RDBMSに軸足を置きつつ、RDBMSが構造上抱えている問題への対処も将来的には考える必要があるという考えになりました。
また、分散システムがいかに多くの技術的な問題を抱えていて、それがビジネスに対しても大きく影響があることを知ることができました。
失敗から学ぶRDBの正しい歩き方
読んで良かった度: ⭐️⭐️
先輩エンジニアの方に紹介されたので読んでみました。
現代版実務よりSQLアンチパターンという印象でした。
自分が今までやらかしてきたことを的確に指摘されていて、何が悪いのかを言語化されていて、心に傷を負いつつも、とても勉強になりました。
実際に失敗をしてるからこそ、より吸収できた内容が多かったと思います。
特に17章の複雑なクエリについては、以前に自分のDB設計の甘さから複雑なクエリを書かないといけない状況に追い込まれたことがあったので、DB設計の技術を身につけることの重要性を改めて認識できました。
達人に学ぶDB設計徹底指南書
読んで良かった度: ⭐️
DB設計について何もわからないという気持ちになったので読みました。
基本的に具体的なことは、ちゃんと第三正規系を作ろうということしか述べられていないという感想を持ちました。
Refactoring Databases
読んで良かった度: ⭐️
先輩エンジニアの方に紹介されたので手を出してみましたが、明らかに自分には早すぎました。
とりあえず、ALTER TABLE系の実行はロックがかかるため、ALTER TABLEをしなくていいように設計する必要があるということを理解した時点で読むのをやめました。
楽々ERDレッスン
読んで良かった度: ⭐️
先輩エンジニアの方に紹介されたので読んでみました。
帳票からすばやくDB設計を行うというトレーニングを行う本です。
細かいところは気にしすぎず、すばやくモデリングをしながら、要求分析をしていくというプロセスを学ぶことができました。
上級者がレビューしながら、この本の内容を実践するというのは、とても良い学習方法だと思いました。
ただ、この本を読んだ時には、細かい設計の問題が気になってしまうので、あまり読み進められませんでした。
実践的データモデリング入門
読んで良かった度: ⭐️⭐️
先輩エンジニアの方に紹介されたので読んでみました。
データベースの設計の際に概念モデルから設計する、トップダウンのモデリングと、物理設計から設計する、ボトムアップのモデリングの両方を学ぶことができました。
それぞれのアプローチの具体的な方法論まで記載されているので、今後も何度か読み返してモデリングの方法論を学んでいきたいと思いました。
達人に学ぶSQL徹底指南書
読んで良かった度: ⭐️⭐️
ORMではなく、生のSQLを書く頻度が高くなってきたので、一通り理解しておきたいと思い読みました。
ただ、読み始めてから気づきましたが、SQLを体系的に理解するための本というよりかは、モダンなSQLの書き方の説明から始まり、SQLの根幹的な概念を説明するという本でした。
CASE句やEXISTS句の有用性を知れたことと、SQLでのNULLがさまざまな問題を引き起こすことを再確認できたことは良かったです。
単体テストの考え方/使い方
読んで良かった度: N/A(ほとんど未読)
社内のエンジニアが強くおすすめしているので読み始めました。
まだ、古典学派とロンドン学派の違いがわかった程度のところまでしか読めていません。
Discussion