コードリファクタリングガイドラインの履歴

メモにあったやつだけど、出典がわから…。
どっかからコピペしたやつだと思うだけど、どこだろ

コードリファクタリングガイドライン

ソースコードを「リファクタリングする」というのは振る舞いを変更することなくソースを修正することで、「クリーンアップする」ともいう。
リファクタリングはバグを修正することでも、機能を追加することでもないが、そういったことをする前に行われるかもしれない。
理解しにくいコードを進化させ、内部設計構造を変更し、不要なコードを削除するよりも、すぐ理解できるようにして、メンテナンスできる、すぐ変更できるようにした方がいい。
リファクタリングは新機能の追加することでの問題やバグを修正することが難しいといったことが動機として行われる

○大局

  • 車輪を再発明してはいけない

 新しい解決策を探す前に、既存の解決策を探そう

  • 大局について考えろ

 システム内の決断は大局と一致すべきである

  • あなたの仮定と決定を文書化しろ

 過去の出来事を書きとめよう

  • 繰り返すな

 知識のかけらすべては、単一で、曖昧でなく、信頼できる表現を持たなければならない

  • 計画はグローバルに、開発はローカルに

 インクリメンタルな実装はグローバルプランに合わせるべきだ

○最高の抽象化

  • 塊を分けるよりも、分かれたものを塊にする方が簡単だ
  • 考えないようにするためにデータを凝集しろ

 データをまとめることは、頭の中にいれるべき概念の数を減らすことができる

  • 抽象化するなら、あらゆるところまで抽象化しろ

 プリミティブな値でデータを記述するな
(コードの意味を整数などのプリミティブな値に持たせるな。JavaならEnumを使えと)

 Stringはプリミティブ型と同様に扱おう。文字列を使う代わりに属性を抽象化したデータ型で記述しよう

  • 決して定数をコード内にいれないように