もろもろ

もろもろ書いていきます。気軽にコメントください^_^

継続的なリファクタリング文化

↓の記事に対する投稿コメントとして書いていましたが、ブログ記事に使うことにします。

qiita.com

リファクタリングは積極的にするべきではありますが、綺麗なコードに正解は無いというのが個人的な見解です。
チームのみんなが読みやすい形になっていることが必要条件と思っています。

最初の例のコードも、チームによっては十分な可読性を持っているとみなされるかもしれません。
戻り値の変数化についても、IDEによる補助があるならば save メソッドにマウスカーソルを乗せるだけで同等以上の情報が得られますし、或いは戻り値に対する静的な型付けや型ヒントがあればやはり十分です。
引数が増えることを想定しなくとも、引数が増えた時にリファクタリングを当然のように行えれば良いとも言えます。

何が言いたいかというと、「継続的なリファクタリング」という文化を育むことこそが最も重要だということです。 (勿論そのためにも、リファクタリングの重要性を啓蒙するこのような記事は大変有用と思います。)

コードを読んだとき、コードに手を入れた時、もう少しリファクタリングした方が良いと感じたならば、迷わずリファクタリングできる文化・品質保証。 そのためにはアジャイルテスト駆動開発・進化的設計、そして継続的インテグレーションが有効ですが、自身の属する組織がウォーターフォール型の開発だと、いきなり色々は難しいですね。

コードという「ドキュメント」をリファクタリングによって「コミュニケーション」に昇華させるアジャイル開発よりも、「ドキュメント」を最重要視するウォーターフォール開発の方が、その実、初期の徹底的なリファクタリングを必要としているというのは、何とも皮肉な話です。