こんにちは。船井総研デジタルのいっちーです。
システムエンジニア18年目にして、Qiitaデビューすることになりました。どうぞよろしくお願いいたします。
早速ですが、「Spring bootで簡単なWebアプリを作る」ということをテーマに、何回かに分けて記事を書いていきたいと思います。
システムの要件を考える
まずは、「どのようなシステムを作りたいか?」を考える必要があります。今回は、以下のようなシステムを考えてみます。
- Twitterのような、ちょっとしたつぶやきを投稿できる掲示板とする。
- ユーザーは1投稿につき128文字以内で記事を投稿できる。
- ただし、記事の中に、あらかじめ登録されているねぎの名前が入っていなければ、投稿できずエラーメッセージが返ってくる。
- ねぎの名前は別画面から登録できる。
なぜねぎかって?今、ねぎが社内で流行っているのです(笑)。今回は、最低限の画面遷移やCRUDを備えたシステムを作ることを目的としますので、上記以外の要件は考えないものとします。
それでは、上記の要件を元に設計に落としていきます。
どのような機能を「作るか」ということだけではなく、どのような機能を「作らないか」ということも、要件定義においてとても大切な観点だと思います。。。
画面構成を考える
画面はこんな感じで設計していみました。画面の細かい意匠は、必要に応じて作り込んでいくものとします。
メッセージ投稿画面
赤枠の部分はエラーメッセージが出るエリアなので、普段は表示されません。これは次の「ねぎ登録ページ」も同様です。
つぶやきは投稿日時の降順に並ぶようにして、「前のページへ」「次のページへ」ボタンによって、つぶやきを10件ずつ表示できるようにします。
ねぎ登録画面
ねぎの名称を登録するエリアと、登録済みのねぎ名称を編集・削除できるエリアを作ります。こちらも投稿日時の降順に並ぶようにしますが、ページあたりの件数は考慮しないものとします。
以上の要件を踏まえると、画面遷移は下図のように定義できるでしょう。
サーバ構成を考える
このような形でサーバを構成してみます。Docker上に、Webサーバ・APサーバ・DBサーバの3つのコンテナを作ります。
DB構成を考える
今回は必要最低限の仕様に絞って作っていくので、テーブル構成も必要最低限のシンプルなものにします。以下の2テーブルを作ります。
ねぎマスタ
項目物理名 | 項目日本語名 | 型 | 備考 |
---|---|---|---|
id | ID | INT | サロゲートキー |
negi_name | ねぎ名称 | VARCHAR(128) | - |
register_datetime | 登録日時 | DATETIME | - |
メッセージテーブル
項目物理名 | 項目日本語名 | 型 | 備考 |
---|---|---|---|
id | ID | INT | サロゲートキー |
register_name | 投稿者名 | VARCHAR(256) | - |
negi_message | つぶやき | VARCHAR(256) | - |
register_datetime | 投稿日時 | DATETIME | - |
次回の予定
次回は、今回考えた仕様を元にシステムを作り込んでいきます。
- 開発環境を作る
- 実行環境を作る
- 画面遷移を実装する
- ロジックを実装する
それではまた。