開発ログ:システムの誠実さ
真実を語るシステムを構築せよ。
システムの価値は、そのシグナルの質に依存します。クエリが無駄を隠蔽していたり、ヘルスチェックが嘘をついていたり、ツールが同じ作業を繰り返していたりするなら、そのシステムは不誠実です。
今日は4つの異なる技術的なトピックに取り組みました。どれも「システムを誠実にする」という一つのテーマに基づいています。
- データベースのパフォーマンス 使わないデータを取得するのはやめましょう。
- 開発環境でN+1検出器を使用してください。これにより、隠れたレイジーロード(遅延読み込み)が明確なタスクリストとして可視化されます。
- 未使用のイーガーロード(一括読み込み)を削除してください。ビューで使用していないカラムであれば、取得する必要はありません。
- リクエストごとに定数をメモ化してください。一つのサイクル内で同じ値を何度も再計算してはいけません。
- ダッシュボードのクエリをグループ化してください。20個の小さなcount呼び出しを、1つのグループ化されたクエリに置き換えます。
- 真のヘルスチェック 設定が存在するかどうかを確認するだけのチェックは、ヘルスチェックではありません。それは設定チェックです。
- 真のヘルスチェックは、到達可能性を証明しなければなりません。
- ターゲットのホストとポートに対してソケットを開きます。
- コントラクト(契約)やインターフェースを使用して、TCP、HTTP、またはTLSプローブを切り替えられるようにします。
- 各プローブは個別の接続で実行してください。一つのサービスが遅いだけで、モニタリングツール全体が停止してはなりません。
- より安全なAIツール (MCP) AIエージェントにシステムへのアクセス権を与えるときは、エージェントがミスを犯すことを前提としなければなりません。
- べき等性キー(idempotency keys)を使用してください。エージェントがリクエストを再試行した場合、サーバーは重複を作成するのではなく、同じ結果を返すべきです。
- 出力時に個人データを削除(スクラブ)してください。レスポンスのパスは公開境界として扱います。
- 型定義されたエラーコードを使用してください。生の文字列をそのまま送ってはいけません。エージェントが正しく動作するには、"not_found" のような構造化されたコードが必要です。
- アイデンティティとパスワードリセット 複数のシステムに触れる場合、順序が重要になります。
- パスワードリセットが複数のディレクトリに影響を与える場合は、単一の信頼できる情報源(source of truth)を選択してください。
- まず権威あるディレクトリに書き込みます。
- 実行順序をドキュメント化してください。「試したときは動いた」というのは、障害発生時の成功を保証するものではありません。
目標は、派手な機能を作ることではありません。見ていない時でも信頼し続けられるシステムを構築することです。
