2026年6月6日 ドメイン層がPostgresをimportする。CIは何も言わない。 クリーンアーキテクチャの図はホワイトボード上では美しい。ここでは、ビルドパイプラインが依存方向を強制し、ドメインコードがインフラストラクチャに到達できないようにする方法を紹介する。 deep-divesclean-architectureci-cddependency-rules
2026年6月5日 あなたのアーキテクチャ図は、すでに嘘になっている アーキテクチャ資料は、保存した瞬間から陳腐化する。コード生成ダイアグラム、ADR、自動化されたアーキテクチャテストを使って、資料を正直な状態に保つ方法を解説する。 deep-divesarchitecturedocumentationliving-docs
2026年6月4日 あなたのリトライループは最初のリクエストが失敗したと仮定している。実際にはそうではない可能性が高い。 タイムアウトやクラッシュは、APIリクエストが消失したことを意味しない。idempotency keyがどうやってリトライを安全にするか、そして実際に重複を防ぐストレージパターンについて解説する。 deep-divesidempotencyapi-designresilience
2026年6月3日 プロセスより長生きするロック:分散リースが実際にどう機能するのか インメモリのミューテックスはサーバー再起動時に消滅する。フェンシングトークンとTTLを持つ分散リースが、クラッシュを跨いだ重複作業をどう防ぐか、そしてどこで破綻するかを解説する。 deep-divesdistributed-locksleasingresilience
2026年6月2日 ゴルーチンもタイマーもバックグラウンドオーバーヘッドもないサーキットブレーカー ほとんどのサーキットブレーカーライブラリは、復旧を検知するためにバックグラウンドスレッドを起動する。それは不要だ。ここでは、正確性を損なうことなくすべてのバックグラウンドオーバーヘッドを排除する、リクエスト駆動型の設計を紹介する。 deep-divescircuit-breakerperformanceresilience
2026年6月1日 Webサービスにグレースフルシャットダウンがある。それがバグだ。 クラッシュオンリーソフトウェアは、あらゆる障害をクラッシュとして扱い、あらゆる起動をリカバリーとして扱う。Webサービスにとってこれは、シャットダウンロジックを削除し、kill -9でも生き残る状態を設計することを意味する。 deep-divescrash-only-softwareresiliencedistributed-systems
2026年5月31日 変化内容がわからない生存ミュータントを倒す方法 ミューテーションテストで生存者が見つかったが、そのミューテーションが何をしているのかまったくわからない。ミュータントを理解せずに正しいテストを書くためのステップバイステップの方法を紹介する。 deep-divesmutation-testingtest-writingdebugging
2026年5月30日 認証コードには90%のmutation coverageが必要だ。文字列ユーティリティには不要。 コードベース全体に単一のmutation scoreを課すのが間違いである理由と、実際のリスクに応じたモジュールごとのthresholdの設定方法。 deep-divesmutation-testingauthtest-quality
2026年5月29日 テストは通る。ミューテーションスコアは40%。生存ミュータントが実際に語っていること コードカバレッジは安全だと言う。ミューテーションテストは、テストのほとんどが飾りだと言う。生存ミュータントがその差をどう晒し、どう埋めるか。 deep-divesmutation-testingsurviving-mutantstest-quality
2026年5月28日 RustでMutation Testingは機能する——ただしコンパイル時間が悲鳴を上げる cargo-mutantsは、コードを検証したふりをしているテストを見つけ出す。Rustでのmutation testingの仕組み、何が捉えられるのか、そしてコンパイル時間のコストに見合う価値があるかを解説する。 deep-divesmutation-testingrustcargo-mutantstest-quality