ついったモドキをつくってみた
会社のプログラミングコンテストの課題がTwitterクローンだったので,Grailsの習作にちょうどよいと思って応募してみたんだが,応募締め切りが今月末なのにもうできちゃった。:-)
多分,実稼働時間で40時間かかってないんじゃないかな?もともと「サクっと」出来るだろうと思ってたんで,あんまり驚いてはいない。まともなアプリ作ってみないと分かんない点がいろいろ見つかって面白かった。ちょっと格好つけてAJAXだのCSS主体のレイアウトだのイマドキの手法に手を出してみたけど,こうゆうのも実際作ってみないとわからん事多いね。
作ったモノは大した事ない(GSP除いて1200行程度)んだけど,モノがモノだけにソース公開とかまだやんない。ただ,ヒマみて小ネタを残していこうと思う。
とりあえず,まともなGrailsアプリ作った上での感想。
いい点
- とにかく記述が楽。もうJava書けないかもしんない。
- 豊富なプラグイン。
- 認証,メッセージング,イメージ処理など必要な機能が全て揃ってました。ありがとうございます。
- フルスタック万歳
- IntelliJ便利
- NetBeansもがんばっていると思うけど,未評価なんでよーしらん。
- GORMはそれなりに便利
悪い点
- やっぱりJavaだし,Hibernateだ
- ってのを意識しないと納得できない記述をするときがままある。これのおかげでJavaの素養がない人には勧めらんない。
- デフォルトパッケージは鬼門。
- 多分これ,気に入らない人は徹底的に気に入らんと思う。
- typoでよくハマる
- テストが楽じゃない&楽しくない
- プラグインで解決できるのかも知れないけど,標準のテストには萌えが無い。
どんなものだって諸手を上げて良しなんてこたぁないし,気に入らない点も人それぞれだけど,あたしはGrails好きだよ。(ちょと語弊あるけど)ドメイン更新するとDB初期化したり,マイグレーションが無かったりするのは,そんな気にならなかった。GORMは,GORMであーゆーのもアリかなって思えたし。GSPでタグをゴリゴリ書くのめんど臭ぇなぁと思ってたけど,意外とすぐ慣れた。
何にせよ,サクっとWebアプリ作れる事に関しては間違いが無い。
おすすめのネタもと
とりあえず,Grailsやるのに押さえておいた方がいい情報のソースを列挙しとこう。
Webサイト
- 本家のリファレンス → http://grails.org/doc/1.1/
- なんだかんだで一番役に立つ
- Groovy GDKリファレンス → http://groovy.codehaus.org/groovy-jdk/
- String#toInteger()とか,便利メソッドが拡張されているんだけど,よく忘れる。
- Groovy - Dzone Refcardz
- Groovyの基本構文を覚えるまで手元に置いておくといい。
ここら辺までが必須。あとは必要に応じて参照してた。
- home theater sectional sofa – grailstutorials.com
- リンク集。本家のチュートリアルより豊富だし,たいがいのことは載ってる。
- UIがあんまり洗練されてないのが難点。:-P
- http://pleac.sourceforge.net/pleac_groovy/index.html
- Perl CookbookのGroovy版。とかくサンプルが豊富。
- Documentation for Red Hat Products - Red Hat Customer Portal
- GORMでちょっと器用なことするとHQLの出番になる。
- HQLの日本語のリファレンスなんてあったのね。redhatエライ。
書籍
あたしが持っているのは次の4冊。
- Grails徹底入門(asin:4798117366)
- 既に読了してたんで,今回はそんなに参照する事は無かった。
- The Definitive Guide to Grails, 2nd Edition(asin:1590599950)
- Viewまわり(AJAXとかtemplateとか)で,ちょっと参照した程度。
- Groovy Recipes(asin:0978739299)
- PLEAC-Groovyの補完。使ってないとGroovyそのものを忘れる...。:-)
- Grails Persistence With GORM and GSQL(asin:1430219262)
- 今回一番活躍したのはこれ。マジメにGORM使うとfindByXXX系のファインダーよりwithCriteriaを多用するんでね。
- サンプル豊富な割に薄くて読みやすいけど,索引がないという最大の欠点を持つ。
- 実を言えば,Grailsのリファレンスに全部載ってんだけどね。:-P