はじめに

今年読んだ本のひとことまとめ、備忘録的なもの。 次の記事で2月時点でまとめているので、実際はもう少し年内に読んだと思う。

ここ半年で読んだ技術書レビュー 2021/02 - abekoh's tech note

数が多いので適当にテーマを分類したが、内容はそこに縛られない内容だったりもする。

目次

設計・コーディング技法

テスト駆動開発

  • 言わずとしれたTDDの原点。実はリニューアル版で、絶版になった旧版は訳者が異なる
  • 前半のコーディング過程は 訳者t-wadaさんのライブコーディング 見てからだとすんなり入った
  • 付録Cに現代におけるTDDの状況、変化などが書かれており参考になった

リファクタリング 第2版

  • 可逆的なパターンが多く面白い。どれも使い所次第で毒にも薬にもなる
  • 一歩ずつ慎重にやるステップ、複数のリファクタリングパターンを組み合わせて完成されるなど、今までやってたリファクタリングと違い学びがあった

達人プログラマー 第2版

  • 「契約による設計(DbC)」「テスト書いてません告白」など、なるほど〜となること多かった
  • 抽象的な内容も多く、正直少し読みにくい
  • エンジニアとして学び続ける姿勢の重要性も感じとれるところもあった

Software Design 2021年3月号

  • オブジェクト指向の特集あり
  • 「動物・犬・猫で例える問題」「getter/setter問題」「継承問題」など、誤解招きやすいところの解説がよかった
  • 細かなJava/SpringのTipsも載ってて参考になった

ドメイン駆動設計 モデリング・実装ガイド

ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH

  • 主にモデリング・実装の観点から、DDD のパターン全体を俯瞰して見れる
  • ドメインモデルの実装の、悪いパターン(ドメインモデル貧血症)→ 良いパターンの例が気づきがある
  • 途中に挟まる Q&A はよくある疑問で為になる

ドメイン駆動設計 サンプルコード&FAQ

ドメイン駆動設計 サンプルコード&FAQ - little-hands - BOOTH

  • ここ迷うよね、ってところに対する答えが前より充実してて良い
  • 「複数集約の整合性を確保する方法」が特にサンプル豊富で勉強になった
  • サンプルコードが Kotlin とこの手の本にはあまりなかったので、刺さる人には嬉しい

マイクロサービスアーキテクチャ

  • マイクロサービスに関する本、少し古め
  • いろいろなことが書かれていて、正直あまり覚えていない…他の本漁ってもう一度マイクロサービスについて学びたいところ

アジャイル開発

エンジニアリング組織論への招待

  • エンジニアリングでの問題解決にはコードだけではなく、人々の思考・組織・ビジネスの構造をリファクタリングしなければ、という点から語られた内容
  • 第3章のアジャイル開発について話がおもしろい。アジャイル開発が必要とされるまでの流れや、それが目指すチームの状態、誤ったアジャイル、不確実性をへらすためのアジャイルな方法論など
  • 第4章は、以下に不確実性を管理するかに焦点
  • 組織で起こりがちな問題を論理的に分析 → 解決策の提案まで、他の本にはない雰囲気が良い

エクストリーム・プログラミング

  • 割とサクッと読める本
  • アジャイル宣言から派生した具体的なプラクティスがまとまっててよい

チーム・ジャーニー

  • カイゼン・ジャーニーの続編らしく、より大きなチームを編成するためのプラクティスとか
  • 一部、やや著者のオリジナリティが強いプラクティスが入ってて飲み込みにくかった

ユニコーン企業のひみつ

  • Twitterで一時期流行りを観測したので読んでみた
  • Spotifyで働いた著者の経験からの話
  • 権限移譲をうまくやろうって話が主だった
  • フランクな文体で読みやすかった

その他技術書

ハイパフォーマンス ブラウザネットワーキング

  • WebRTCについて学びたく読んだ
  • TCP/UDPの基本的な話から入る。タイトルどおりひたすらネットワークのパフォーマンスを追求していく
  • とにかく速くするには「往復回数を減らす」こと
  • モバイルネットワークの4Gまでの話もじっくり入っている
  • 内容がちょっと古めなので、第2版がほしい

データ指向アプリケーションデザイン

  • 多くの人におすすめされたので読んだ
  • データベースがどういう考えのもとで実装されているか学べた
  • 分散データベースで整合性、適時性考えるのつらい、とにかく大変ってのがわかった
  • ↓のスタンスを忘れずにいたい

HTML5&CSS3デザイン 現場の新標準ガイド 第2版

  • 意外とHTML/CSSを体系的に学んだことがなかったので、一通り確認するために買った
  • カタログとして見やすい内容
  • 知らないCSSプロパティ・特定デバイス向け設定などたくさんあって読んで良かった

Go言語による並行処理

  • Goでのパイプラインパターンみたいな書き方できるってのがしれた
  • Go固有の話が大きいかも?とはいえ使いこなせば強力だと感じた

ソフトウェアテストの教科書 増補改訂 第2版

  • QAさんがどういうふうにテスト設計し、実施しているか知れた
  • ウォーターフォール前提感もあり少し古い感じはあった

IT読み物

ソフトウェア・ファースト

  • Webサービスの社会人経験しかないからDXよくわからんかったが、その定義などが知れた
  • 内製化しましょう、ということが繰り返し言われていた

NO RULES

  • NetFlixのお話
  • まず能力のない社員をレイオフしようという、日本企業としては悩ましいことから始まる
  • プロスポーツ選手のようなチームを作ろうという話。憧れるが、実践はなかなか難しそうと思った

おわりに

ちょっとメモがなく雑になってしまったのもある。やっぱり読んですぐメモなどしておこうと思った。 割と設計・チーム開発手法について読むことが多かった。来年は他のテーマ、より深堀りした技術の本とかもうちょっと読みたい。