Communitygithub.com

エンジニアリング標準 & システム設計ガイド

クリーンコード、低レベル設計(LLD)、高レベルアーキテクチャ(HLD)、分散システム、API契約、データベースインデックス、キャパシティプランニング、アーキテクチャ決定記録(ADR)に関する包括的なガイドと運用フレームワークです。ソフトウェアアーキテクチャ、バックエンドサービス、データベーススキーマ、API、またはパフォーマンスクリティカルなシステムの設計、評価、リファクタリング、レビュー、スケーリングの際にこのスキルを使用してください。

エンジニアリング標準 & システム設計ガイド とは?

このスキルは、厳格かつ実戦で鍛えられたソフトウェアエンジニアリングの卓越性、システムアーキテクチャ、低レベル設計、分散システムのための運用ガイドです。設計原則、HLD/LLDワークフロー、API・データ永続化の標準、パフォーマンス・信頼性エンジニアリング、ADRの作成手順を体系的にカバーします。全ての設計判断はトレードオフ分析に基づき、具体データと測定によって証拠に基づいた意思決定を行います。Claude Code、Cursor、CodexなどのAIエージェントが、アーキテクチャ設計、コードレビュー、リファクタリング、システムスケーリングのタスクを実行する際に、標準化された厳密なアプローチを提供します。

対応~Claude Code~Codex CLI✓Cursor✓Antigravity
npx skills add https://github.com/axewhyzed/agentic-skills/tree/HEAD/.agents/skills/software-engineering-and-system-design

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ソフトウェアエンジニアリング & システム設計標準

ソフトウェアエンジニアリングの卓越性、システムアーキテクチャ、低レベル設計、分散システムのための、厳格かつ実戦で鍛えられた運用ガイドです。


1. 中核となる動作原則

  1. 原則よりもトレードオフ: 普遍的な「ベストプラクティス」は存在せず、トレードオフのみです。あらゆるアーキテクチャ上の選択は、特定のコスト(レイテンシ、一貫性、運用複雑性、または認知オーバーヘッド)を支払うことで、一連の利益を得ます。常に何を犠牲にしているかを明示してください。
  2. 可逆性を優先: 一方通行の決定(不可逆)よりも、両方向の決定(可逆)を優先します。特定のベンダー、フレームワーク、または分散トポロジーへの早期の結合を避けてください。
  3. アーキテクチャの空理空論を排す: すべての抽象化、インターフェース、レイヤーは、推測による将来の要件ではなく、具体的な既存要件に対してその重みを正当化できなければなりません(YAGNI)。
  4. 証拠に基づく設計: 決定を前提ではなく、具体的なプロファイル、測定値、クエリプラン(EXPLAIN ANALYZE)、およびキャパシティ限界に基づいて行います。
  5. フェイルファスト & 明示的な境界: サブシステム、ドメイン、またはネットワークホップ間の境界には、明示的で強く型付けされた契約、バリデーション、タイムアウト、サーキットブレーカー、および冪等性保証が必須です。

2. 高レベル設計 (HLD) & アーキテクチャワークフロー

システムの設計、アーキテクチャの評価、または主要サブシステムのリファクタリングを依頼された場合は、この6ステップのフレームワークを実行してください:

flowchart TD
    Step1["1. 要件とスコープの明確化<br>(機能、非機能、レイテンシ、可用性、一貫性)"]
    Step2["2. キャパシティとスケールの見積もり<br>(DAU、QPS、スループット、ネットワーク帯域幅、ストレージ、キャッシュRAM)"]
    Step3["3. 高レベルアーキテクチャ (C4 L1/L2)<br>(サービス境界、ストレージ選択、イングレス、キャッシング)"]
    Step4["4. データモデルとインターフェース契約<br>(エンティティ、スキーマ、主キー、インデックス、REST/gRPC API)"]
    Step5["5. 深掘りとボトルネックの特定<br>(レプリケーション、シャーディング、並行性、キャッシングの病理、ホットスポット)"]
    Step6["6. レジリエンス & SRE戦略<br>(SLO、サーキットブレーカー、ジッター付きリトライ、冪等性、DLQ)"]

    Step1 --> Step2 --> Step3 --> Step4 --> Step5 --> Step6

詳細HLDリファレンス

分散システムの定理(CAP、PACELC)、一貫性階層、コンセンサス(Raft/Paxos)、シャーディング、レプリケーション、Sagaパターン、トランザクショナルアウトボックスパターンについては、以下を参照してください: 👉 高レベルシステム設計 & 分散システムリファレンス


3. 低レベル設計 (LLD) & クリーンコード標準

コードを記述、レビュー、またはリファクタリングする際は、以下の標準に従ってください:

3.1 SOLIDのルール

  • SRP(単一責任): モジュールは単一のアクター/ステークホルダーのみに応答します。永続化、HTTPシリアライゼーション、ビジネスロジックを別々の関心事に抽出してください。
  • OCP(オープン/クローズ): 広範な switch / if-else 型ディスパッチ文よりも、ポリモーフィズム、Strategy、またはVisitorパターンを優先します。
  • LSP(リスコフ置換): サブタイプは親のすべての振る舞い不変条件を満たさなければなりません。NotImplementedException をスローするようオーバーライドすることはLSP違反です。
  • ISP(インターフェース分離): 広範な「神インターフェース」よりも、小さくクライアント固有のロールインターフェースを優先します。
  • DIP(依存性逆転): コアビジネスルールは抽象化(ポート)にのみ依存し、外部のデータベースライブラリ、UIフレームワーク、ネットワークドライバに直接依存してはなりません。

