SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
ディプロマティック・イミュニティ (外交特権) 
2014/10/26 
大中浩行
Copyright 2014 Hiroyuki Ohnaka 
目的:ベストプラクティスを採用する 
•SubversionやGitなどのツールを用いて、ソース コードのバージョン管理を行う。 
•ユニットテストや機能テストを自動化し、実行 する。 
•ドキュメント、仕様書、コードコメントを書き、 アプリケーションの要件や実装戦略を記録する。
Copyright 2014 Hiroyuki Ohnaka 
アンチパターン:SQLを特別扱いする 
「アプリケーション開発のルールは、データ ベース開発には当てはまらない」
Copyright 2014 Hiroyuki Ohnaka 
考えられる理由 
•ソフトウェアエンジニアとDBAの役割の区別 
•SQL言語とプログラミング言語の性質の違い 
•ツールの普及の違い 
•データベース管理者へのアクセス権の集中
Copyright 2014 Hiroyuki Ohnaka 
アンチパターンの見つけ方 
「『軽量な』エンジニアリングプロセス」 
「データベース管理者はこのシステムを使わないだろう から」 
「データベースのテーブルや列が使われているかをどう やって調べればいい?」 
「2つのデータベーススキーマを一致させるには?」
Copyright 2014 Hiroyuki Ohnaka 
アンチパターンを用いてもよい場合 
その場限りのコード
Copyright 2014 Hiroyuki Ohnaka 
解決策:包括的に品質問題に取り組む 
•文章化 
•バージョン管理 
•テスティング
Copyright 2014 Hiroyuki Ohnaka 
文章化 
•ER図 
•テーブル、列、 ビュー 
•関連(リレー ションシップ) 
•トリガー 
•ストアドプロ シージャ 
•SQLセキュリティ 
•データベースイ ンフラストラク チャ 
•オブジェクトリ レーショナル マッピング (ORM)
Copyright 2014 Hiroyuki Ohnaka 
バージョン管理 
•データ定義スクリプト 
•トリガーとプロシージャ 
•ブートストラップデータ 
•ER図とドキュメント 
•データベース管理スクリプト
Copyright 2014 Hiroyuki Ohnaka 
テスティング 
•テーブル、列、 ビュー 
•制約 
•トリガー 
•ストアドプロ シージャ 
•ブートスタラップ データ 
•クエリ 
•オブジェクトリ レーショナルマッ ピング(ORM)を使 用したクラス
Copyright 2014 Hiroyuki Ohnaka 
複数のブランチを扱う

Contenu connexe

Tendances

ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
20200214 drupal-meetup-haneda
20200214 drupal-meetup-haneda20200214 drupal-meetup-haneda
20200214 drupal-meetup-hanedaAcquiaJP
 
Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版Akira Hayashi
 
Xcode以外の開発環境 AppCodeの紹介
Xcode以外の開発環境 AppCodeの紹介Xcode以外の開発環境 AppCodeの紹介
Xcode以外の開発環境 AppCodeの紹介Akira Hayashi
 
インフラエンジニアに送るVSCode 入門
インフラエンジニアに送るVSCode 入門インフラエンジニアに送るVSCode 入門
インフラエンジニアに送るVSCode 入門Shinsuke Saito
 
Introduction to Kinect vNext
Introduction to Kinect vNextIntroduction to Kinect vNext
Introduction to Kinect vNextAkira Hatsune
 
新 Microsoft Edge を Intune で配信・管理する
新 Microsoft Edge を Intune で配信・管理する新 Microsoft Edge を Intune で配信・管理する
新 Microsoft Edge を Intune で配信・管理するShinsuke Saito
 
.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望Akira Inoue
 
Visual Studio App Centerを触ってみた!
Visual Studio App Centerを触ってみた!Visual Studio App Centerを触ってみた!
Visual Studio App Centerを触ってみた!Kentaro Higashi
 
ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話典子 松本
 
LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409Ayako Omori
 
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyauroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyaKenichi Hoshi
 

Tendances (14)

ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
20200214 drupal-meetup-haneda
20200214 drupal-meetup-haneda20200214 drupal-meetup-haneda
20200214 drupal-meetup-haneda
 
Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版
 
Xcode以外の開発環境 AppCodeの紹介
Xcode以外の開発環境 AppCodeの紹介Xcode以外の開発環境 AppCodeの紹介
Xcode以外の開発環境 AppCodeの紹介
 
