Heroku Junior Camp 行ってきたよ

Java枠で参加してきました。
対象は3年目以下のHeroku環境でWebアプリケーションを作ってみたい若者。

若者がメインだから、気持ち的にも余裕があって、小規模で参加しやすかった。

何やったの?

入力されたURLに応じたアクションを返すようなWebアプリケーションを作成しました。
テーマはJohn LennonのHelloGoodbyeという曲の歌詞を参考に、指定したURLとは天邪鬼な表示をする。みたいな感じ。
応用で、日本語をServletでやり取りもやってみるみたいな宿題がでた。
( http://floating-sunset-3471.herokuapp.com/HelloGoodbye )

コードはGithubで管理してます。(これは任意だった)
Gitによるバージョン管理は、今回の抗議の中でもあり、Herokuを使う上でもプログラマとしても大事なスキル。
( https://github.com/shimosuk/HerokuJuniorCampJava )

学んだこと

本番環境有るの楽しい!
Eclipseがない環境は辛いが勉強になる
普段使っている魔法のコマンドについて関心をもつべき
コードにコメントは書いちゃダメ
リファクタリングはたくさんするべき
importはできるだけ減らす
Servletを扱う中でcloseはしてはいけない
MVCについて少し
URLはweb.xmlで決まる

残念だったこと

データベースを使ってデータのやり取りみたいなこともしたかったなぁ

具体的にこんなことしたよ

ちなみに私の環境はMac OS Lionです。(今回はあんまり関係ないけど)
まずは下記サイトにアクセス。

http://java.heroku.com/

"Containerless web app with Embedded Jetty"を選択し、コマンドラインを使用する方法で作業を進めていきました。

ここで最初に、このコマンド何してるか意識しましょうっていうお話
今までMavenなんてプロジェクトでいっぱい使ってきたのに、何してるかなんて疎かにしてた。
お陰で今回もサーバを起動しようとした際に、jarファイルを生成し忘れていた事に気が付かず、起動できなくて危うく参加できなくなるところだった。
help見て解決できたのは、ここ1年で成長したなと実感できたと同時に、今更さんざん使ってきたのに魔法のコマンドのままだったなと反省。

Heroku自体は、Gitを使う感覚でWebアプリが出来てしまっているので、難しいと思ってたのを面食らった感じ。

ここからは、リファクタリングとかコードの書く時に意識するべきことについて聞きながらHerokuのテンプレートでリファクタリングを学ぶスタイル。

リファクタリングで一番多いのはメソッド名や変数の名称変更。
なんたってオレが普段書いてる大量のJavaDocはすべて削除の対象で、理想はメソッド名や変数名の英語で意図を伝えるべきだから、繰り返し納得が行くまで直して直してのくり返し。
わかっちゃいるけど、なかなかむずかしいんだよねぇ、徐々に徐々にJavaDocやコメントは減らしていきたいと思っております。

感想

Eclipseありがとう!君がいない世界は、とても勉強になったし、普段いかに開発効率を上げてくれているか実感させられました。これからもよろしく。
でも、開発者たるもの一度は生でゴリゴリ書く経験が大切だなと思った。コンパイルがFailureになるのなんか真剣に考えたこともなかった。だってオートコンパイルが走ってたんだもん。
最近はRubyいいなとか思ってたけど、ただ単にJavaの難しいところばかりに目が言っててちゃんと見れてなかったのかな?
開発は凄い楽しかった。難しかったけどね、w