Spring Framework習得へのロードマップ

こんにちはサービス企画チームのnemodです。
この記事はNHN テコラス Advent Calendar 2018の2日目の記事です。

今回は私が新卒として入社して、Spring Framework(以下Spring)を身につけていった方法を紹介します。

 

Springは5つのステップで習得しました。

  • ステップ1 Javaを身につける
  • ステップ2 JavaでWebアプリケーションを作る
  • ステップ3 Springの基礎を身につける
  • ステップ4 Spring応用
  • ステップ5 SpringでWebアプリケーションを作る

 

前提は以下の通りです。

  • HTMLとCSSは習得済み
  • SQLも習得済み
  • Eclipseを使用する

今回はJava関連に絞って説明します。そのためこちらに関しては詳しく触れていきません。ですが最後に私の習得方法を簡単に書いておきました。前提条件を満たしていない場合はそちらを参照してください。

 

私の背景も紹介しておきます。

  • いわゆる文系学部出身
  • プログラミングはほぼ独学
  • 大学時代はPHPでWebアプリケーションを作ったり、C#とUnityでVRをいじっていた

それでは本題に入ります。

 

ステップ1 Javaを身につける

まずはJavaを身につけていきます。
以下の書籍を利用しました。

  1. スッキリわかるJava入門
  2. スッキリわかるJava入門 実践編
  3. スッキリわかるサーブレット&JSP入門

 

1. スッキリわかるJava入門

変数の宣言からオブジェクト指向まで非常に細かく丁寧に説明してくれる本です。基礎的であるがゆえに他のプログラム経験があれば大半の説明を飛ばすことができます。もし余裕があれば、この段階からEclipseを使って操作に慣れていくと良いかもしれません。

 

2. スッキリわかるJava入門 実践編

リストやファイル操作やDBなど、プログラムを書く上で使用機会が多い機能が説明してあります。こちらは章ごとにテーマが決まっているので、好きな順番でやっても大丈夫です。引き続きJavaの操作に慣れていきましょう。

 

3. スッキリわかるサーブレット&JSP入門

Javaを使ってWebアプリケーションを作成する方法が説明されています。この本で学んだ方法をそのまま使って開発することはまずあり得ませんが、後で学ぶSpringの大元はこの技術となっています。Springの理解をスムーズに進めるための知識を身につけるつもりでやると良いです。僕自身もなんだかんだでやっておいてよかったと実感しています。

 

ステップ2 JavaでWebアプリケーションを作る

もしJavaを使うのが初めてならば、サーブレットとJSPを使って簡単なWebアプリケーションを作成してみましょう。私はTrelloのようなログイン機能がついたチケット管理システムを作成しました。当然「めちゃくちゃ便利!」というわけではありませんが、「一応使える」レベルのものができました。作成を通して学習した内容を反復が目的なので、とりあえず作りたいものを作っていきましょう。

 

ステップ3 Springの基礎を身につける

サーブレットとJSPを身につけたらSpringを使ってみましょう。GoogleでSpringの書籍を調べると、「Spring徹底入門」がオススメされるはずです。しかしSpring「入門」と書いてありますが決して「簡単」という意味ではありません。実際に私がサーブレットでWebアプリを作った後に「Spring徹底入門」を先輩から渡されましたが全く理解できませんでした。こちらの書籍はステップ4で使いますが、ひとまずおいておきます。

 

Springの第一歩としてはもう少し優しい書籍を使いましょう。

Amazonのレビューで「内容が薄い」「業務の役に立たない」とボロクソに書かれていますが、Spring初心者の私にとっては良書でした。これを通してSpringがどういうものかを掴んでいきましょう。

 

そして上記の本でも難しいという場合は先にSpring Bootをやってみてください。

Spring Bootは簡単に言えばSpringを扱いやすくしたフレームワークです。そのためSpring BootはSpringよりはるかに理解しやすいです。なぜこう勧めるのかと言えば、私自身が

Spring徹底入門をやる
→ 挫折する
→ たまたま先輩が持っていたSpring Bootの本をやってみる
→ 理解する
→ Spring Framework5をやってみる
→ Spring徹底入門に戻る

という手順を踏んだからです。Spring習得に苦しんでいる場合はぜひ参考にしてみてください。

 

ステップ4 Springの応用

ステップ3が終了したら、「Spring徹底入門」を使っていきましょう。

 

正直に言えば、ステップ3を終えた時点でもかなり難しい書籍です。なぜなら書籍の後半になると前半で説明した処理が省略されているので、書かれている通りに書けばとりあえず動く、というものではないからです。逆に、理解が進んでいけば必要なことがしっかり書かれている良書となります。

 