DevLOVE iPhoneアプリ勉強会
DevLOVE iPhoneアプリ勉強会DevLOVE iPhoneアプリ勉強会
DevLOVE iPhoneアプリ勉強会
 
インフラエンジニアに送るVSCode 入門
インフラエンジニアに送るVSCode 入門インフラエンジニアに送るVSCode 入門
インフラエンジニアに送るVSCode 入門
 
Introduction to Kinect vNext
Introduction to Kinect vNextIntroduction to Kinect vNext
Introduction to Kinect vNext
 
新 Microsoft Edge を Intune で配信・管理する
新 Microsoft Edge を Intune で配信・管理する新 Microsoft Edge を Intune で配信・管理する
新 Microsoft Edge を Intune で配信・管理する
 
.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望
 
watchOS2 tips
watchOS2 tipswatchOS2 tips
watchOS2 tips
 
Visual Studio App Centerを触ってみた!
Visual Studio App Centerを触ってみた!Visual Studio App Centerを触ってみた!
Visual Studio App Centerを触ってみた!
 
ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話ノーコーディングでAIサービスを使ってみた話
ノーコーディングでAIサービスを使ってみた話
 
LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409
 
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoyauroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
uroboroSQLの紹介 (OSC2017 Nagoya) #oscnagoya
 

En vedette

DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
SQLアンチパターン読書会 「スパゲッティクエリ」
SQLアンチパターン読書会 「スパゲッティクエリ」SQLアンチパターン読書会 「スパゲッティクエリ」
SQLアンチパターン読書会 「スパゲッティクエリ」makopi 23
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記Hiroyuki Ohnaka
 
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~Hiroyuki Ohnaka
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
SQLアンチパターンNight
SQLアンチパターンNightSQLアンチパターンNight
SQLアンチパターンNightHironori Miura
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法yoku0825
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことKeisuke Nishitani
 
アジャイルサムライ 5章「具現化させる」
アジャイルサムライ 5章「具現化させる」アジャイルサムライ 5章「具現化させる」
アジャイルサムライ 5章「具現化させる」makopi 23
 
SQLアンチパターン読書会 09章 ラウンディングエラー
SQLアンチパターン読書会 09章 ラウンディングエラーSQLアンチパターン読書会 09章 ラウンディングエラー
SQLアンチパターン読書会 09章 ラウンディングエラーYosuke Nakazawa
 
SQLアンチパターン読書会 レジュメ
SQLアンチパターン読書会 レジュメSQLアンチパターン読書会 レジュメ
SQLアンチパターン読書会 レジュメNorito Agetsuma
 
SQLアンチパターンNight ライトニングトーク
SQLアンチパターンNight ライトニングトークSQLアンチパターンNight ライトニングトーク
SQLアンチパターンNight ライトニングトークItabashi Masayuki
 
マジックビーンズ
マジックビーンズマジックビーンズ
マジックビーンズAkira Suenami
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」makopi 23
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介Uchio Kondo
 
CRM分析サービス crm analyzer expressを 支えるサーバレスな色々
CRM分析サービス  crm analyzer expressを 支えるサーバレスな色々CRM分析サービス  crm analyzer expressを 支えるサーバレスな色々
CRM分析サービス crm analyzer expressを 支えるサーバレスな色々Kazuhiro Sasaki
 
"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016
"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016
"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016Emanuela Marchiafava
 
Kurani drejt shkences
Kurani drejt shkencesKurani drejt shkences
Kurani drejt shkencesDurim Bajrami
 

En vedette (20)

DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
SQLアンチパターン読書会 「スパゲッティクエリ」
SQLアンチパターン読書会 「スパゲッティクエリ」SQLアンチパターン読書会 「スパゲッティクエリ」
SQLアンチパターン読書会 「スパゲッティクエリ」
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
 
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
SQLアンチパターンNight
SQLアンチパターンNightSQLアンチパターンNight
SQLアンチパターンNight
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
アジャイルサムライ 5章「具現化させる」
アジャイルサムライ 5章「具現化させる」アジャイルサムライ 5章「具現化させる」
アジャイルサムライ 5章「具現化させる」
 
SQLアンチパターン読書会 09章 ラウンディングエラー
SQLアンチパターン読書会 09章 ラウンディングエラーSQLアンチパターン読書会 09章 ラウンディングエラー
SQLアンチパターン読書会 09章 ラウンディングエラー
 
