依存関係
信頼性の検証
ほとんどの場合推移的依存先の信頼性の検証をしていない
信頼に当たらないものを使用していることが多々ある
その依存先は信頼に値するか
信頼と約束は時間の経過と共に簡単に壊れる
自作と利用
自作する場合にはどれくらい複雑でどれくらい手間がかかるか
利用する際には脆弱性チェックをしているかどうか
GitHubやnpmのものか、公式のものか
利用方法が明確かどうか
後方互換性がどれくらい担保されているかどうか
バージョン
API提供者のセマンティックバージョンが誤っていることもよくあるので信用しないこと
マイナー(新規追加),パッチ(バグ修正)でも挙動が変わることがある
常に最新のバージョンを使う(リブ・アット・ヘッド)
一気にバージョンを上げるよりも頻繁に小さく最新のバージョンにする
どうするか
API提供者側の情報は気にしない
自動テストで挙動を確認して問題ないか自分たち側で確認する
外部に公開する場合
更新時の外部制約が増えていくので、保守コストが高くなる
外部から何でも依存され始めるので、どんな挙動でも変化したら外部アプリケーションに影響が出る
参考
https://research.swtch.com/deps
https://research.swtch.com/vgo-import