使っていないものは消す
使用していない関数や変数は消す
使用していないlibraryは消す
いくつか一気にupgradeして失敗した時に、どれのせいで失敗したのかの追求に時間がかかる
build sizeが無駄に増える
grepの邪魔になる
使っていないのにメンテする必要がある
引数がムダに大きいと、コードを読む時に推測に失敗する
例えば、以下のようにlogin関数を呼び出しているのを見かけたとする
code:ts
async function f() {
..
await login(userId, accessToken)
...
}
普通に考えて、「login処理にはuserIdとaccessTokenが必須なんだな」と読める
これは、login関数の内部を読みにいかずとも、こう推測できるはず。
しかし、実際はlogin関数の中でaccessTokenを使っていない
使っていないのに、引数に放置されている
使っていないものは消すを実践していない場合は、こういうことが起こりうる
コードを信用できなくなると、わざわざすべての関数の内部を見ないと実装を理解できなくなってしまう
こんな感じの実装を、APIのquery paramsに対して見たmrsekut.icon
clientのコードで、過剰なquery paramsを送っていた
server側の実装が、動的型付きでOOPなので読むのに苦労した