<< 複雑さと戦う : 設計の原則、パターン、リファクタリング | main | 複雑さと戦う : データに注目したリファクタリング >>

複雑さと戦う : ソースコードの破綻の兆候

ソフトウェアの開発が進む中で、あらたにドメイン(問題領域)の知識が発見され、ソースコードに追加する。ひとつひとつはちょっとした変更。 その結果...

・メソッドが長くなる
・条件記述( if 文 ) が複雑になる
・クラスが巨大になる(変数やメソッドの増加)
・メソッドの引数が増える

マーチンファウラーの リファクタリング や、ジョシュア・ケリーエブスキーの パターン指向リファクタリング入門 で、コードの「いやな臭い」とされている現象ですね。

この現象は、さまざまなドメインの知識をソフトウェアに盛り込んだ結果として、評価はできる。単純なソフトウェアから、問題領域の知識を増やし、もっと役に立つソフトウェアに洗練しようとした結果だから。

ソースコードとしては、分かりにくく、扱いにくくなり、大問題。
内容が理解できない、ひとつの変更の副作用があちこちで発生する。それ以上の改良(変更)は、だんだん現実的ではなくなる。

メソッドが長くなりはじめ、条件記述が複雑になりはじめ、クラスが大きくなりはじめ、メソッドの引数が増え始めたら、迷わずリファクタリングをしましょう。

開発を何日もストップするわけではありません。
日々の開発の作業で、ソースコードのインデントの調整や、空白行を入れて読みやすくするのと同じ感覚で、ちょこちょこやる。それがリファクタリングの基本だと思います。
しかも、最近はIDEが、リファクタリングをサポートしてくれるので、リファクタリングはずいぶん簡単に安全にできるようになった。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
     12
3456789
10111213141516
17181920212223
24252627282930
<< September 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
  • 番号より名前。 ニーモニックコードより名前。 【パターン】
    師子乃 (03/10)
  • Smart UI が優れている?
    masuda220 (03/10)
  • Smart UI が優れている?
    kagehiens (03/09)
  • オブジェクト指向プログラミングの教え方?
    masuda220 (12/05)
  • オブジェクト指向プログラミングの教え方?
    ZACKY (12/04)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    kompiro (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    JHashimoto (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (02/28)
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM