generated at
使っていないものは消す

使用していない関数や変数は消す
使用していないlibraryは消す
いくつか一気にupgradeして失敗した時に、どれのせいで失敗したのかの追求に時間がかかる
build sizeが無駄に増える

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