[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10559] リファクタリン グを読む会第 5 回議事録



2003年 3月29日 リファクタリングを読む会第 第5回
議事録 第9章 P243 〜 第10章 P303
出席者:福島 根元 高橋(智) 秋元 高橋(徹) 中村 村山 金井 村上 高木
書記:高木

●第9章
P243 -
・重複した条件記述の断片の統合
catch文(ケース)の中に例外が多いとエラー処理が複雑になる。
1)メソッドにする。
2)処理はシンプルにしている。
⇒スイッチ文のバターンがあると良い。
⇒ここのサンプルについて例が多いと良い。

P245 -
・制御フラグの削除
1)構造化プログラミングではreturnは一つしか記述しなかったが、ここでは途中での
returnを許している。
2)フラグ減らす効果がある。
⇒言語としてコンパイル時にチェックしてくれるとうれしい。
⇒finalyの中でrerurnを書くとどうなる?(★宿題)

補足:
 miscreant
  a.,n.極悪非道の(人).
 三省堂 『デイリーコンサイス英和辞典』

P250 -
・カード節による入れ子条件記述の置き換え
1)if文内の条件の変更時にドモルガンの法則を使っている。
⇒条件式を修正したときに間違えそう。

P255 -
・ポリモーフィズムによる条件記述の置き換え
1)switch文の中のgetTypeの表記に誤りがある。P258よりメソッド「getType()」であ
ることがわかる。
2)継承ではなくインターフェースでもいいのでは?
⇒P259L1「男の子が昆虫を殺す方法」・・・例えの意味がわからない。

P269 -
・ヌルオブジェクトの導入
1)80を超えるNullオブジェクトとは、カスタマークラスのNullチェックをしていたの
をオブジェクトにしているのではないか。また、このようにNullオブジェクトがある
のはビジネスロジックとDB(実装)と切り離しているのではないか。
⇒Nullオブジェクトを扱うのは使い方の概念が難しい。Null Exceptionが出る時なん
かの実装に有効では?

P267 -
・表明(アサート)の導入
1)JDK1.3までのため。JDK1.4からは言語にAssertが追加され不要。

補足:
 ・ひょうオめい[0]ヘウ―【表明】
  ―する  〔自分の意見・決心などを〕人前にはっきりと示すこと。
  「△意志(見解・所信・態度・立場・決意・不満)を―する/前向きの態度を―す
る」
 三省堂 『新明解国語辞典』

 ・assert
 vt.主張する;断言する.
 三省堂 『デイリーコンサイス英和辞典』

●第10章
P271 -
メソッドの呼び出しの単純化
⇒「オブジェクト指向の世界で最も重要なのはインターフェースです。」(一同賛
同)

P273 -
・メソッド名の変更
⇒Googleでメソッド名(クラス名)を検索して、検索結果が多いと比較的一般的な名前
と判断できる。
⇒「deprecated」はJavac *.javaを行う場合は出ない。(★宿題)

P275 -
・引数の追加
⇒特になし。

P277 -
・引数の削除
⇒ポリモーフィズムがある場合の引数の削除の場合は100%変更結果は保障されな
い。やはり継承ではなくインターフェースがよい。

P279 -
・問い合わせと変更の分離
1)テスト操作・・・問い合わせ。(セット操作の前にテスト操作)

P283 ‐
・メソッドのパラメータ化
⇒サンプルのメソッドを置き換えているの「deprecated」とかの記述がない。(←作
者が疲れたのかな?)

P285 ‐
・明示的なメソッド群による引数の置き換え
1)静的に決まっているもののみに使える。無理にFactoryPatternにしなくても良いの
では。

P285 ‐
・オブジェクトそのももの受け渡し
1)オブジェクトそのももの受け渡しを行う際には、オブジェクトのメソットがリード
オンリー宣言がされていないと、マルチスレッドで動作している場合では参照先で書
き換える危険性がある。
⇒状態を変更しない宣言(const)が欲しい。

P292 ‐
・メソッドによる引数の置き換え
1)P294 getPrice()が最後にprivateになっている。publicの誤り。

P295 ‐
・引数オブジェクトの導入
⇒Rangeパターンのような小さなパターンからanalystパターン、Enterpriseパターン
のように業務全体の範囲を示すパターンがある。

P300 ‐
・setメソッドの削除

P303 ‐
・setメソッドの隠蔽
⇒未使用変数、メソットを摘出してくれるツールとしてJTest、JLint(free)、PMD?
(free)がある。
⇒CVSを自動で夜間JTestを実行して、朝に担当者に修正しなさいとメールを出してく
れる機能がほしい。
⇒JDK1.5のリリースは夏ぐらい(らしい)。

以上