SQLアンチパターン読書会 レジュメ
SQLアンチパターン読書会 レジュメSQLアンチパターン読書会 レジュメ
SQLアンチパターン読書会 レジュメ
 
SQLアンチパターンNight ライトニングトーク
SQLアンチパターンNight ライトニングトークSQLアンチパターンNight ライトニングトーク
SQLアンチパターンNight ライトニングトーク
 
マジックビーンズ
マジックビーンズマジックビーンズ
マジックビーンズ
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」HerokuではじめるRailsプログラミング入門  6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介
 
CRM分析サービス crm analyzer expressを 支えるサーバレスな色々
CRM分析サービス  crm analyzer expressを 支えるサーバレスな色々CRM分析サービス  crm analyzer expressを 支えるサーバレスな色々
CRM分析サービス crm analyzer expressを 支えるサーバレスな色々
 
What is Serverless?
What is Serverless?What is Serverless?
What is Serverless?
 
"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016
"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016
"Ora et Labora" la Via Francigena in provincia di Pavia @BIT2016
 
Kurani drejt shkences
Kurani drejt shkencesKurani drejt shkences
Kurani drejt shkences
 

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

ソフトウェアUI妥当性確認の形式化に向けて
ソフトウェアUI妥当性確認の形式化に向けてソフトウェアUI妥当性確認の形式化に向けて
ソフトウェアUI妥当性確認の形式化に向けてShuji Kinoshita
 
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 Makoto SAKAI
 
ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明しょうご すずき
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理Tadashi Miyazato
 
よりよい開発を目指すための、プロセス&ツール活用
よりよい開発を目指すための、プロセス&ツール活用よりよい開発を目指すための、プロセス&ツール活用
よりよい開発を目指すための、プロセス&ツール活用Kaoru NAKAMURA
 
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力オラクルエンジニア通信
 
エンジニア目線での対外ブランディング ~ヌーラボ編~
エンジニア目線での対外ブランディング ~ヌーラボ編~エンジニア目線での対外ブランディング ~ヌーラボ編~
エンジニア目線での対外ブランディング ~ヌーラボ編~ikikko
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程Hidetoshi Mori
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスアシアル株式会社
 
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望Yoichi Kawasaki
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱Koichi ITO
 
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010Yusuke Suzuki
 
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック智治 長沢
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCDaisuke Nishino
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介CData Software Japan
 
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点Makoto SAKAI
 
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Makoto SAKAI
 

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

ソフトウェアUI妥当性確認の形式化に向けて
ソフトウェアUI妥当性確認の形式化に向けてソフトウェアUI妥当性確認の形式化に向けて
ソフトウェアUI妥当性確認の形式化に向けて
 
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
 
ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
よりよい開発を目指すための、プロセス&ツール活用
よりよい開発を目指すための、プロセス&ツール活用よりよい開発を目指すための、プロセス&ツール活用
よりよい開発を目指すための、プロセス&ツール活用
 
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
[Modern Cloud Day Tokyo 2019] 目指せコーディングレス!「繋げる」が実現するクラウド活用による高速アプリケーション開発の魅力
 
エンジニア目線での対外ブランディング ~ヌーラボ編~
エンジニア目線での対外ブランディング ~ヌーラボ編~エンジニア目線での対外ブランディング ~ヌーラボ編~
エンジニア目線での対外ブランディング ~ヌーラボ編~
 
サービス開発における工程
サービス開発における工程サービス開発における工程
サービス開発における工程
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティス
 
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
 
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
 
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
 
Heroku Inside
Heroku InsideHeroku Inside
Heroku Inside
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
20170705 apiをつくろう
20170705 apiをつくろう20170705 apiをつくろう
20170705 apiをつくろう
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介
 
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
 
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
 

Plus de Hiroyuki Ohnaka

remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱いHiroyuki Ohnaka
 
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験Hiroyuki Ohnaka
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...Hiroyuki Ohnaka
 
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話Hiroyuki Ohnaka
 
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプルHiroyuki Ohnaka
 
Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Hiroyuki Ohnaka
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescriptHiroyuki Ohnaka
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版Hiroyuki Ohnaka
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版Hiroyuki Ohnaka
 
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~Hiroyuki Ohnaka
 
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘いHiroyuki Ohnaka
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Hiroyuki Ohnaka
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」Hiroyuki Ohnaka
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)Hiroyuki Ohnaka
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcHiroyuki Ohnaka
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)Hiroyuki Ohnaka
 
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!Hiroyuki Ohnaka
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Hiroyuki Ohnaka
 
