0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アライグマ目撃記録アプリ 開発ロードマップ作成

0
Posted at

Java silver取得したけど、では何ができるか考えた時にひとまずアプリを作ってみようと思い、始めました。
Todoアプリや家計簿アプリが定石ですが、同じCRUD機能で他のものが作りたいと思い、CRUD機能をメインとしたアプリを作成することにしました。

まずは、開発ロードマップを作成し全体の流れを把握します。

全体の流れ

①要件定義(何を作るか決める)

・家庭用監視カメラに映ったアライグマの日時、回数を積算するアプリケーションを作る。

機能要件一覧

・目撃記録の一覧表示(read)
・目撃記録の登録(create)
・目撃記録の編集(update)
・目撃記録の削除(delete)

非機能要件

・利用者は1人のみ。
→ログイン機能、ユーザー管理は作らない。
・ローカルのブラウザからアプリを起動する。
→インターネットには公開しない。
・記録件数は年間100件程度を想定。
→ページング機能は作らない想定。
・PCのブラウザのみの対応とする。
・記録はPostgresSQLに保存し、アプリを再起動しても消えないこと。
・バックアップは手動で行う。

登録(入力)のルール

・日付:必須。未来の日時の登録はできないようにする。
・時刻:必須。何時のみ。分はなし。
・回数:必須。

②基本設計

・画面設計、URL、データの骨組みを決める。

画面設計

・一覧画面(登録、編集、削除ボタンあり)
・登録画面
・編集画面
・削除の確認画面

URL設計

操作 メソッド URL 処理後の動き
一覧表示 GET /sightings 一覧画面を表示
登録画面表示 GET /sightings/new 入力画面を表示
登録処理 POST /sightings 一覧画面へリダイレクト
編集画面表示 GET /sightings/{id} 詳細画面を表示
更新処理 POST /sightings/{id} 一覧へリダイレクト
削除処理 POST /sightings/{id}/delete 一覧へリダイレクト

データ設計(テーブル定義)

論理名 物理名 型 制約
ID id 連番 主キー
目撃日 sighted_date DATE NOT NULL
目撃時刻 sighted_time TIME NOT NULL
回数 count INTEGER NOT NULL
メモ memo VARCHAR(255)
作成日時 created_at TIMESTAMP
更新日時 updated_at TIMESTAMP

③詳細設計

クラス 役割
Controller URLと処理の対応づけ。画面の切り替え。
Form 画面の入力値を受け取る。入力チェックの設定。
Service 業務処理
Repository DBへのアクセス
Entity テーブルの1行分を表すクラス

*Formは「信用できない値」、Entityは「検証済みの値」を入れる箱であるため、Controllerで検証し、通ったものだけEntityに詰め替えてDBへ渡すという流れになる。

④環境構築

・JDK:21
・Eclipse:2024-12
・プロジェクトの作成:Springスターター・プロジェクト
・PostgresSQL、pdAdmin4

⑤実装

1機能作るたびにブラウザで確認する。
・一覧表示でDBから画面まで繋がる。
・入力チェックなしで登録(保存)できるようになる。
・バリデーションを追加し、画面にエラーメッセージを表示する。
・登録内容を編集できる。
・削除前の確認をつける?
・一覧表示の並び順、日付の表示形式、画面間のリンクを確認する。

⑥テスト

・正常系、異常系、境界値をテストする。
・JUnitで自動テストを作成する。

⑦振り返り

・つまずいたところ、理解したことをまとめる。
・拡張のアイデアを挙げる。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?