コード共通化

14
コードの再利用について色々 13328日木曜日

Transcript of コード共通化

Page 1: コード共通化

コードの再利用について色々

13年3月28日木曜日

Page 2: コード共通化

再利用の常識

DRY原則

オブジェクト指向

デザインパターン

自動テスト

13年3月28日木曜日

Page 3: コード共通化

現実のプロジェクト

実装に関心が無いマネージャー・SE

初心者の寄せ集め

アーキテクト不在

リーダー不在

13年3月28日木曜日

Page 4: コード共通化

継承?なにそれ。

重複を強制するルールや設計

巨大クラス、巨大メソッド

コピペの嵐

13年3月28日木曜日

Page 5: コード共通化

整理すると

共通化の必要性は理解されている

共通化を行うことができるスキルはある

大人の事情により共通化が進まない

13年3月28日木曜日

Page 6: コード共通化

orz

13年3月28日木曜日

Page 7: コード共通化

メンバーの視点 自分のタスクを終わらせる責任がある。

共通化にはコストがかかる。

コードの縄張り意識

ルールが不明確、既存のソースと慣習が主なルール。ルールを決める権限は無い

提案すれば教育やメンテまでやらされる。

13年3月28日木曜日

Page 8: コード共通化

独自実装が基本戦略になる

13年3月28日木曜日

Page 9: コード共通化

対策

独自実装コスト > (利用コスト+作成コスト)

メンテフリー化

13年3月28日木曜日

Page 10: コード共通化

コスト削減

決まった場所に作る。

ファサードを使う。

メンバー全員が共通部品を作る

どうやってもいい部分は適当に決めておく

あらかじめサンプルになるようなものを容易しておく

13年3月28日木曜日

Page 11: コード共通化

メンテフリー化

適切な名付け

Javadoc(コメント)

テストクラス

小さいメソッド

バグ修正・機能追加は自由に。

13年3月28日木曜日

Page 12: コード共通化

よくある構成例

DAO層

Service層

Web層

Utils

13年3月28日木曜日

Page 13: コード共通化

まとめ

自然に回るような仕組み作りが大事

共通化を促進する仕組みを全員が理解して参加する

13年3月28日木曜日

Page 14: コード共通化

参考資料

Code Craft

オブジェクト指向のこころ

パフォーマンス・マネジメント

マネジメント基本と原則

13年3月28日木曜日