eng-docs
ソフトウェアエンジニアリングの個人用ノート。手元に散らばっていたメモと、 『Google のソフトウェアエンジニアリング』『Web API: The Good Parts』の読書メモを 1つの階層にまとめ直したもの。
原則 → 文化 → 個々の実務、の順に並べている。 上のディレクトリほど寿命が長く、下にいくほど道具やバージョンに依存する。 どこから読んでもいいが、上の層ほど「なぜそうするか」が書いてある。
長く効く層
作るとき
- コード — 書くときの判断基準、スタイル、バグの種
- 設計 — アーキテクチャ、モジュール境界、結合、レイヤリング、パターン、分散システム、API 設計
- プロセス — 要求と見積り、レビュー、テスト、ドキュメント、廃止
- ツールチェーン — バージョン管理、ビルド、依存関係、CI、静的解析、インフラ
品質として測るもの
- パフォーマンス — 性能の測り方、ユーザー体験の目標、予算、プロファイリング、負荷試験
- アクセシビリティ — POUR の4原則、WCAG の適合モデル、実装時の検証、国際化
- セキュリティ — 攻撃者の動きと検知、守る側の設計
動かすとき
道具
- 言語・フレームワーク — Go、Rails、React、Solr
- 環境 — Mac、エディター、シェル
読むときの注意
推奨は反転する。 2026-08-31 の監査で、実際に3件見つかった。
| 見つかったもの | 何が起きていたか |
|---|---|
X-XSS-Protection: 1; mode=block | XSS 対策として推奨されていたが、有効にすると却って問題を持ち込みうるため非推奨に |
useEffect でのデータ取得 | 標準的な書き方だったが、フレームワークの取得機構を使うことが推奨に |
"Fixnum".constantize | Fixnum そのものが Ruby から削除された |
反転しやすいのは「こう書け」と勧めている記述、とくにブラウザの実装や フレームワークの流儀が変わる領域。反転しにくいのは安定した API のリファレンス (SQL の構文、ルーティング DSL)と、「弱くなる」方向にしか動かないもの(暗号のアルゴリズム)。
各ページの日付は、その記述に最後に手を入れた日。
見直した記述には frontmatter に verified を入れて、確認した日を残している。
書籍由来の記述はすべて要約に置き換えてあり、原文との逐語一致が0行であることを
機械検査で確認している。Web の情報源は取得日を frontmatter の fetched に残している。