JaSST 14 Tohoku
クックパッド株式会社 高井 直人
スマホアプリ累計DL数 ios 1,010万 Android 990万 2014年4月時点 パズドラ 2,700万 黒猫 2,500万
Apache Rails 3.2 Ruby 2.0 Unicorn nginx MySQL Redis Memcached Amazon Web Service
V字モデルとV V 企画 評価 要件定義 受け入れテスト 基本設計 システムテスト 詳細設計 結合テスト 実装 単体テスト 妥当性確認 検証
V字モデルと責任分界点 余談 企画 評価 要件定義 受け入れテスト 基本設計 システムテスト 詳細設計 発注側範囲 受託側範囲 正確には要件定義 受け入 れテストは発注側責任 結合テスト 実装 単体テスト 受託開発で妥当性確認が 話題にならない理由
構築 計測 学習のループ アイデア 学ぶ 構築する データ 製品 計測する このループに要する時間を最小化する
デプロイメントパイプライン バージョンコントロール ソースコード 設定 設定 受け入れテスト 環境設定 デプロイ スモークテスト コミットステージ 受け入れステージ 性能テスト コンパイル 環境設定 コミットテスト デプロイ 環境設定 デプロイ 成果物作成 スモークテスト スモークテスト コード解析 受け入れテスト 本番環境 環境設定 デプロイ スモークテスト 成果物リポジトリ Jez Humble David Farley 継続的デリバリー
Developement Source Code Review Continuous Integration Production Test Production pull req merge pull tag deploy deploy GitHub Git Repository
LAN Developer Machine Ruby on Rails HipChat push GitHub Enterprise Redis Remote Spec Workers memcached rspec remote_spec worker Tokyo Tyrant remote_spec worker EC2 Shared Development MySQL deploy Development App Server
describe SymbolStack do... context 'when stack is empty' do subject(:empty_stack) { SymbolStack.new } describe '#size' do end it { expect(empty_stack.size).to eq 0 }
feature 'User login' do scenario 'successful login' do visit login_path fill_in 'Login', with: 'user@example.com' fill_in 'Password', with: 'password' click_link 'Submit' end expect(current_path).to root_path
EC2 Development DB HipChat Remote Spec schema pull notify distribute Git Repository push tag CI Server deploy Production Test clone pusher service hook pull Git Repository merge Developer LAN
Pull Request review Developer open merge review Owner Team Developer
Repository Pull Request Issue open open review file file Developer UI/UX Designer Product Manager Product Support
EC2 Development DB HipChat Remote Spec schema pull notify distribute Git Repository push tag CI Server deploy Production Test clone pusher service hook pull Git Repository merge Developer LAN
Slave Worker Worker Master DB Slave Slave