読者です 読者をやめる 読者になる 読者になる

0neiric k0uh0t

開発BLOG

リファクタリングRuby

リファクタリング:Rubyエディション

リファクタリング:Rubyエディション

読んだので気づきを書いておく。

リファクタリングをする理由

  • ソフトウェアの設計を改善する

設計が重要なのは、将来変更を加えるとき。 重複を削れば、影響範囲が小さく、1箇所を修正するだけで済むようになる。

  • ソフトウェアをわかりやすくする
  • バグを見つけやすくする
  • プログラミングをスピードアップする

いつすべきか

  • 3度目の原則
  • 機能を追加するとき
  • バグフィックスが必要になったとき
  • コードレビューをするとき
  • 理解を深めたいとき

良いコード

  1. 読みやすい
  2. ロジックの重複がない
  3. 書き換えによって既存の機能に影響を及ぼさない
  4. 条件分岐が複雑でない

コードの臭い

以下のような状況に出会ったらリファクタリングを進めて方がいいかもしれない。

  • コードの重複
  • 長いメソッド
  • 大きなクラス
  • 長い引数クラス
  • 変更系統の分岐
  • ショットガン創の手術
  • メソッドの浮気
  • 群れたがるデータ
  • プリミティブ強迫症
  • case文
  • パラレルな継承階層
  • 仕事をしないクラス
  • 空論的一般化
  • 一時フィールド
  • メッセージの連鎖
  • 横流しブローカー
  • 親密すぎるクラス
  • インターフェイスの異なるクラス群
  • 不完全なライブラリクラス
  • データクラス
  • 継承した遺産の拒絶
  • コメント ...etc

詳細を書こうと思ったけれど、長いのでやめました。笑

具体的なリファクタリング

TODO