🔰

LaravelでTodoリストを実装してみよう!~設計編~

2024/04/02に公開

はじめに

PHPとLaravelの基本的な知識を学んだので、アウトプットとして手始めにTodoアプリを作ってみようと思います!

ただ最近、羽生章洋 著「はじめよう!要件定義 ビギナーからベテランまで」という本を読んで、少し設計周りの思考プロセスを学んだので、それについても実践したいので、今回は設計編です。

全体的なアプリのイメージ

今回作成するTodoアプリで実現したいことは下記の通り。

最低限のCRUD処理に加えて、ログイン機能や管理者機能を実装していく予定です。

実現したい機能
  • ユーザー側
    • ユーザ情報登録
    • ログイン
    • Todoの登録
    • Todoの閲覧
    • Todoの編集
    • Todoの削除
    • 完了したTodoの復元
    • ユーザー情報の確認
    • ユーザーの退会
  • 管理者側
    • ログイン
    • ユーザー一覧の閲覧
    • ユーザー情報の削除
    • ログの監視

画面遷移図を作ってみよう!

前節で、作りたいアプリのなんとなくのイメージを描いたので、今度は具体的な画面遷移のイメージを図にして具体化していきたいと思います。

作った画面遷移図が以下の通り。

IFDAM図を作ってみよう!

次に、「はじめに」で紹介した書籍にて、作図が推奨されているIFDAM図を作っていきます。

IFDAM図とは、画面遷移図の各画面ごとに「表示・入力・操作」の項目に機能を整理し、さらに画面遷移中に起こりうる処理等とともに図示した図で、書籍オリジナルの作図方法だそうです。

例えば、Todo閲覧画面からTodo追加画面へのIFDAM図は下図のようになります。

この図の要領ですべての画面遷移に対して、同様の図を作成していきます。

他の完成した図については、画像枚数が膨大になるので、見たい方はこちらからどうぞ。
https://drive.google.com/drive/folders/1M_OvWz054XUYMMzJCFpnXBeCqeaJr7v3?usp=sharing

データベース設計をしよう!

前節までで、実装したい画面や機能の中身を具体化したので、最後にデータベースの設計をしていきます。

サイトなどを参考にER図を書いてみたのですが、データベースの構造がシンプルすぎてこれいいだろうかと不安になります(;´∀`)

おわりに

一通り設計できたと思うので、今回はここまで!

次回から実際にコーディングしてきたいと思います!

設計(のまねごと)をした感想としては、設計を通じて全体像を把握しておくことは本当に大事だなと思いました。

設計作業をする中で、「あ、この画面ないと要件満たせないぞ!」とか「そういえば、ここにこのボタンいらないよね」といった気づきが多く、何度も工程を行ったり来たりしていました!

今回のようなごくごく単純なアプリですら、抜け漏れやダブリが頻発したので、もっと複雑なアプリの設計作業は大変だなぁと実感。。。

本当この工程をきっちりできる現場のエンジニア様を尊敬します!

コーディング頑張っていくぞ!(^O^)/

Discussion