SpringでWebアプリケーションを作る最後に番外編こんにちはサービス企画チームのnemodです。2018の2日目の記事です。Framework(以下Spring)を身につけていった方法を紹介します。Springは5つのステップで習得しました。SpringでWebアプリケーションを作る前提は以下の通りです。HTMLとCSSは習得済みSQLも習得済みEclipseを使用する今回はJava関連に絞って説明します。そのためこちらに関しては詳しく触れていきません。最後に私の習得方法を簡単に書いておきました。前提条件を満たしていない場合はそちらを参照してください。私の背景も紹介しておきます。大学時代はPHPでWebアプリケーションを作ったり、C#とUnityでVRをいじっていたそれでは本題に入ります。Javaを身につけるまずはJavaを身につけていきます。以下の書籍を利用しました。変数の宣言からオブジェクト指向まで非常に細かく丁寧に説明してくれる本です。基礎的であるがゆえに他のプログラム経験があれば大半の説明を飛ばすことができます。余裕があれば、この段階からEclipseを使って操作に慣れていくと良いかもしれません。実践編リストやファイル操作やDBなど、プログラムを書く上で使用機会が多い機能が説明してあります。こちらは章ごとにテーマが決まっているので、好きな順番でやっても大丈夫です。引き続きJavaの操作に慣れていきましょう。わかるサーブレット&JSP入門Javaを使ってWebアプリケーションを作成する方法が説明されています。この本で学んだ方法をそのまま使って開発することはまずあり得ませんが、後で学ぶSpringの大元はこの技術となっています。Springの理解をスムーズに進めるための知識を身につけるつもりでやると良いです。僕自身もなんだかんだでやっておいてよかったと実感しています。JavaでWebアプリケーションを作るもしJavaを使うのが初めてならば、サーブレットとJSPを使って簡単なWebアプリケーションを作成してみましょう。私はTrelloのようなログイン機能がついたチケット管理システムを作成しました。「めちゃくちゃ便利!」というわけではありませんが、「一応使える」レベルのものができました。作成を通して学習した内容を反復が目的なので、とりあえず作りたいものを作っていきましょう。Springの基礎を身につけるサーブレットとJSPを身につけたらSpringを使ってみましょう。GoogleでSpringの書籍を調べると、「Spring徹底入門」がオススメされるはずです。Spring「入門」と書いてありますが決して「簡単」という意味ではありません。実際に私がサーブレットでWebアプリを作った後に「Spring徹底入門」を先輩から渡されましたが全く理解できませんでした。こちらの書籍はステップ4で使いますが、ひとまずおいておきます。Springの第一歩としてはもう少し優しい書籍を使いましょう。プログラミング入門Amazonのレビューで「内容が薄い」「業務の役に立たない」とボロクソに書かれていますが、Spring初心者の私にとっては良書でした。これを通してSpringがどういうものかを掴んでいきましょう。Bootをやってみてください。Bootは簡単に言えばSpringを扱いやすくしたフレームワークです。BootはSpringよりはるかに理解しやすいです。Spring徹底入門に戻るという手順を踏んだからです。Spring習得に苦しんでいる場合はぜひ参考にしてみてください。Springの応用ステップ3が終了したら、「Spring徹底入門」を使っていきましょう。正直に言えば、ステップ3を終えた時点でもかなり難しい書籍です。書籍の後半になると前半で説明した処理が省略されているので、書かれている通りに書けばとりあえず動く、というものではないからです。逆に、理解が進んでいけば必要なことがしっかり書かれている良書となります。そのためできる限り困ったら質問ができる人が近くにいる状況が望ましいです。どの勉強であってもすぐに質問できる人がいることが望ましいですが、ここでは特に大事になってきます。加えて書籍のわからない部分はひとまず流したり、(書けば絶対動くという訳ではないけど)とりあえず書いてみることが大切になります。おすすめの順番は以下の通りです。Securityもちろんこれであらゆる業務をこなせるというわけではありません。上記の項目がわかれば「スッキリわかるサーブレット&JSP入門」で作ったシステムをSpring上で作成できるはずです。残りの章は必要な処理に応じて読めば大丈夫です。学習にはこちらのサイトを参考にしましょう。TERASOLUNA「Spring徹底入門」はNTTデータの方が中心になって作成した本です。TERASOLUNAはSpringをベースとしてNTTデータが独自に作ったフレームワークです。そのためこのサイトにはSpring徹底入門と同じような記述があったり、書籍より詳しい情報が載っている場合があります。このサイトはあくまでTERASOLUNAのためであって、Springに完全対応しているわけではありません。そのためそのまま書いても動かないことがあります。いえ利用できる部分が多いため、困ったらとりあえず見てみましょう。SpringでWebアプリケーションを作るSpringの機能がわかったら、再びSpringを使ってWebアプリケーションを作成してみましょう。内容はステップ3で作ったものをSpringで作れば良いと思います。Springは書きたい処理のプログラムを書く前に前提事項が多いので、たった一回でこの本を理解できる人は間違いなく上級者か天才です。サーブレットの時と同様に作りながら頑張ってSpringに慣れていきましょう。最後に以上の段階を踏んだ後は、実際に動いているシステムのソースコードを見て修正するくらいのことはできるようになりました。Springは書籍が少ない上にネットの情報が限定されているため、他の企業はどうやってSpringを習得しているのかがとても気になっています。今回の記事がSpring習得の参考になれば幸いです。番外編ここでは冒頭で提示した前提条件に関する学習方法を補足していきます。HTMLとCSSを身につける私は大学生時代に動画サービスで身につけました。HTMLやCSS自体はそこまで難しいものではなく書籍も充実しているので、動画を通してさくっとやってみた後に本屋で立ち読みでもしながら良さげな書籍を買うのがおすすめです。動画サービスは企業で使うには法人ライセンスが必要なので、上司と相談してみましょう。動画サービスドットインストールProgate学習コンテンツの数で比べればドットインストールに軍配が上がりますが、UIや勉強のしやすさはProgateが優れています。私はProgateの方が好みです。HTMLとCSSを身につけたらCSSフレームワークであるBootstrapも習得しておくと後々便利です。Bootstrapは書籍が少ないので、ネットの情報で勉強することになります。Bootstrapの習得にはドットインストールがベストです。SQLを身につけるWebアプリケーションにはDBが欠かせません。これまた学習方法は色々ありますが私は書籍で身につけました。ゼロから始めるデータベース操作これ一冊やれば基本は大丈夫なはずです。ドットインストールやProgateなどの動画サービスが使えるのならばそちらでやっても良いと思います。Wb系の言語を触ってみるそもそもWebアプリケーションを作るだけならSpringを使わない方が圧倒的に楽です。MVCなどWebに欠かせない内容をSpring以外で知っておいた方が理解が早くなります。Java以外に学習する余裕がある場合は触ってみてください。Java以外でWebアプリケーションを作るならPHP・Ruby・Perlなど言語は色々ありますが、私は大学生時代にPHPをやっていたのでこちらを紹介しておきます。学習は動画サイトを使いました。ドットインストールその後書籍を2冊使いました。気づけばプロ並みPHPパーフェクトPHPその後フレームワークを触ってみるのをおすすめします。LaravelCakePHPまた環境構築にはXAMPPやMAMPを利用するとすぐにPHPを使うことができるため、初心者のうちは積極的にこれらを利用しておきましょう。Frameworknemod2018年新卒入社。フロントエンド&サーバサイドを担当。Rubyを主に使用する。会社では全力で働き、家では全力で遊ぶ。自由な時間を増やす為に、今日も会社で経験値とお金を稼ぐ。