More Related Content
Similar to 20120830 DBリファクタリング読書会第三回
Similar to 20120830 DBリファクタリング読書会第三回 (20)
More from 都元ダイスケ Miyamoto
More from 都元ダイスケ Miyamoto (20)
20120830 DBリファクタリング読書会第三回
- 2. 自己紹介
• 都元ダイスケ (@daisuke_m)
• Java屋です
• java-jaから来ま(ry
Java
オブジェクト指向
Eclipse
恭ライセンス
薬
Mahout
Spring
XML Jiemamy
DDD
HadoopOSGi
Haskell
Scala
Maven
Wicket
AWS
酒
- 9. Evolutional DB Design
• 実装前に設計を確定させるのは、もは
や不可能(→アジャイル)
• DBの設計に関しても同様で、リファク
タリングを適用したい
• しかし、DBはアーキテクチャの低層に
位置しているため、被依存度が高く、
変更しづらい
• どーする?
- 11. あらためてJiemamy
• DB構成情報を1つに集約 (smart model)
「重要なことはファイルを扱うようにデータベースを扱えるツールを持つことだ。」
「スキーマとテストデータから成るデータベース」
• データファイルをVCS管理 (smart version control)
「マスターデータベースをソースコードと同様に構成管理の下に置くのである。」
「全システムを管理する強力な構成管理ツールの下にあれば、もし最悪の事態が起こっても元に戻すのは難
しいことではない。」
• ビルドフェーズでDB整備 (smart build)
「すべての開発者のデータベースに変更を自動的に適用する」
∼ツール面からDBの進化的設計をサポート∼
- 15. smart version control
class Emp {
String name;
Busyo busyo;
}
class Busyo {
String name;
// ...
}
class Dept {
String name;
// ...
}
class Emp {
String name;
Dept dept;
}
- 16. smart version control
CREATE TABLE HOGE
(
ID integer ...
);
@Table("HOGE")
class Foo {
// ...
}
@Table("FOO")
class Foo {
// ...
}
CREATE TABLE FOO
(
ID integer ...
);
要は、チェンジセットを意識しなさいって話
- 19. 設計にあたって
• データファイルはVCSにコ
ミットしてdiff / mergeできる
べき(バイナリ不可)
• データファイルからDB環境
を自動構築できるべき
• スキーマだけではなく、テス
トデータも管理できるべき
• 多くのRDBMSで使えるべき
• 外部システムがこのデータを
利用できるように、安定して
使いやすいAPIを提供すべき
• DB変更内容を検知し、
ALTER文等にマッピングでき
るべき
• データアクセスコードもリファ
クタリングに追従すべき
- 20. Jiemamy components
jiemamy-core
jiemamy-commons
apache commons
jiemamy eclipse plugin
maven-jiemamy-plugin
jiemamy-diagram
jiemamy-sql
DiagramEditor
TableView
DbObjectEditPart
ExecuteMojo
JmDiagram
JmNode / JmConnection
SqlStatement
Token JmTable / JmView
JmColumn
JmForeignKeyConstraint
SqlExecutor / UUIDProvider
woodstox
XMLInputFactory
XMLValidationSchema
UI
Application
Domain
Infrastructure