OPS05-BP07 コード品質の向上のためにプラクティスを実装する
コード品質の向上のためにプラクティスを実装し、欠陥を最小限に抑えます。例としては、テスト駆動型デプロイ、コードレビュー、標準の導入、ペアプログラミングなどがあります。このようなプラクティスを継続的インテグレーションと継続的デリバリープロセスに組み込みます。
期待される成果:
-
組織はコードレビューやペアプログラミングなどのベストプラクティスを使用し、コード品質が向上します。
-
デベロッパーとオペレーション担当者は、ソフトウェア開発ライフサイクルの一環として、コード品質のベストプラクティスを採用しています。
一般的なアンチパターン:
-
コードレビューを行わずに、アプリケーションの主幹にコードをコミットしています。変更が自動的に本番環境にデプロイされ、アプリケーションの停止が発生します。
-
新しいアプリケーションの開発が、ユニットテスト、エンドツーエンドテスト、または統合テストなしで行われています。デプロイする前にアプリケーションをテストする方法がありません。
-
エラーの対応には、本番環境でチームが手動の変更を加えています。テストやコードレビューを行わなわずに変更を加えており、継続的インテグレーションと継続的デリバリープロセスを介して変更がキャプチャされたりログに記録されたりしていません。
このベストプラクティスを活用するメリット:
-
コードの品質を向上させるためのプラクティスを採用することは、本稼働環境に発生する問題を最小限に抑えることに役立ちます。
-
ペアプログラミングやコードレビューなどのベストプラクティスを使用すると、コード品質が向上します。
このベストプラクティスを確立しない場合のリスクレベル: 中
実装のガイダンス
プラクティスを実装して、コード品質を向上し、デプロイする前にエラーを最低限に抑えます。テスト駆動開発、コードレビュー、ペアプログラミングなどのプラクティスを採用して、開発の質を向上します。
お客様事例
AnyCompany Retail では、コード品質の向上のためにいくつかのプラクティスを採用しており、アプリケーションのコーディング基準として、テスト駆動開発を採用しています。新しい機能には、スプリント中にデベロッパーが協力してペアプログラミングを行うことを予定しているものもあります。すべてのプルリクエストは、インテグレーションとデプロイ前に、シニアデベロッパーによるコードレビューを受けます。
実装手順
-
テスト駆動型開発、コードレビュー、ペアプログラミングなどのコード品質プラクティスを、継続的インテグレーションと継続的デリバリープロセスに採用します。このような手法を使用して、ソフトウェアの品質を向上させます。
-
Amazon CodeGuru Reviewer は、機械学習を利用した Java と Python コードのプログラミングについてのレコメンデーションを提供します。
-
AWS Cloud9 を使用して共有開発環境を作成すると、コードの共同開発ができます。
-
実装計画に必要な工数レベル: 中。ベストプラクティスを実施する方法は数多くありますが、組織全体での導入が難しい場合があります。
リソース
関連するベストプラクティス:
-
OPS05-BP06 設計標準を共有する - コード品質プラクティスの一環として、設計標準を共有できます。
関連するドキュメント:
-
Agile Software Guide
(アジャイルソフトウェアガイド) -
My CI/CD pipeline is my release captain (CI/CD パイプラインが自分のリリースキャプテン)
-
Automate code reviews with Amazon CodeGuru Reviewer
(Amazon CodeGuru Reviewer を使用したコードレビューの自動化) -
Adopt a test-driven development approach (テスト駆動の開発アプローチを導入する)
-
How DevFactory builds better applications with Amazon CodeGuru
(DevFactory を使用してアプリケーション構築を向上する方法) -
On Pair Programming
(ペアプログラミングについて) -
RENGA Inc. automates code reviews with Amazon CodeGuru
(RENGA Inc. が Amazon CodeGuru を使用してコードレビューを自動化) -
The Art of Agile Development: Test-Driven Development
(アジャイル開発の技術: テスト駆動開発) -
Why code reviews matter (and actually save time!)
(コードレビューが重要である理由 (そして実際に時間の節約になる理由))
関連動画:
-
AWS re:Invent 2020: Continuous improvement of code quality with Amazon CodeGuru
(AWS re:Invent 2020: Amazon CodeGuru を使用したコード品質の継続的改善) -
AWS Summit ANZ 2021 - Driving a test-first strategy with CDK and test driven development
(Summit ANZ 2021 - CDK とテスト駆動開発でテストファースト戦略を獲得する)
関連サービス: