依存関係

信頼性の検証

ほとんどの場合推移的依存先の信頼性の検証をしていない

信頼に当たらないものを使用していることが多々ある
その依存先は信頼に値するか

信頼と約束は時間の経過と共に簡単に壊れる

自作と利用

自作する場合にはどれくらい複雑でどれくらい手間がかかるか
利用する際には脆弱性チェックをしているかどうか

GitHubやnpmのものか、公式のものか
利用方法が明確かどうか
後方互換性がどれくらい担保されているかどうか

バージョン

API提供者のセマンティックバージョンが誤っていることもよくあるので信用しないこと
マイナー(新規追加),パッチ(バグ修正)でも挙動が変わることがある

常に最新のバージョンを使う(リブ・アット・ヘッド)

一気にバージョンを上げるよりも頻繁に小さく最新のバージョンにする

どうするか

API提供者側の情報は気にしない
自動テストで挙動を確認して問題ないか自分たち側で確認する

外部に公開する場合

更新時の外部制約が増えていくので、保守コストが高くなる
外部から何でも依存され始めるので、どんな挙動でも変化したら外部アプリケーションに影響が出る

参考

https://research.swtch.com/deps
https://research.swtch.com/vgo-import