<< 複雑さと戦う : 基本データ型 vs 小さなオブジェクト | main | 「リファクタリング」 もう一つの読み方 >>

複雑さと戦う : ちいさなちいさなリファクタリング

わたしは、一番小さなリファクタリングは、空白行の挿入だと思う。

String firstName ;
String lastName ;
int customerID ;
String telephoneNumber ;
String mobilePhone ;
String faxNumber ;
String eMailAddress ;

というコードの断片があったら、

String firstName ;
String lastName ;

int customerID ;

String telephoneNumber ;
String mobilePhone ;
String faxNumber ;

String eMailAddress ;

という感じで、空白行を三ついれる。

フィールドを7つひとかまたりに並べたコードを、空白行を使って四つのグループに分けている。ほんのちょっとした作業だけど、設計が改善された。

分けたことで、関連が強いフィールドごとのグループになった、意味が分かりやすくなった。 フィールドの追加や変更も、改善後のほうがやりやすい。

まず、ずらっとならんだフィールドは意味を考えると、いくつかのグループに分けたほうが分かりやすいという感覚。これがリファクタリングの第一歩だと思う。

ここで、firstName と lastName のグループに「名前」を付ける。 例えば PersonName 。
「リファクタリング」の「クラスの抽出」ですね。 

かたまりを空白行でグループに分割する。
それぞれのグループに名前をつける。

これだけのことだけど、ソースコード(設計)が明らかに改善された。

人の名前は姓+名である、という誰でも知っている知識を、ようやくソフトウェアも持つことができた。
表示の時、姓と名の間に空白を入れる、なんていう知識も追加してあげると、ちょっと洗練されるかな。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
  12345
6789101112
13141516171819
20212223242526
27282930   
<< September 2020 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM