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?

📘 Vol.12.0:掲示板アプリ実装編 v1(学習の成果としての完成形)

Posted at

はじめに

本シリーズもいよいよ実装編に突入です!

これまで Vol.11.x シリーズでは、アプリケーションのアーキテクチャや設計方針について「理想的な構成」を学習・整理してきましたが、今回は実際に自分で 掲示板アプリを実装してみた成果物(v1) をご紹介します。

まずは現時点で完成している掲示板アプリ(v1)の紹介と振り返りを通じて、今後の改善につなげていきたいと思います。


1. 掲示板アプリ(v1)の位置づけ

📍 GitHubリポジトリ:
https://github.com/juehara-crypto/Portfolio_Bulletinboard

📌 アプリの主な機能:

  • ユーザー管理(登録/編集/削除)

  • 掲示板作成・閲覧

  • スレッド作成・閲覧

  • 投稿機能(スレッドごとの投稿)

  • ログイン/ログアウト

  • 管理者と一般ユーザーの権限分離

  • 簡易的なセッション管理

💡 使用技術スタック:

分類 技術
フレームワーク Struts2
ORM JDBC(※MyBatis導入予定)
テンプレート JSP
DB MySQL
その他 JSTL, Bootstrap, Log4j など

2. 構成・設計に関する自己評価

今回の掲示板アプリ(v1)は、「とにかく最後まで作り切る」ことを目的に構築しました。

✅ 良かった点

  • 必要な機能は一通り動作し、ログインから投稿まで一貫したユーザー体験が可能。

  • JSPをベースにした画面開発、Struts2のActionクラスによる画面制御に慣れることができた。

  • DAOパターンを導入し、SQLはロジックから分離。構造化の第一歩を踏み出せた。

  • 実装を通して「理想と現実のギャップ」に気づける多くの学びが得られた。

⚠️ 課題として感じた点

  • 「1画面1アクション」原則が徹底されていない箇所が存在
    例:ユーザーポータル画面で、スレッド一覧の取得と投稿件数の取得を同一のアクションクラス(GetThreadByIdAction)で処理
    → 表示に必要な複数のデータを1つのアクションに詰め込んでいるため、責務が曖昧に。

  • 一部の処理(例:スレッド情報や投稿件数を取得する処理)については、ThreadService のように DAO呼び出しをService層に切り出す構成を採用している。
    → ただし、全体としてはまだActionクラスにロジックが残る箇所も多く、責務の分離や構造の統一に課題が残る。

  • DTO未導入・処理の役割分離が不完全
    → Viewへのデータ受け渡しや内部ロジックの責務が整理されておらず、保守性・拡張性の面で今後の課題に。


3. 今後の展開:実装 v2 に向けて

Vol.11シリーズで学んだ理想的な設計方針(MVC構成、責務分離、拡張性など)を反映し、今後は v2(改良版)の構築 に取り組んでいきます。

🔧 改善予定リスト

  • DTO・Service層の導入によるロジックの分離と整理

  • JSPの共通化/コンポーネント化(例:ヘッダー、フッター、ナビメニューなど)

  • MyBatis導入によるSQL処理の効率化と保守性向上

  • ログ出力や例外ハンドリングの共通化

  • 「1画面1アクション」原則の徹底適用

  • 各画面の表示・入力・処理に対応するアクションを明確に分離

  • 単体テストや結合テストを意識した構造への見直し


4. まとめ

今回紹介した掲示板アプリ(v1)は、
これまでの学習を通じて培った知識を基に、設計から実装・調整までを自ら行った「学習の集大成」 です。

設計や実装の面での反省点、改善点は多く見つかりましたが、「まずは動くものを完成させた」という達成感 は何よりも大きな財産です。

次回からは Vol.11 で整理してきた設計理論をもとに、いよいよ v2 開発に着手。
「理想」を「現実」に落とし込む開発サイクル を体験していきます!

※この内容は、目次内「5. 機能詳細仕様(カテゴリ別)」「6. ロール・権限仕様」「7. データモデル」など、設計面での整理・改善点との接続を意識した「設計→実装→改善」サイクルの一部として機能します。実装編v2以降でそれぞれのカテゴリを再評価・修正していく際の導線となります。


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?