注目★★★★★Lobsters
jardiffを単体バイナリにしない理由、コードを使う人の前に置く
30秒で把握
- 1著者がjardiffを単体バイナリにせずソースコードを手元に残す理由を論じた
- 2JSON・JAR・classを構造化比較しビルド成果物の差分を検証
- 3設定項目やDSLより実行時のコード編集で差分条件を即時変更
要約
著者は、Minecraft modのビルド成果物を比較するjardiffを、単体バイナリとして配布しない理由を論じた。jardiffはディレクトリ、ZIP/JAR、JSON、Javaの.classを構造化して比較し、ビルドツール変更後も成果物の機能的な同一性を確認できる。著者は差分の種類に応じて、実行時にソースコードを書き換え、クラスファイルのバージョン番号を無視する処理などを即座に差し込んでいる。バイナリ化すると柔軟性が失われ、設定項目やDSLとして利用者に選択肢を戻す設計も、既存コードを直接編集するより扱いにくい。バイナリに開発者の判断を固定することは、利用者との権限差も生むと著者は批判した。
あなたへの影響
ビルド検証や差分解析を自作する日本のエンジニアは、最初から設定項目やDSLを増やす前に、ソースコードを直接編集して使う運用が適するか次スプリントで検証するとよい。
推奨:ソースコードを実行時の拡張面として扱う設計は、予想外の差分への対応を速める可能性がある。