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

clientのコードで、過剰なquery paramsを送っていた
server側の実装が、動的型付きでOOPなので読むのに苦労した