ひよこの外部記憶

めもおきば

Eclipseの設定とか

リファクタリングの輪読の番が回ってきたので覚え書き
Egitの使い方とはてな記法の思い出し

Eclipseの設定

師の推奨設定

オートフォーマット

window > Preferencesで検索にformatって入れれば出るEditor > Save Actions

セミコロン、中カッコの空気読み

検索にsemicolonとか入れれば一意に絞れる
Automatically insert a correct posion見たいなヤツで設定
セミコロンは分かるが中カッコの空気読みの使いどころは分からん。

JUnit追加

EclipseにはJUnitをプロジェクトに追加する機能がある。
プロジェクトのProperties > Java Build Path > Librariesタブ > Add Library > JUnit
JUnit追加出来る



まずは普通にプロジェクト作成
構成は

-Refacotoring11
 -src
  -com.example
   -Test.java
 -test
  -com.example
   -AssertTest.java
 -lib
  -junit4.5.jar

フォルダ構成の書き方は何が良いのかな?まぁ次
発表の時はここを見ながら進められるようにしよう

委譲による継承の置き換え

テストとリファクタリング(ライブコーディングの練習として)

継承による委譲の置き換え

extends付けて使ってたインスタンス名消すだけ(ライブコーディングの練習として)

大きなリファクタリング

今回コードはありません
⇒作るべきロジックがわからなすぎたためです。
作るべきアプリケーションのロジックが分かれば作って展開します、申し訳ありません。

リファクタリングは目的を持って行う

⇒今までのはリファクタリングの中でも簡単だったからここからが本当のリファクタリングだ的な感じ
・チーム内での合意が必要
リファクタリング実行中である事を全員が知っている必要がある。
例え話は訳分からん、なんのこっちゃ?

大きなリファクタリングの目的

リファクタリングする事でプログラムをどう設計すべきかが常にプログラムに反映される。
中途半端な設計判断がプログラムに伝播していくのを防ぎたい


今回の発表では12章コード無しです。
ここは作っとけって言うものがあればりファクタリング前、りファクタリング後を別途送付します。

4つの大きなリファクタリング

継承の分割

ちょっとした仕事のために小さなサブクラス作成、その後(一週間、一ヶ月、or more)別の箇所で同じ仕事をするための別のサブクラス追加
⇒そして地獄へ
例で説明(ロジックがあんまり分かりませんでした)
PPT作成してみた。

手続き的な設計からオブジェクトへの変換

オブジェクト指向に反する状況
・データ少なくて長いメソッドがずらずら
・アクセサのみのデータオブジェクト
第一章の最初の例
・データとそのアクセサだけを持つクラス作成(RDB使ってるならテーブルに対応させる)
・手続き的なコードを全て一つのクラスに格納(第一章でのstatement()の最初の状態みたいな)
・statementをメソッドの抽出やメソッドの移動等で適切なデータクラスに移動する。
⇒カット

プレゼンテーションとドメインの分離

GUIのなかにあるロジックを分けましょう
MVCで作りましょう的な

階層の抽出

コード書いてみた・・・けど分からない、そもそも作るもんが違うのかリファクタリングが思い浮かばないだけなのか・・