ci-cd

5 posts

CI があなたなしで tangle できない限り、あなたのリテラート・プログラムは壊れている

Literate programming は単一事実情報源を約束するが、手動の weave と tangle のステップが CI/CD パイプラインを破壊する。Markdown ファイルを正規のものに保つため、抽出とドキュメント生成を自動化する方法を紹介する。

ビルドパイプラインが、ターミナルを開いて と打たなければ実行できないなら、あなたはリテラート・プログラムを持っていない。コンパイラの付いた日記を持っているだけだ。 リテラート・プログラミングの全目的は、散文とコードが単一事実情報源を共有することにある。Markdown…

コンパイラは構文をチェックする。テストはアーキテクチャをチェックすべきだ。

多くのチームはアーキテクチャルールをWikiに記載している。依存グラフが逸脱した時にCIを失敗させる実行可能なテストとして書く方法を紹介する。

テストスイートは、が正しい入力を与えられたときに42を返すことを検証する。しかし、がをimportしてよいかどうかは検証しない。コンパイラはどちらも問題ない。ユニットテストもどちらも問題ない。だが、一方はアーキテクチャ違反であり、6か月後に1週間のリファクタリングを強いることになる。…

ドメイン層がPostgresをimportする。CIは何も言わない。

クリーンアーキテクチャの図はホワイトボード上では美しい。ここでは、ビルドパイプラインが依存方向を強制し、ドメインコードがインフラストラクチャに到達できないようにする方法を紹介する。

チームの誰かがにをimportした。PRはコンパイルを通る。テストも通る。コードレビューは300行に及び、誰も気づかない。…

ミューテーションテストに4時間かかる。ではチームは実際にCIでどう使っているのか?

ほとんどのチームはすべてのコミットでフルのミューテーションテストスイートを実行していない。ここでは、ビルドパイプラインを破壊することなく、エンジニアリングチームが実際にミューテーションテストをCIに統合する方法を紹介する。

ミューテーションテストスイートの実行に4時間かかるなら、おめでとう。誰もが疑っていたことを証明したことになる:テストスイートに穴が空いている。…

AI Codebaseのための決定的ガードレール

人間のレビューは一貫性がない。AIレビューはさらに悪い。AI生成codebaseに対するスケーラブルな唯一の防御は決定的enforcement — 無視される提案ではなく、ビルドを失敗させるルールだ。

AI生成コードに対する標準的なアドバイスは「注意深くレビューせよ」だ。 このアドバイスは正しいが、スケールにおいては無意味だ。 AI出力をレビューする開発者は、注意力があり、ドメインに精通し、時間的プレッシャーがないときに問題を発見する。それ以外のすべての条件 — つまり大半の条件 — では、見落としが発生する。…