dbflute introで気軽にdbコメント変更
TRANSCRIPT
DBFlute Introで気軽にDBコメント変更
2017/11/26 #DBFluteFes @deco
Agenda
• 自己紹介
• DBFlute-introとは
• DBコメントにおける課題
• DBFlute-introでどう解決するか
• デモ
• 機能追加予定
• Q&A
自己紹介
自己紹介
• 名前 : 冨永晃史@deco
• 職種 : Android、iPhoneエンジニアDBFlute-introコミッター
DBFlute-introとは
DBFlute-introとは
• Javaの実行環境さえあれば利用できるツール
• アプリの外側で活躍するDBFluteの機能を、GUIだけで実行できるツール
• 本日バージョン0.1.3をリリースしました。https://github.com/dbflute/dbflute-intro/releases
DBFlute-introとは
DBFlute-introとは
• Github
https://github.com/dbflute/dbflute-intro
• 概要http://dbflute.seasar.org/ja/manual/function/helper/intro/index
.html
https://www.slideshare.net/nakamu0718/dbflute-intro-
69599954?ref=https://connpass.com/event/43457/presentati
on/
DBコメントにおける課題
質問
• DB変更を行う機能追加を行ったことはありますか?
• DB変更時にコメントがなくて困ったことはありませんか?
背景
• なんでこんなことが起きるのか?
• 考えてみました。(主観)
サービスリリース直後
サービスリリース直後
• テーブル数20未満
• 開発者1~2名
• それぞれテーブルの意味を把握している
リリース後1年
非公開
サービス後1年
• テーブル数50未満
• 開発者1~10名
• 他の開発者が作ったテーブルが把握できなくなってくる
• 開発者が多くないので、聞けば誰かが知っている
リリース後10年後
非公開
サービス後10年
• テーブル数300以上
• 開発者30名~
• よくわからない、似たようなテーブル多数
• 作った人も社内にいないことが多い
• 有識者も分散していて誰に聞けばいいかわからない
課題
• コメントがないから、サービス特有の地雷を踏む若手が続出。
• コメントを書こうとしても、ERMファイルを変更するため時間がかかりやりたがらない人が多い。(DBFluteの場合)
DBFlute-introでどう解決するか
DBFlute-introでどう解決するか
• DBの情報を見るのはER図かschema.htmlがほとんど。-> schema.html上のDBコメントを直接変更できるようにしよう!!
DBFlute-introでどう解決するか
どうやって実現するのか
DBコメントの保存処理の流れ
scheme.html DBFlute-intro dfmap
DBコメントの保存処理の流れ
scheme.html DBFlute-intro dfmap
DBコメントの保存処理の流れ
scheme.html DBFlute-intro dfmap
DBコメントの保存処理の流れ
scheme.html DBFlute-intro dfmap
DBコメントの保存処理の流れ
scheme.html DBFlute-intro dfmap
DBコメントの反映処理の流れ
scheme.html DBFlute-intro dfmap
ファイルを開いたタイミングでintroにリクエスト
DBコメントの反映処理の流れ
scheme.html DBFlute-intro dfmap
dfmapファイルを読み込む
DBコメントの反映処理の流れ
schema.html DBFlute-intro dfmap
マージ結果をJSONに変換JSON結果からschema.htmlをDOM操作
使い方
• DBFlute-introをダウンロード
• 起動
• schema.htmlからコメントを編集
使い方
• 各開発者が自分の作業ブランチでコメント編集
• developブランチにマージされる。
• 再度作業ブランチを切ると他の開発者のコメントを確認することができる。
デモ
機能の説明
• 最新のコメントをどのように判定しているのか
• コンフリクトの判定はどのようにしているのか
機能の説明
• コメントごとにハッシュ値、一つ前のハッシュ値を持たせる
最新のコメントの判定方法
code: hoge
previous: null
code: fuga
previous: hoge
code: foo
previous: fuga
code: bar
previous: fuga
最新のコメントの判定方法
code: hoge
previous: null
code: fuga
previous: hoge
code: foo
previous: fuga
code: bar
previous: fuga
コンフリクトをHTML上に反映
コンフリクトの解消
code: hoge
previous: null
code: fuga
previous: hoge
code: foo
previous: fuga
code: bar
previous: fuga
code: end
previous: foo, bar
機能追加予定
機能追加予定
• 現状Columnコメントのみ対応しているのでTableコメントも対応できるようにする
• Introを使っていない人でもコメントを表示できるようにする
• ERFluteとの連携してERMファイルに自動反映できるようにする
Q&A
ご清聴ありがとうございました