アジャイル検定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)
- チームのスキル
- スプリント計画
- 自己組織化されたチーム:メンバーの行動規範(コミュニケーション、自立と協調)
- レトロスペクティブ(振り返り)
コーディング
コーディングルール(コーディング規約)
- プログラムの書き方に関するガイドラインを定めたもの
- 可読性を高めることができる
- 可読性を高めることで 保守性・品質 の向上が期待できる
静的解析ツール
- 機械的にコーディングルールなどをチェックすることが出来る
- Linter
- Java: checkstyle, C++: cpplint ...
- SonorQube
- 2人で1つのコンピュータを使って共同作業を行う
- 品質向上・スキルアップ・素早い情報伝達などが期待できる
リーダビリティ(可読性)
- 読みにくいコードを書くと?
- 理解しづらい → 変更に時間がかかる → 変更に柔軟に対応できない
- 読みやすいコード書くには?
- オブジェクト指向設計、コーディングルールなど
テストコード