そのためできる限り困ったら質問ができる人が近くにいる状況が望ましいです。もちろんどの勉強であってもすぐに質問できる人がいることが望ましいですが、ここでは特に大事になってきます。加えて書籍のわからない部分はひとまず流したり、(書けば絶対動くという訳ではないけど)とりあえず書いてみることが大切になります。

 

おすすめの順番は以下の通りです。
Spring徹底入門 初版より

  1. 1章 Spring Frameworkとは
  2. 2章 Spring Core(DI×AOP)
  3. 4章 Spring MVC
  4. 5章 Webアプリケーションの開発
  5. 3章 データアクセス(Tx、JDBC)
  6. 10章 Spring Data JPA
  7. 9章 Spring Security

もちろんこれであらゆる業務をこなせるというわけではありません。ですが上記の項目がわかれば「スッキリわかるサーブレット&JSP入門」で作ったシステムをSpring上で作成できるはずです。残りの章は必要な処理に応じて読めば大丈夫です。

 

また学習にはこちらのサイトを参考にしましょう。

「Spring徹底入門」はNTTデータの方が中心になって作成した本です。そしてTERASOLUNAはSpringをベースとしてNTTデータが独自に作ったフレームワークです。そのためこのサイトにはSpring徹底入門と同じような記述があったり、書籍より詳しい情報が載っている場合があります。しかしこのサイトはあくまでTERASOLUNAのためであって、Springに完全対応しているわけではありません。そのためそのまま書いても動かないことがあります。とはいえ利用できる部分が多いため、困ったらとりあえず見てみましょう。

 

ステップ5 SpringでWebアプリケーションを作る

Springの機能がわかったら、再びSpringを使ってWebアプリケーションを作成してみましょう。内容はステップ3で作ったものをSpringで作れば良いと思います。
Springは書きたい処理のプログラムを書く前に前提事項が多いので、たった一回でこの本を理解できる人は間違いなく上級者か天才です。サーブレットの時と同様に作りながら頑張ってSpringに慣れていきましょう。

 

 

最後に

以上の段階を踏んだ後は、実際に動いているシステムのソースコードを見て修正するくらいのことはできるようになりました。Springは書籍が少ない上にネットの情報が限定されているため、他の企業はどうやってSpringを習得しているのかがとても気になっています。

 

今回の記事がSpring習得の参考になれば幸いです。

 

 

番外編

ここでは冒頭で提示した前提条件に関する学習方法を補足していきます。

 

その1 HTMLとCSSを身につける

私は大学生時代に動画サービスで身につけました。HTMLやCSS自体はそこまで難しいものではなく書籍も充実しているので、動画を通してさくっとやってみた後に本屋で立ち読みでもしながら良さげな書籍を買うのがおすすめです。動画サービスは企業で使うには法人ライセンスが必要なので、上司と相談してみましょう。

動画サービス

学習コンテンツの数で比べればドットインストールに軍配が上がりますが、UIや勉強のしやすさはProgateが優れています。私はProgateの方が好みです。

 

またHTMLとCSSを身につけたらCSSフレームワークであるBootstrapも習得しておくと後々便利です。ただBootstrapは書籍が少ないので、ネットの情報で勉強することになります。Bootstrapの習得にはドットインストールがベストです。

 

 

その2 SQLを身につける

WebアプリケーションにはDBが欠かせません。これまた学習方法は色々ありますが私は書籍で身につけました。

これ一冊やれば基本は大丈夫なはずです。またドットインストールやProgateなどの動画サービスが使えるのならばそちらでやっても良いと思います。

 

その3 Wb系の言語を触ってみる

そもそもWebアプリケーションを作るだけならSpringを使わない方が圧倒的に楽です。MVCなどWebに欠かせない内容をSpring以外で知っておいた方が理解が早くなります。Java以外に学習する余裕がある場合は触ってみてください。

 

もしJava以外でWebアプリケーションを作るならPHP・Ruby・Perlなど言語は色々ありますが、私は大学生時代にPHPをやっていたのでこちらを紹介しておきます。

 

学習は動画サイトを使いました。

  • ドットインストール

その後書籍を2冊使いました。

その後フレームワークを触ってみるのをおすすめします。

  • Laravel
  • CakePHP

また環境構築にはXAMPPMAMPを利用するとすぐにPHPを使うことができるため、初心者のうちは積極的にこれらを利用しておきましょう。

 

AWS移行支援キャンペーン

あなたにおすすめの記事