「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまでHiroyuki Ohnaka
 

Plus de Hiroyuki Ohnaka (20)

remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱い
 
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
VSCode Remote Container & GitHub Codespacesで拓く次世代のJava開発体験
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
 
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
ChefとItamaeをニコイチしてAnsibleにマイグレーションした話
 
「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル「WindowsデスクトップでWeb開発 改訂版」サンプル
「WindowsデスクトップでWeb開発 改訂版」サンプル
 
Mackerelの薄い本
Mackerelの薄い本Mackerelの薄い本
Mackerelの薄い本
 
Microsoft DocsにContributeした話
Microsoft DocsにContributeした話Microsoft DocsにContributeした話
Microsoft DocsにContributeした話
 
Azure functions+typescript
Azure functions+typescriptAzure functions+typescript
Azure functions+typescript
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
 
仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~仮想通貨始めました~GethではじめるEthereum~
仮想通貨始めました~GethではじめるEthereum~
 
錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い錬金術MeetUpへのお誘い
錬金術MeetUpへのお誘い
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」
 
TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)TDDはじめて物語Second Season(updated)
TDDはじめて物語Second Season(updated)
 
TDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbcTDDはじめて物語 Second Season #tddbc
TDDはじめて物語 Second Season #tddbc
 
XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)XP祭り2017 LT 「DevOps再考」(改題)
XP祭り2017 LT 「DevOps再考」(改題)
 
JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!JDK9の真の目玉機能はこれだ!
JDK9の真の目玉機能はこれだ!
 
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
 
「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで「すいーとみゅーじっく」のできるまで
「すいーとみゅーじっく」のできるまで
 

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

  • 2. Copyright 2014 Hiroyuki Ohnaka 目的:ベストプラクティスを採用する •SubversionやGitなどのツールを用いて、ソース コードのバージョン管理を行う。 •ユニットテストや機能テストを自動化し、実行 する。 •ドキュメント、仕様書、コードコメントを書き、 アプリケーションの要件や実装戦略を記録する。
  • 3. Copyright 2014 Hiroyuki Ohnaka アンチパターン:SQLを特別扱いする 「アプリケーション開発のルールは、データ ベース開発には当てはまらない」
  • 4. Copyright 2014 Hiroyuki Ohnaka 考えられる理由 •ソフトウェアエンジニアとDBAの役割の区別 •SQL言語とプログラミング言語の性質の違い •ツールの普及の違い •データベース管理者へのアクセス権の集中
  • 5. Copyright 2014 Hiroyuki Ohnaka アンチパターンの見つけ方 「『軽量な』エンジニアリングプロセス」 「データベース管理者はこのシステムを使わないだろう から」 「データベースのテーブルや列が使われているかをどう やって調べればいい?」 「2つのデータベーススキーマを一致させるには?」
  • 6. Copyright 2014 Hiroyuki Ohnaka アンチパターンを用いてもよい場合 その場限りのコード
  • 7. Copyright 2014 Hiroyuki Ohnaka 解決策:包括的に品質問題に取り組む •文章化 •バージョン管理 •テスティング
  • 8. Copyright 2014 Hiroyuki Ohnaka 文章化 •ER図 •テーブル、列、 ビュー •関連(リレー ションシップ) •トリガー •ストアドプロ シージャ •SQLセキュリティ •データベースイ ンフラストラク チャ •オブジェクトリ レーショナル マッピング (ORM)
  • 9. Copyright 2014 Hiroyuki Ohnaka バージョン管理 •データ定義スクリプト •トリガーとプロシージャ •ブートストラップデータ •ER図とドキュメント •データベース管理スクリプト
  • 10. Copyright 2014 Hiroyuki Ohnaka テスティング •テーブル、列、 ビュー •制約 •トリガー •ストアドプロ シージャ •ブートスタラップ データ •クエリ •オブジェクトリ レーショナルマッ ピング(ORM)を使 用したクラス
  • 11. Copyright 2014 Hiroyuki Ohnaka 複数のブランチを扱う