この連載で行うこと
HerokuはRuby、Node.js、PHP、Pythonなどの様々な言語をサポートしていますが、本連載ではJavaを使用してます。
アプリケーションの作成は、簡単なHello worldアプリケーションから始め、回が進むごとに機能追加し、Herokuにデプロイしていきます。 自分の作ったアプリケーションが世界中に公開され、実際に動作しているのを体感してください。
その過程でDynoなどのHeroku固有の概念の説明や、各種Add-onの使い方の説明も適宜加えていきます。
また、プログラミング言語としてはJavaを使用しますが、特定のフレームワークやライブラリには依存しないようにしたいと思っています。 そのため、アプリケーションは標準のServlet APIのみを使って作成し、DB接続も標準のJDBCで行います。 最近のJavaアプリケーションでは、DB接続にはORマッパーを使用するのが一般的ですが、それらのライブラリの使い方はこの連載の本質ではありませんので、基本のJDBCのみを使用します。
Herokuだからといって、特別な設定が必要なこともないので、使い慣れたライブラリやフレームワークがある場合はご自身でお試しください。
ただ、HTMLを表示するためのテンプレートエンジンだけは、使わないとコードサンプルが見づらくなるので、それにはMustacheを使用します。 凝った使い方はしないので、初めての方もすぐに慣れると思います。
Heroku上にアプリケーションを構築するといっても、いくつかのポイントさえ押さえてしまえば、ローカルで開発するのとほとんど変わりません。 そこで、Blog、ECサイトといった特定の目的を持ったアプリケーションを作ることは目的とはせず、極力数多くのAdd-onを紹介するギャラリーのようなアプリケーションを作成していきます。
この構成、実は筆者が所属する株式会社FLECTで公開しているHerokuのサンプルサイトと同じものです。 このサイトの全ソースは一般公開されていませんが、この連載を通してこれと同等、あるいはさらに進んだものを作れるとよいと思っています。
なお、本連載で作成するアプリケーションは、原則的にHerokuを無料で利用できる範囲に収めます。 連載が進めば有償アドオンを使用する機会が出てくるかもしれませんが、当面は考えていません。
前提知識とツール
今回の連載を読み進めるにあたり、ローカルに次の環境を用意してください。
- JDK 1.7以降
- Maven 3.2系
これら以外にGitも使用しますが、Gitは次節で行うHeroku Toolbeltのインストールで同時にセットアップされるので、別途インストールする必要はありません。
OSはMac、Windowsのどちらでもよく、IDE(統合開発環境)の指定も特にありません。
前提知識としては、JavaとHTML/JavaScriptで簡単なWebアプリケーションを作れるレベルを想定していますが、Javaの経験がなくても他の言語での経験があれば、それなりに分かると思います。 Ruby on RailsやPHPで開発を行っている人なら、ここで書かれている内容をそれらのフレームワークで再実装するのも、さほど難しくないでしょう。
herokuコマンド(Herokuを操作するために使用するコマンド)などは言語非依存なので、Java以外の言語を使用する人にとっても有益な内容は多いと思います。
問題はGitです。Herokuを使いこなす上で一番ハードルの高い技術は、実はGitだと思います。 企業ユースではまだSubversionの方が優勢で、Gitを使ったことがない人も多いと思いますが、Herokuを使う上では避けては通れない道です。これを機会に学習してみてください。
本連載でも最低限のgitコマンドの説明はしますが、詳細には立ち入りません。
