糞コードの直し方メモ
傾向
- 不明確さ
- 関数名が実装と合ってない
- 何のための処理なのかサッパリ読み取れない
- なぜか意味不明な空行が目立つ
- 依存関係
- 関数が別の関数に依存しまくっている場合が多い
- 処理をいくつかの関数に分けるのはいいが、単体で動かない関数は修正しにくく保守性最悪
- バッサリカットしたいが依存しまくってる故に影響範囲が大きく修正が捗らない
- 泥沼テスト
対策
- ここまでひどいケースは結局のところすべて書き直すしかない(時間の無駄だから)
- テストも無視するしかない
- 処理の流れを tree 形式でテキストにおこす
- その中で行われている必要な処理(仕様・要件)を箇条書きにする
- 最終的なアウトプット(APIならクライアントへのレスポンス)形式を把握する
- これさえ正しければクライアントはバグらない
- 糞テストの解読(しかも超複雑)は時間の無駄になることがほとんど
- 糞コードも糞テストもそのまま触らず、新しい関数で新規実装しなおす
- 関数間の依存関係の強い糞コードの場合は、別ファイルで一から書き直す
素早く修正するために
- 実装しなおしたコードはすぐにテストケースを書き、とにかく細かい単位で動かしてみる
- 最初の検討時間はできる限り短くし、動かした中で理解を深めていく