アジャイル検定Lv.2 勉強メモ - 構成管理
アジャイル検定Lv.2 出題範囲
- モデリング
- オブジェクト指向設計:継承、インターフェース、ポリモーフィズム、疎結合、Dependency Injection
- コーディング
- コーディングルール:ツールによる確認(checkstyle)
- ペアプログラミング
- リーダビリティ(コードの読みやすさ)
- テストコード(Mock、Testing frameworkなど)
- 静的解析ツール(SonarQube)
- ドキュメンテーション
- 構成管理
- チーム開発:SCM(ソースの変更管理システム)、分散型(git)、集中型(Subversion、CVS 等)
- ブランチ戦略:ブランチとマージ、レビュー・受入(プルリクエスト)
- コンテナ技術
- テスト
- TDD:Junit(モックを使ったテスト、テスト結果レポートの見方、網羅率C0,C1,C2) 品質管理のためのテスト(パフォーマンステスト、結合テスト、総合テスト・システムテスト) ユーザー受入テスト、ブラックボックステスト、ホワイトボックステスト
- 常時結合
- 自動化の導入:何時動かして結果から何を読み取るか、自動化の導入効果、何を自動化するか(ビルド⇒テスト⇒デプロイ等)
- 何のため、誰のために、常時結合(CI)をおこなうのか
- デザインパターン
- リファクタリング
- マーティン・ファウラー「リファクタリング」(コードの不吉な匂い等)
- オブジェクト指向設計原則(Principles Of Object Oriented Design)
- チームのスキル
- スプリント計画
- 自己組織化されたチーム:メンバーの行動規範(コミュニケーション、自立と協調)
- レトロスペクティブ(振り返り)
構成管理
ソフトウェア構成管理(SCM)
- ソースコードやドキュメントの変更履歴を管理するもの
- バージョン管理システムを意味する場合もある
- 集中型バージョン管理システム
- Subversion(SVN)
- リモートリポジトリのみ
- ファイル別に変更履歴を管理する
- Subversion(SVN)
- 分散型バージョン管理システム
ブランチ戦略
- ブランチを利用したバージョン管理ワークフロー
- git-flow
- github-flow
- 小規模な構成
- 1日に複数回デプロイを行うようなWebアプリケーションの開発に適している
- ブランチ一覧
- master:開発済みのソースコードを管理
- feature:開発作業用
git-flow | github-flow |
---|---|
コンテナ技術
- コンテナとは
- ホストOS上の独立したアプリケーション実行環境
- 仮想マシンとコンテナ
- 仮想マシン
- 仮想的なハードウェア環境
- OSやアプリケーションをインストールし、独立した実行環境を構築する
- e.g. VMWare, VirtualBox
- コンテナ
- OSリソースを隔離・制限したプロセス
- OSリソースが隔離・制限された環境でアプリケーションを実行し、独立した実行環境を構築する
- e.g. Docker
- 仮想マシン
- メリット
- コードベースでインフラ定義できる
- どの環境でも同じ様に動く
- インフラの構成管理やデプロイが行いやすい