0
1

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.1: プログラミングとの再会 – 「画面ありき」で変わった学び方

Last updated at Posted at 2025-05-18

■ 挫折の記憶:Javaに挑んだ2010年

実は、今回が初めてのプログラミング学習というわけではありません。
2010年頃、一度 Javaの学習に挑戦したことがありました。

しかしそのときは…

  • Javaの文法やクラス構造を理解するのに半年〜1年
  • そのあとに Servlet、JSP、DB接続の知識 も必要
  • ようやくWEBアプリの形が見えてきた頃には、すでに心が折れていた

「こんなに遠いの?Webアプリ作るまでに何年かかるの…?」

そう思ってしまい、最終的には 学習コストの低いインフラ系の勉強 に専念する道を選びました。


■ プログラミングは「苦手なもの」になった

その後、業務の中で必要に迫られて:

  • C++ に触れる機会があった(難解すぎて撃沈)
  • C# を使ったこともあった(しっくりこない)
  • VBA ですら「うわ、これ自分には無理かも…」

…というように、プログラミングに対する印象は年々「苦手意識」へと変化。
「自分はインフラ寄りの人間だから、コードは読めなくてもしょうがない」
と、あきらめ気味になっていました。


■ アプローチを変えてみる

そんな中で、「もう一度ちゃんとプログラミングをやってみよう」と思った今回は、学び方そのものを変えることにしました。

  • 「前は文法や理論から入ったからダメだったのでは?」
  • 「もっと目的ベースにしてみよう!」

■ 新しいアプローチ:「画面ありき」の開発

今回の学習では、まずアプリの全体像から設計しました。

具体的には:

  • 開発するアプリの機能を洗い出す
  • 全体のフロー図を描く
  • フローに沿って必要な画面をリストアップ
  • 各画面に必要なインプット/アウトプットを考える
  • 処理の流れと画面遷移を明確にしてから、実装に着手

つまり、
「画面ありき」の開発方針 に切り替えたわけです。


■ このやり方、実はちゃんとした名前があるらしい

詳しい名称は忘れてしまいましたが、この「画面を起点にしてシステム設計を進める手法」は、ちゃんとした開発手法として存在するそうです。
ちまたでは**「画面駆動設計」**と言われるそうですが、正式では無いようです。

  • 画面 = ユースケース
  • 画面 = ゴール単位のまとまり
  • 画面 = 開発単位

という考え方で、**「初心者でも作るべきものがハッキリしていて迷わない」**のが魅力。


■ 実際、すごくやりやすい!

この方法でStruts2を使った掲示板アプリを開発してみると、驚くほどスムーズに進行。

  • 何を作ればいいのか明確
  • MVCの構造に自然と馴染める
  • 目に見える成果(画面)のおかげでモチベーションが下がらない

「あれ?プログラミングって、こんなに分かりやすくできるんだ」

という感覚がありました。


■ まとめ:「やり方次第で、プログラミングは味方になる」

昔の自分は**「プログラミングが苦手」**と思い込んでいました。
でも今思えば、それは 「目的」や「手順」が見えていなかったから

  • いきなり文法や理論から入るより
  • まず「何を作りたいか」をハッキリさせて
  • そこに向かって必要な技術を“逆算的に”学んでいく

そういうやり方が、自分にはとても合っていたようです。


📌 次回予告:


🧭 Vol.1〜7 関連リンク

タイトル 主な内容
Vol.2 画面駆動設計に基づく設計書の具体例:画面フローからUI設計・処理定義まで 実際に描いた画面遷移図・UI設計・処理定義書を公開し、画面中心の設計手法を解説。
Vol.3 詳細設計編:ER図で見るデータ構造と実装の土台 実装前提で設計された ER図(Entity Relationship 図) をもとに、データ構造と整合性を設計。
Vol.4 Struts2とMavenの基礎と設定ファイルの役割 Struts2の構成とMavenでの管理、web.xmlpom.xml の役割を丁寧に解説。
Vol.5 環境構築編:掲示板アプリケーションの実行準備 TomcatとEclipseでの動作環境構築。
Vol.6 BaseActionクラスの詳細解説【Struts2の要】 すべてのアクションに共通する基底クラス BaseAction を定義し、ログ出力や共通処理を集約。
Vol.6.1 BaseAction の活用例【共通基底クラスでセッション管理を簡素化】 BaseAction を継承する具体的なアクション例を紹介し、セッションやログ処理の統合例を実践。
Vol.7 Struts2 における MVC モデルの全体像 Model-View-Controller の各要素が Struts2 でどう分担されるかを体系的に解説。
Vol.7.1 Struts2 における Model(モデル)について JavaBeansベースのModelクラス(User, Thread, Post など)設計とその役割を明確化。
Vol.7.2 Struts2 における Controller(コントローラ)の責務 Actionクラスを軸に、入力処理・分岐処理・画面遷移の中核を担うControllerの実装指針を提示。
Vol.7.3 Struts2 における struts.xml の書き方と役割 URLマッピング、結果遷移、アクション定義の方法を丁寧に記述。初心者の詰まりやすいポイントを回避。
Vol.7.4 struts.xmlの高度な設定と実践活用(Struts2) namespaceの活用や画面単位での分離設計、開発時の保守性向上テクニックを紹介。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?