5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Spring bootで簡単なWebアプリを作ってみる(序)

Last updated at Posted at 2023-03-16

こんにちは。船井総研デジタルのいっちーです。
システムエンジニア18年目にして、Qiitaデビューすることになりました。どうぞよろしくお願いいたします。

早速ですが、「Spring bootで簡単なWebアプリを作る」ということをテーマに、何回かに分けて記事を書いていきたいと思います。

システムの要件を考える

まずは、「どのようなシステムを作りたいか?」を考える必要があります。今回は、以下のようなシステムを考えてみます。

  • Twitterのような、ちょっとしたつぶやきを投稿できる掲示板とする。
  • ユーザーは1投稿につき128文字以内で記事を投稿できる。
  • ただし、記事の中に、あらかじめ登録されているねぎの名前が入っていなければ、投稿できずエラーメッセージが返ってくる。
  • ねぎの名前は別画面から登録できる。

なぜねぎかって?今、ねぎが社内で流行っているのです(笑)。今回は、最低限の画面遷移やCRUDを備えたシステムを作ることを目的としますので、上記以外の要件は考えないものとします。

それでは、上記の要件を元に設計に落としていきます。

どのような機能を「作るか」ということだけではなく、どのような機能を「作らないか」ということも、要件定義においてとても大切な観点だと思います。。。

画面構成を考える

画面はこんな感じで設計していみました。画面の細かい意匠は、必要に応じて作り込んでいくものとします。

メッセージ投稿画面

画面構成その1.png

赤枠の部分はエラーメッセージが出るエリアなので、普段は表示されません。これは次の「ねぎ登録ページ」も同様です。

つぶやきは投稿日時の降順に並ぶようにして、「前のページへ」「次のページへ」ボタンによって、つぶやきを10件ずつ表示できるようにします。

ねぎ登録画面

画面構成その2.png

ねぎの名称を登録するエリアと、登録済みのねぎ名称を編集・削除できるエリアを作ります。こちらも投稿日時の降順に並ぶようにしますが、ページあたりの件数は考慮しないものとします。

以上の要件を踏まえると、画面遷移は下図のように定義できるでしょう。

image.png

サーバ構成を考える

このような形でサーバを構成してみます。Docker上に、Webサーバ・APサーバ・DBサーバの3つのコンテナを作ります。

image.png

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 -

次回の予定

次回は、今回考えた仕様を元にシステムを作り込んでいきます。

  • 開発環境を作る
  • 実行環境を作る
  • 画面遷移を実装する
  • ロジックを実装する

それではまた。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?