ウェブエンジニア問題集

システム設計をちゃんと理解する

要件定義から詳細設計書・DB設計・API設計・設計レビューまで、Webアプリ開発で必要な設計の考え方と実務パターンを整理する入門書です。「なんとなく動くコード」から「設計されたコード」へ進むための土台を作ります。

目次(全18章)

  1. 1
    なぜ設計が必要なのか — コードを書く前に考えること

    設計なしで開発を始めるとどうなるか、設計の目的と効果を具体例で整理します。

  2. 2
    要件定義の進め方 — 機能要件と非機能要件を整理する

    機能要件と非機能要件の違い、要件のまとめ方、よくある抜け漏れパターンを解説します。

  3. 3
    基本設計と詳細設計 — 2つの設計フェーズの違いと役割

    基本設計と詳細設計の違い、それぞれで決めること・成果物の粒度を整理します。

  4. 4
    詳細設計書の書き方 — 何をどこまで書くべきか

    詳細設計書に書くべき項目、粒度の判断基準、テンプレートと実例を示します。

  5. 5
    ER図とテーブル設計 — リレーションの考え方と正規化

    ER図の読み書き、テーブル設計の進め方、正規化と非正規化の判断基準を解説します。

  6. 6
    API設計の基本 — RESTfulなエンドポイントの設計ルール

    RESTfulなURL・HTTPメソッドの使い分け、レスポンス設計、ステータスコードの選び方を整理します。

  7. 7
    URL設計とルーティング — リソース指向のパス設計

    リソース指向のパス設計、ネストの深さ、クエリパラメータの使い分けを解説します。

  8. 8
    認証と認可の設計 — セッション・JWT・OAuth

    認証と認可の違い、セッション・JWT・OAuthの仕組みと選定基準を整理します。

  9. 9
    状態管理の設計 — サーバーとクライアントで何を持つか

    サーバーサイドとクライアントサイドの状態の切り分け、キャッシュ戦略を解説します。

  10. 10
    エラー設計 — エラーコード体系・ユーザー通知・ログ戦略

    エラーコード体系の設計、ユーザー向けメッセージとログの分離、非同期処理のエラー戦略を整理します。

  11. 11
    バリデーション設計 — フロント・バックエンド・DBの3層で守る

    フロントエンド・バックエンド・DBの3層バリデーション、それぞれの役割と責務を解説します。

  12. 12
    伝わるコードとドキュメント — 命名・コメント・文章の技術

    命名規則、コメントの要否、読者を意識したドキュメントの書き方、サンプルコードの見せ方を整理します。

  13. 13
    ディレクトリ構成 — 規模と責務で決めるファイル配置

    機能別・レイヤー別のディレクトリ構成パターン、規模に応じた使い分けを解説します。

  14. 14
    頻出デザインパターン — Repository・Service・Factory

    Repository・Service・Factoryなど、実務で頻出するデザインパターンを具体例で紹介します。

  15. 15
    SOLID原則 — 変更に強いコードを書くための5つの指針

    SOLID原則の5つの指針を、実務のコード例を使って解説します。

  16. 16
    シーケンス図の書き方 — 処理の流れを可視化する

    シーケンス図の基本記法、フローチャートとスイムレーン図の使い分け、Mermaidでの書き方を解説します。

  17. 17
    画面遷移図と画面設計 — UIとロジックの境界を決める

    画面遷移図の書き方、画面単位の責務設計、UIとビジネスロジックの境界を整理します。

  18. 18
    設計レビューの観点 — 何をチェックし、どう指摘するか

    設計レビューで見るべき観点、指摘の伝え方、レビューを受ける側の心構えを解説します。