アジャイル検定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)
- チームのスキル
- スプリント計画
- 自己組織化されたチーム:メンバーの行動規範(コミュニケーション、自立と協調)
- レトロスペクティブ(振り返り)
常時結合
CI/CD
- アプリケーション開発のステージに自動化を取り入れて、顧客にアプリケーションを提供する頻度を高める手法
継続的インテグレーション(CI)
- ビルドと単体テストおよび統合テストを自動化
- 単体テストと統合テストを行い、変更によってアプリケーションが破壊されないことを確認する
- CIを利用するとコンフリクトやバグをすばやく容易に、高頻度で修復できる
継続的デリバリー(CD)
- 検証されたコードのリポジトリへのリリースを自動化
- 開発者によるアプリケーションへの変更をリポジトリにアップロードする
- 本番環境にデプロイできるコードベースを常に保持しておくことを目的とする
- プロセスの終了時には、運用チームはアプリケーションを本番環境にすばやく簡単にデプロイできる
継続的デプロイメント(CD)
- アプリケーションの番環境へのリリースを自動化
- 開発者による変更をリポジトリから本番環境に自動的にリリースし、顧客が使用できるようにする
- ユーザーからのフィードバックを継続的に受け取って反映することが簡単になる