11

Click here to load reader

SQLアンチパターン「ディプロマティック・イミュニティ」

Embed Size (px)

DESCRIPTION

SQLアンチパターン読書会の発表スライドです。

Citation preview

Page 1: SQLアンチパターン「ディプロマティック・イミュニティ」

ディプロマティック・イミュニティ(外交特権)

2014/10/26

大中浩行

Page 2: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

目的:ベストプラクティスを採用する

• SubversionやGitなどのツールを用いて、ソース

コードのバージョン管理を行う。

• ユニットテストや機能テストを自動化し、実行

する。

• ドキュメント、仕様書、コードコメントを書き、

アプリケーションの要件や実装戦略を記録する。

Page 3: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

アンチパターン:SQLを特別扱いする

「アプリケーション開発のルールは、データ

ベース開発には当てはまらない」

Page 4: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

考えられる理由

• ソフトウェアエンジニアとDBAの役割の区別

• SQL言語とプログラミング言語の性質の違い

• ツールの普及の違い

• データベース管理者へのアクセス権の集中

Page 5: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

アンチパターンの見つけ方

「『軽量な』エンジニアリングプロセス」

「データベース管理者はこのシステムを使わないだろう

から」

「データベースのテーブルや列が使われているかをどう

やって調べればいい?」

「2つのデータベーススキーマを一致させるには?」

Page 6: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

アンチパターンを用いてもよい場合

その場限りのコード

Page 7: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

解決策:包括的に品質問題に取り組む

• 文章化

• バージョン管理

• テスティング

Page 8: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

文章化

• ER図

• テーブル、列、ビュー

• 関連(リレーションシップ)

• トリガー

• ストアドプロシージャ

• SQLセキュリティ

• データベースインフラストラクチャ

• オブジェクトリレーショナルマッピング(ORM)

Page 9: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

バージョン管理

• データ定義スクリプト

• トリガーとプロシージャ

• ブートストラップデータ

• ER図とドキュメント

• データベース管理スクリプト

Page 10: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

テスティング

•テーブル、列、ビュー

•制約

•トリガー

•ストアドプロシージャ

•ブートスタラップデータ

•クエリ

•オブジェクトリレーショナルマッピング(ORM)を使用したクラス

Page 11: SQLアンチパターン「ディプロマティック・イミュニティ」

Copyright 2014 Hiroyuki Ohnaka

複数のブランチを扱う