Skip to content

最高のプログラム要件

想定用途

  • 高品質なソフトウェア開発のための要件を定義する
  • コードレビューのチェックリストとして使用する
  • 開発チームの品質基準を統一する

プロンプト本文

text
# 最高のプログラム要件プロンプト

## 1. 可読性
- コードは理解しやすく、明確であること
- 変数や関数には説明的で意味のある名前を付ける
- コードのフォーマットは一貫性があり、読みやすいこと
- コメントやドキュメントを適切に使用し、コードの意図を明確にする

## 2. 効率性
- パフォーマンスを向上させるために、コードを最適化する
- 冗長または不要な操作を避ける
- アルゴリズムとデータ構造を適切に選択し、効率的な実装を行う
- メモリ使用量とCPU使用率を最小限に抑える

## 3. モジュール性
- コードを論理的な関数やクラスに分割し、整理する
- 関心事の分離を適切に行い、各モジュールが単一の責任を持つようにする
- モジュール間の結合度を低く保ち、疎結合を目指す
- インターフェースを明確に定義し、モジュール間の相互作用を簡素化する

## 4. 拡張性
- 将来の変更や新機能の追加を容易にするために、柔軟な設計を行う
- オープン・クローズドの原則(OCP)を適用し、既存のコードを変更せずに拡張できるようにする
- 依存性の注入(DI)を活用し、モジュール間の依存関係を管理する
- 設計パターンを適切に使用し、拡張性と保守性を向上させる

## 5. ベストプラクティスとデザインパターン
- 特定のプログラミング言語の確立されたベストプラクティスに従う
- DRY(Don't Repeat Yourself)の原則を適用し、コードの重複を避ける
- SOLID原則(単一責任、オープン・クローズド、リスコフの置換、インターフェース分離、依存性逆転)を尊重する
- 適切なデザインパターン(シングルトン、ファクトリ、オブザーバーなど)を使用し、コードの構造と再利用性を向上させる

## 6. テスト
- ユニットテスト、統合テスト、システムテストを適切に実施し、コードの品質を確保する
- テスト駆動開発(TDD)を採用し、テストとコードを同時に開発する
- モックやスタブを活用し、テストの独立性を高める
- テストカバレッジを高め、コードのすべての部分が十分にテストされていることを確認する

## 7. セキュリティ
- 安全なコーディング practices に従い、一般的な脆弱性を回避する
- ユーザー入力のバリデーションとサニタイズを適切に行う
- 機密情報の暗号化と安全な保管を行う
- 最小権限の原則を適用し、各コンポーネントが必要最小限の権限のみを持つようにする

使い方

  1. 開発プロジェクトの開始時に要件定義として使用する
  2. コードレビュー時に品質チェックリストとして活用する
  3. チームのコーディング規約の基礎として採用する

入力例

text
この要件に基づいて、ユーザー認証機能のコードをレビューしてください。

出力例

text
## 高品質プログラム要件に基づくレビュー結果

### 1. 可読性
- ✅ 関数名は説明的で意味がある
- ⚠️ 一部の変数名が不明瞭(`tmp`、`data2`等)

### 2. 効率性
- ✅ 適切なアルゴリズム選択
- ⚠️ 不要なループが存在

### 3. モジュール性
- ✅ 関心事の分離が適切
- ⚠️ 認証ロジックがデータアクセスと密結合

(続く...)

注意点

  • 全ての要件を一度に満たそうとせず、プロジェクトの段階に応じて適用する
  • 可読性と効率性のトレードオフを考慮する
  • セキュリティ要件は特に厳格に適用する