実装のための設計
#2025/6/13 #inbox
何を作るか考える
作る対象を決める,要件定義
ユーザストーリーに基づいて考える
誰が,何のために,何をする
役割として目的のために機能がしたい
役割と目的に基づいて,必要な機能を考える
ex
サイトの利用者として、自分の実力を試すために、模擬試験を受けられるようにしたい
サイトの管理者として、問題を追加するために、管理画面から問題を登録できるようにしたい
LLMには壁打ちの相手になってもらう
ユーザストーリを5つ挙げてもらうなど
構造を考える
機能がそれぞれどう実現されるか
モジュールに分解し,それらの連携を考える
機能ブロックで考える
機能ごとに一つのまとまりとして解釈
それらのデータや入出力の流れをまとめる
ex:
Magic Survivalのアーティファクトの出現確率を調査しよう
[動画入力モジュール] → [画像切り出しモジュール(OCR)] → [データ分析モジュール] → [結果表示モジュール]
MVTで考える
Model-View-Template
Model
データの保存を担当
データの性質など
データベースを構築
View
アプリの処理を担当
Modelからデータを取得
Templateに処理結果を渡す
Template
見た目を担当
Webサイトに良い
動きを考える
各機能の中身を詰める
データと関数の設計 > UMLを簡略化した方法
データベース設計
Modelに具体的にどんな情報(カラム)を持たせるか定義
例:Questionテーブルにはquestion_text (文字列), correct_answer (文字列)など
関数設計
各モジュールの主要な関数について、名前、引数、戻り値を考える
例:get_latest_questions(count: int) -> List[Question]
プロンプト例
「ユーザーストーリー『模擬試験を受けられる』を実装するために必要なDjangoのModelを考えて」
Djangoのモデル設計をUMLのクラス図で表現して。書式はMermaid記法でお願い
UMLの基本であるクラス図やシーケンス図を学ぶのはよさそう