3.2 モジュールのカプセル化(Parnas & Connascence)

  • モジュールの秘密: モジュールはその主要な秘密(内部アルゴリズム/データ構造)と副次的な秘密(外部環境/ファイル形式)を完全に隠蔽しなければなりません。
  • Connascence: 動的な結合(実行順序、タイミング、値制約)を最小限に抑え、静的な名前/型の一致への結合度を低減します。

詳細LLDリファレンス

GoFデザインパターンフィールドガイド、ドメイン駆動設計(DDD)の戦術的ビルディングブロック(エンティティ、値オブジェクト、集約、ドメインイベント)、およびリファクタリング手法については、以下を参照してください: 👉 低レベル設計 & クリーンコードリファレンス


4. API & データ永続化標準

  1. RESTful API:
    • HTTPメソッドのセマンティクスに厳密に従う(GET は安全かつ冪等、PUT/DELETE は冪等、POST は作成)。
    • 構造化エラーレスポンスには RFC 7807 (Problem Details) を使用する。
    • 大量コレクションには、オフセット/リミットページネーションではなく Keyset/Cursorページネーション を使用する。
  2. データベースインデックス (E-R-Sルール):
    • 複合インデックスのカラム順序: [等価条件カラム] → [範囲条件カラム] → [ソートカラム]。
    • カバリングインデックス(インデックスオンリースキャン)と部分インデックスを使用して、ホットクエリのディスクページルックアップを排除する。
    • クエリは常に EXPLAIN QUERY PLAN または EXPLAIN ANALYZE で検証する。
  3. 非同期メッセージング & イベント:
    • 最低1回のブローカ配信とコンシューマの冪等性(ストレージ内で重複排除される一意のメッセージID)を組み合わせて、実質一度の処理を保証する。
    • 処理不能なポイズンピルはデッドレターキュー(DLQ)にルーティングし、パーティションの停止を防ぐ。

詳細API & データリファレンス

👉 API設計 & データ永続化標準


5. パフォーマンス、キャパシティ & 信頼性エンジニアリング

  1. 簡易見積もり:
    • $1 ext{ 日} approx 10^5 ext{ 秒}$ ($86,400 ext{ 秒}$)。$1 ext{M リクエスト/日} approx 12 ext{ RPS}$。
    • ピークQPS = 平均QPS $ imes$ $3$。
    • キャッシュRAM = $20% imes ( ext{1日の読み取り量} imes ext{アイテムサイズ})$(パレート80/20ルール)。
    • リトルの法則: $L = elda W$(インフライト並行性 = 到着率 $ imes$ レイテンシ)。
  2. キャッシングの規律:
    • 通常の運用時間中に期限切れとなる、測定されていない任意のインメモリTTLを決して設定しない。
    • データバージョン/フィンガープリントまたはセッションタイムスタンプに基づいて無効化する。
    • キャッシュスタンピード(ミューテックス/分散ロックの使用)、キャッシュペネトレーション(ブルームフィルタ)、キャッシュアバランシェ(TTLジッター)から防御する。
  3. サイト信頼性エンジニアリング (SRE):
    • 明示的なSLOとレイテンシ予算($p50$、$p95$、$p99$)を適用する。
    • サーキットブレーカー、バルクヘッド、フルジッター付き指数バックオフを実装する。

詳細信頼性 & パフォーマンスリファレンス

👉 信頼性、パフォーマンス & キャパシティエンジニアリングリファレンス


6. アーキテクチャ決定記録 (ADR)

重要な技術的選択は、標準のADR形式を使用して文書化します:

  • コンテキスト & ドライバー: 問題、運用上の制約、レイテンシ/スケール目標。
  • 検討したオプション: 構造的な代替案とそのトレードオフ。
  • 決定 & 結果: 決定ドライバーに結び付ける具体的な正当性。
  • 結果: 明示的な肯定的利益と、受け入れた否定的コストの両方。

詳細ADRリファレンス & テンプレート

👉 アーキテクチャ決定記録 & C4モデルリファレンス

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

axewhyzed/agentic-skills

>- Comprehensive guide and operational framework for native Android and mobile UI/UX engineering. Use when designing, auditing, building, or refactoring Android applications (Jetpack Compose, Material 3), mobile ergonomics, offline-first outbox patterns, stale-while-revalidate caching, smart one-tap intent actions, storage framework integrations, tactile haptics, shared element transitions, predictive back gestures, and seamless mobile authentication.

axewhyzed/agentic-skills

>- Operational framework for high-density, zero-waste modern web applications, tool dashboards, and productive workspaces. Use when designing, building, or refactoring web interfaces (React, TypeScript), two-pane master-detail layouts, unified compose hubs, keyboard-driven navigation, command palettes (cmdk), live telemetry indicators, and granular authentication ergonomics.

axewhyzed/agentic-skills

>- Comprehensive guide and operational framework for engineering world-class, human-grade GitHub READMEs and technical repository documentation. Use whenever creating, auditing, or refactoring a README for open-source tools, self-hosted services, developer utilities, or client-server applications. Enforces clear documentation guidelines, the 30-second rule, dual-audience narrative balance, copy-pasteable quickstarts, and high-signal visual showcases.

axewhyzed/agentic-skills

>- Comprehensive operational framework and design intelligence for modern UI/UX design, design systems, visual hierarchy, design tokens, component architecture, high-density financial terminal aesthetics, accessibility (WCAG 2.2 AAA/AA), mobile ergonomics, data visualization, and complete interface revamps. Use this skill whenever auditing, designing, refactoring, building, or restyling user interfaces, dashboards, design systems, layouts, forms, data tables, animations, and micro-interactions.

関連スキル