Upload
akihiro-sugeno
View
8.108
Download
0
Embed Size (px)
Citation preview
DB設計を静的解析するツールを作ってみた 菅野明洋
@ まべ☆てっく vol.1
免責事項❖ 本発表における見解は、私自身の見解で行っております。❖ 所属する会社、団体の見解を反映したものではありませんので、ご了承ください。
今回は個人の活動として参加しております
自己紹介❖ 名前
❖ 菅野 明洋 ( すげの あきひろ )❖ 所属
❖ 株式会社 Aiming 大阪スタジオ インフラチーム❖ 業務内容
❖ スマートフォン向けゲームのシステムを見守る❖ 最近は上海に行ってる
今回発表するもの❖ 概要
❖ ER 図を静的解析し問題を指摘するツール❖ 作った目的
❖ 設計起因による問題の早期発見と設計レビューの負荷の軽減❖ ツールコンセプト
❖ 人の手による機械的作業の低減、意味のある設計の議論の時間確保
環境❖ OS
❖ Windows10, 7
❖ プログラム❖ C,C++
❖ ライブラリ等❖ boost, hunspell, Xerces-C++, SimpleXmlWriter
ツールが出来るまで
ある日 (ちょっと昔話 )
❖ ある日、 DB レビューをしていました。
よく有った問題毎回同じ指摘点がある
スペルミス
型設定ミス
リレーションシップが無い
インデックスが無い
ミスの見逃し
毎回報告書書くの面倒
よく有った問題毎回同じ指摘点がある
スペルミス
型設定ミス
リレーションシップが無い
インデックスが無い
ミスの見逃し
毎回報告書書くの面倒
修正は後から出来るけど、出来れば早いうちに片付けたほうが開発の巻き戻りが少ない。
考えた解決策
❖ そうだ、自動化しよう
できた機能❖ 正規表現を用いた命名規則チェック❖ データ型と DDL オプションのチェック❖ ER 図の論理名、物理名のスペルチェック❖ リレーションシップの自己参照のチェック❖ リレーションシップの不足をチェック❖ インデックスの不足チェック❖ xlsx 形式のレポート出力
使った結果❖ ケアレスミスの検知速度、フィードバックの時間短縮
❖ 細かい点の確認に数時間要するところ数秒まで短縮❖ スペルミスなど細かすぎる点のチェックも有用❖ インデックス、リレーションシップの貼り忘れの検知も偶に役に立った
❖ 機械的作業の軽減により、 ( 肉体的 & 精神的 ) 負荷が下がり、設計思想的な部分の議論の時間に割くように出来た。
Demo
そして、 OSS化してみた❖ Source code
❖ https://github.com/asugeno/saferドキュメントは鋭意作成中❖ Binary
❖ https://github.com/asugeno/safer_binary
将来的にやりたいこと (目標 )❖ 短期目標 ( 直近の作業 )
❖ 対応フォーマットの追加❖ MySQL Workbench 等
❖ ドキュメントの拡充❖ 中期目標 ( 一年以内 ?)
❖ Mac,Linux 対応❖ Jenkins 対応❖ 設定ファイルを生成する GUI ツール実装❖ JavaScript による追加処理の定義機能追加
最後に
株式会社 Aimingでは各種人材を絶賛募集中です!一緒にゲームを作りませんか?