eng-docs

ソフトウェアエンジニアリングの個人用ノート。手元に散らばっていたメモと、 『Google のソフトウェアエンジニアリング』『Web API: The Good Parts』の読書メモを 1つの階層にまとめ直したもの。

原則 → 文化 → 個々の実務、の順に並べている。 上のディレクトリほど寿命が長く、下にいくほど道具やバージョンに依存する。 どこから読んでもいいが、上の層ほど「なぜそうするか」が書いてある。

長く効く層

  • 原則 — 何を大事にするか。全体の前提
  • チームと文化 — チーム・知識共有・リーダーシップ・生産性の計測

作るとき

  • コード — 書くときの判断基準、スタイル、バグの種
  • 設計 — アーキテクチャ、モジュール境界、結合、レイヤリング、パターン、分散システム、API 設計
  • プロセス — 要求と見積り、レビュー、テスト、ドキュメント、廃止
  • ツールチェーン — バージョン管理、ビルド、依存関係、CI、静的解析、インフラ

品質として測るもの

動かすとき

  • データベース — DB 設計と SQL
  • 運用 — 可観測性、インシデント対応、リリースとデプロイ、キャパシティ、データの扱い

道具

読むときの注意

推奨は反転する。 2026-08-31 の監査で、実際に3件見つかった。

見つかったもの何が起きていたか
X-XSS-Protection: 1; mode=blockXSS 対策として推奨されていたが、有効にすると却って問題を持ち込みうるため非推奨に
useEffect でのデータ取得標準的な書き方だったが、フレームワークの取得機構を使うことが推奨に
"Fixnum".constantizeFixnum そのものが Ruby から削除された

反転しやすいのは「こう書け」と勧めている記述、とくにブラウザの実装や フレームワークの流儀が変わる領域。反転しにくいのは安定した API のリファレンス (SQL の構文、ルーティング DSL)と、「弱くなる」方向にしか動かないもの(暗号のアルゴリズム)。

各ページの日付は、その記述に最後に手を入れた日。 見直した記述には frontmatter に verified を入れて、確認した日を残している。

書籍由来の記述はすべて要約に置き換えてあり、原文との逐語一致が0行であることを 機械検査で確認している。Web の情報源は取得日を frontmatter の fetched に残している。