Contenu connexe
Similaire à Cibc lecture imagire
Similaire à Cibc lecture imagire (20)
Plus de Takashi Imagire (20)
Cibc lecture imagire
- 10. アジャイル 三種の神器
• SCM: Software Configuration Management
– ソフトウェア構成管理(ツール)
• Git, SubVersion, …
• BTS: Bug Tracking System
– バグ管理システム
• Redmine, Trac, JIRA, …
• CI: Continuous Integration
– 継続的統合(ツール)
• Jenkins, Travis CI
- 12. 妄想 TDD
Boot Camp
SCM Agile Scrum
Boot Camp Boot Camp Boot Camp
やりたい!
- 13. 妄想 TDD
Boot Camp
SCM Agile Scrum
Boot Camp Boot Camp Boot Camp
何かが足りない…
- 14. 妄想 TDD
Boot Camp
SCM Agile Scrum
Boot Camp Boot Camp Boot Camp
CI
Boot Camp
- 22. CI (Continuous Integration)
• 継続的インテグレーション(統合)
– 常にソフトウェアを統合しておくことで、モ
ジュール間の不整合を最小限に留め、品質を
向上する手法
• ビルド
• テスト
• 静的解析
– 自動化できる部分は自動化しておくことで、
バグを早期に発見し、不具合を未然に防ぎや
すくする
- 23. 継続的デリバリー
• CIをデプロイ(製品出荷)まで進める
– 何時でも使えるものが出荷できる
• バグは使われる時間が多いほど発見されやすい
• 早期提供、早期フィードバック
– 新しいアイデアがすぐに実現できる
– ムダな昨日の作り込みを排除
• 自動化されたデプロイ
– リリース作業でのヒューマンエラーの削減
• 焦っても大丈夫
– 価値を生む仕事に専念
– デプロイメント職人が不必要になる
- 24. 継続的デリバリーで得られる物
• 堅実な開発
– バグを事前に見つけやすい安心感
– 最新版の動作が実感できる安心感
• 通常は直前の状態に戻しやすい
– 何時でも見せられるものがある安心感
• 偉い人は突然やってくる
– すぐに中止の判断も出来る
• 金の垂れ流しを防止して、すばやいリカバリー
- 25. 従来のデプロイ
SCM
デプロイ先
誰かがビルド
誰かが置く
コンパイラ
- 26. 継続的インテグレーション1
失敗したら通知
メール
CIサーバー
①SCMの更新を監視
or 定期的に取得
SCM
②ビルド
③実行ファイル
を渡す
コンパイラ
- 27. 継続的インテグレーション2
失敗したら通知
メール
CIサーバー
①SCMの更新を監視
or 定期的に取得
SCM
②ビルド
④テストを実行
③実行ファイル
を渡す
Unit test
コンパイラ
- 28. 継続的デリバリー1
失敗したら通知
メール
CIサーバー
①SCMの更新を監視 ⑤ビルド、テストが
or 定期的に取得 成功なら配布
SCM
⑤ビルド、テストが
成功ならコミットに目印
④テストを実行 デプロイ先
②ビルド
③実行ファイル
を渡す
Unit test
コンパイラ
- 29. 継続的デリバリー2
BTS
失敗したら通知
失敗したらバグチケット作成
メール
CIサーバー
①SCMの更新を監視 ⑤ビルド、テストが
or 定期的に取得 成功なら配布
SCM
⑤ビルド、テストが
成功ならコミットに目印
④テストを実行 デプロイ先
②ビルド
③実行ファイル
を渡す
Unit test
コンパイラ
- 30. 登場人物たちの補足 (1/3)
Git
• 分散バージョン管理システムの1つ
– ローカルでみんなが同じコピーを所有
– ブランチ変更が高速なため多用しやすい
– みんなもいるし何とかなりやすい
• Linus Torvalds が初期開発者
- 31. Gitの使い方
• 使い方の一例
feature, story, fix, topic, ..
機能等の価値ある単位での個別開発
機能開発終了:
機能開発開始:
git checkout develop
git branch story/#番号
git merge --no-ff story/#番号
git checkout story/#番号
develop
主要開発ソース
リリース、デプロイ:
git checkout master
git merge --no-ff develop
master
最新製品と同じソース
- 32. 登場人物たちの補足 (2/3)
Google test
• C++ Unit Test フレームワークの1つ
– http://opencv.jp/googletestdocs/index.html
– EXPECT_EQ(期待値, 実行結果)等で正しいか判
断
• EXPECT_TRUE, EXPECT_FALSE
• EXPECT_EQ, EXPECT_NE, EXPECT_LT, EXPECT_LE,
EXPECT_GT, EXPECT_GE
• EXPECT_STREQ, EXPECT_STRNE,
EXPECT_STRCASEEQ,
EXPECT_STRCASENE
• ASSERT(エラーで停止),
EXPECT(エラってもそのまま実行)
- 33. 登場人物たちの補足 (3/3)
ALMinium
– BTSの1つであるRedmineを利用(プラグイン追加)
して
ALM(Application Lifecycle Management)を実現する
ためのツール
– BTS
• チケット発行、ステータス管理で作業タスクを管理
– 新規
– 進行中
– 解決
– フィードバック
– 終了
– (却下)