dbflute introで気軽にdbコメント変更

43
DBFlute Intro気軽にDBコメント変更 2017/11/26 #DBFluteFes @deco

Upload: -

Post on 23-Jan-2018

109 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: DBFlute Introで気軽にDBコメント変更

DBFlute Introで気軽にDBコメント変更

2017/11/26 #DBFluteFes @deco

Page 2: DBFlute Introで気軽にDBコメント変更

Agenda

• 自己紹介

• DBFlute-introとは

• DBコメントにおける課題

• DBFlute-introでどう解決するか

• デモ

• 機能追加予定

• Q&A

Page 3: DBFlute Introで気軽にDBコメント変更

自己紹介

Page 4: DBFlute Introで気軽にDBコメント変更

自己紹介

• 名前 : 冨永晃史@deco

• 職種 : Android、iPhoneエンジニアDBFlute-introコミッター

Page 5: DBFlute Introで気軽にDBコメント変更

DBFlute-introとは

Page 6: DBFlute Introで気軽にDBコメント変更

DBFlute-introとは

• Javaの実行環境さえあれば利用できるツール

• アプリの外側で活躍するDBFluteの機能を、GUIだけで実行できるツール

• 本日バージョン0.1.3をリリースしました。https://github.com/dbflute/dbflute-intro/releases

Page 7: DBFlute Introで気軽にDBコメント変更

DBFlute-introとは

Page 8: DBFlute Introで気軽にDBコメント変更

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/

Page 9: DBFlute Introで気軽にDBコメント変更

DBコメントにおける課題

Page 10: DBFlute Introで気軽にDBコメント変更

質問

• DB変更を行う機能追加を行ったことはありますか?

• DB変更時にコメントがなくて困ったことはありませんか?

Page 11: DBFlute Introで気軽にDBコメント変更

背景

• なんでこんなことが起きるのか?

• 考えてみました。(主観)

Page 12: DBFlute Introで気軽にDBコメント変更

サービスリリース直後

Page 13: DBFlute Introで気軽にDBコメント変更

サービスリリース直後

• テーブル数20未満

• 開発者1~2名

• それぞれテーブルの意味を把握している

Page 14: DBFlute Introで気軽にDBコメント変更

リリース後1年

非公開

Page 15: DBFlute Introで気軽にDBコメント変更

サービス後1年

• テーブル数50未満

• 開発者1~10名

• 他の開発者が作ったテーブルが把握できなくなってくる

• 開発者が多くないので、聞けば誰かが知っている

Page 16: DBFlute Introで気軽にDBコメント変更

リリース後10年後

非公開

Page 17: DBFlute Introで気軽にDBコメント変更

サービス後10年

• テーブル数300以上

• 開発者30名~

• よくわからない、似たようなテーブル多数

• 作った人も社内にいないことが多い

• 有識者も分散していて誰に聞けばいいかわからない

Page 18: DBFlute Introで気軽にDBコメント変更

課題

• コメントがないから、サービス特有の地雷を踏む若手が続出。

• コメントを書こうとしても、ERMファイルを変更するため時間がかかりやりたがらない人が多い。(DBFluteの場合)

Page 19: DBFlute Introで気軽にDBコメント変更

DBFlute-introでどう解決するか

Page 20: DBFlute Introで気軽にDBコメント変更

DBFlute-introでどう解決するか

• DBの情報を見るのはER図かschema.htmlがほとんど。-> schema.html上のDBコメントを直接変更できるようにしよう!!

Page 21: DBFlute Introで気軽にDBコメント変更

DBFlute-introでどう解決するか

Page 22: DBFlute Introで気軽にDBコメント変更

どうやって実現するのか

Page 23: DBFlute Introで気軽にDBコメント変更

DBコメントの保存処理の流れ

scheme.html DBFlute-intro dfmap

Page 24: DBFlute Introで気軽にDBコメント変更

DBコメントの保存処理の流れ

scheme.html DBFlute-intro dfmap

Page 25: DBFlute Introで気軽にDBコメント変更

DBコメントの保存処理の流れ

scheme.html DBFlute-intro dfmap

Page 26: DBFlute Introで気軽にDBコメント変更

DBコメントの保存処理の流れ

scheme.html DBFlute-intro dfmap

Page 27: DBFlute Introで気軽にDBコメント変更

DBコメントの保存処理の流れ

scheme.html DBFlute-intro dfmap

Page 28: DBFlute Introで気軽にDBコメント変更

DBコメントの反映処理の流れ

scheme.html DBFlute-intro dfmap

ファイルを開いたタイミングでintroにリクエスト

Page 29: DBFlute Introで気軽にDBコメント変更

DBコメントの反映処理の流れ

scheme.html DBFlute-intro dfmap

dfmapファイルを読み込む

Page 30: DBFlute Introで気軽にDBコメント変更

DBコメントの反映処理の流れ

schema.html DBFlute-intro dfmap

マージ結果をJSONに変換JSON結果からschema.htmlをDOM操作

Page 31: DBFlute Introで気軽にDBコメント変更

使い方

• DBFlute-introをダウンロード

• 起動

• schema.htmlからコメントを編集

Page 32: DBFlute Introで気軽にDBコメント変更

使い方

• 各開発者が自分の作業ブランチでコメント編集

• developブランチにマージされる。

• 再度作業ブランチを切ると他の開発者のコメントを確認することができる。

Page 33: DBFlute Introで気軽にDBコメント変更

デモ

Page 34: DBFlute Introで気軽にDBコメント変更

機能の説明

• 最新のコメントをどのように判定しているのか

• コンフリクトの判定はどのようにしているのか

Page 35: DBFlute Introで気軽にDBコメント変更

機能の説明

• コメントごとにハッシュ値、一つ前のハッシュ値を持たせる

Page 36: DBFlute Introで気軽にDBコメント変更

最新のコメントの判定方法

code: hoge

previous: null

code: fuga

previous: hoge

code: foo

previous: fuga

code: bar

previous: fuga

Page 37: DBFlute Introで気軽にDBコメント変更

最新のコメントの判定方法

code: hoge

previous: null

code: fuga

previous: hoge

code: foo

previous: fuga

code: bar

previous: fuga

Page 38: DBFlute Introで気軽にDBコメント変更

コンフリクトをHTML上に反映

Page 39: DBFlute Introで気軽にDBコメント変更

コンフリクトの解消

code: hoge

previous: null

code: fuga

previous: hoge

code: foo

previous: fuga

code: bar

previous: fuga

code: end

previous: foo, bar

Page 40: DBFlute Introで気軽にDBコメント変更

機能追加予定

Page 41: DBFlute Introで気軽にDBコメント変更

機能追加予定

• 現状Columnコメントのみ対応しているのでTableコメントも対応できるようにする

• Introを使っていない人でもコメントを表示できるようにする

• ERFluteとの連携してERMファイルに自動反映できるようにする

Page 42: DBFlute Introで気軽にDBコメント変更

Q&A

Page 43: DBFlute Introで気軽にDBコメント変更

ご清聴ありがとうございました