4段落目2層というとは、結局どちらかに含まれるのでは。DB側にロジックを持たせるような場合は、ストアドプロシージャやトリガーを使うということか。見つけて判断するのは実に単純な方法ですね。簡単には除けないのでは。バリエーションがはっきりしない場合の手順の3番目の意味まず、条件分岐を持つメソッド全体をサブクラスをコピーする。サブクラスには、そこに必要な部分のみを残し、後は取り除く。バリエーションが明白な場合についてP34〜P51の例(料金計算の条件文をポリモーフィズムに置き換える)が例になっている。パターンで対処することは自然に考えやすい。組み合わせ爆発をおこさないか。・実際の現場では、フラグを導入して条件分岐して対応するのは簡単なので、こういうケースはかなりある。複数のプログラマーが、さまざまな意味でフラグをどんどん導入するので、わけがわからないコードになっている。・特に、同じ意味の条件分岐が、複数メソッドに散らばっている場合には、このリファクタリングは有効ではないか。・すべての条件分岐に対してこのリファクタリングを行う必要があるのか。「仕事をしすぎているクラス」かどうかの判断がまずあるとおもう。centerには、クラスの複雑さを判断する機能がある。外注からの納品のチェックに使えるかも。投票で決まったものを読むことにしています。Java以外の言語でかかれたものでもJava置き換えて議論すればよいと思います。実用的な自動化ツールは果たしてあるのか。●C++プログラムのリファクタリング・この文章は、どこかほかの本/雑誌からもって来た文章のように感じる。C++の比較について書かれていて、Javaは意識されていない。エイリアシングの意味についてポインタをint型、void*型ヘ変換されると参照関係は追いかけられず、リファクタリングの障害になる。●リファクタリングで短期的な利益を享受するには短期的な利益はこれで得られると主張してるとは思えないがどうだろう。「釣鐘型」について国や業界によって、左、中、右の分類の割合が異なるという話がある。真ん中の人たちにもリファクタリングは普及しつつあるとおもう。リファクタリングツール●リファクタリングツールの実践的規範P406・取り消し(undo)リファクタリングの過程で途中のステップの状態に戻せる機能がほしい。リファクタリングがついているわけですね。・設計書との同期をとる作業がリファクタリングの障害のひとつになっている。公共事業、大きな会社での受注では、詳細設計書の変更にも承認が必要で、リファクタリングのコストが大変。リファクタリングツールがほしい。部品から全体へ(記録者:角野は予習していなかったので議論が十分に理解できずに正確に記録できていません。フォローお願いします。1行目の意味このリファクタリングによる変更を1箇所にするため、オブジェクトが生成されるを1箇所にまとめるということ。Constructionの目的は生成オブジェクトのクラスへの静的な依存関係を持たせたくないため。変数として渡すほうが例として自然ではないか。この処理が書かれたメソッドのシグニチャにあわせるため。パターンを導入しやすくなるという意味ではないか。・クラス名にJDBCをつけるひつようはないのではないか。パッケージ名がクラス名の頭についているようなものもよく見かける。それほど、複数のパッケージに同名のクラスもあるので、おかしくはないとおもう。する必要がある?(宿題です。クラス名の文字列リテラルのチェックできる。Variable・C言語の経験者のなかには、メソッドの先頭ですべての変数宣言するひとがいる。・パフォーマンスについて条件分岐によって不必要な初期化が除けるので、パフォーマンス的にも意味がある。form)で表現しにくい場合には、もとのアルゴリズム自身を変更するという意味ではないか。◎ここからは高橋さんが各リファクタリングの簡単な説明があった。Loop■次回からのテキストは英文ですが、読書会の進め方について、アイデアがあれば、メーリングリストに書いてください。