おもに Groovy やアジャイル開発について勉強していることを書き散らしてます。
わたしのひとりごとが、だれかのお役に立てればと…

Grails はじめました

Groovy の延長で Web アプリケーションフレームワークである、Grails にも手を出した。
Grails 徹底入門』という本を参考にした。

とりあえず、Hello World

Struts とか、そういう JavaEEフレームワークとは違って、簡単に画面が作れてしまうのが Grails の特徴(だと思っている)。
Grails が影響を受けている Ruby on Rails もその系統。コード量や設定量を減らして、チョチョイと作ってしまおうということ。

というわけで、grails が用意しているコマンド群を最初なのでよく理解しないまま、おまじないのごとく実行。
grails create-app
grails create-controller
grails run-app

アプリケーションのひな形を作って、画面の構成要素を作って、アプリを動かすという一連の生成&実行をおこなう。
create-controller で作ったクラスの一部をいじって、Hello World を画面出力するという簡単な手順である。

言われるがまま、そのままやってみた。色々とファイルが生成されていることがわかった。

だが、動かなかった。期待した、Hello World が画面に表示されなかった。

初心者にはよくわからない

数回のコマンド実行で、色々なファイルが生成されていて、それぞれの役割も理解できていない。
自分が修正したファイルの役割もおぼろげな理解でとどまっている。

そういう状態で動いてしまえばいいのだけれど、今回は動かなかった。
当然わけわからない事態に陥った。
新人が配属されて、見様見真似で作って全く動かなく、どうしようもなくなる。こういう感覚なのだろうなというのを実体験した。

結局、色々なサイトを見て自分の修正内容の違いに気づいたが、苦労した感はいなめない。


感覚の違いを大切にしたい

というトラブルに巻き込まれて心折れかけたが、決して Grails がイケてないという結論ではない。
わかってしまえば、5分もかからずゼロから画面を作って動かすことができるわけで非常に強力であり、魅力的である。

これまで、Struts やそれに類するフレームワークを使ってアプリ開発をしてきた自分としては、
勝手に色々とできていくというのは不安定でしょうがなく、落ち着かない状態だった。

自分が理解している構成要素を組み立てていくという旧来のやり方ではなく、一定のルールをもとに自動で最短で作りあげてしまう。
自分が関与することはなく(なにをやっているかを理解していれば別だが)、事が進むのは不安だらけである。

仕組みが気になる、構造が気になる。中身が気になる。
そういった感覚が強くあるので、違和感を強烈に感じる。そういった意味では動的型付け言語である Groovy も違和感あり。

ただし、Grails に対する理解が深まれば、感覚も違ってくるのだろうと思う。

ただ今は、Java/Struts と Groovy/Grails の感覚の違いというものを大切にしたい。

Javaのよさを強調するのであれば、生産性というものには限界があるだろうし、
Groovy を無計画に強制的に導入するようなことがあればコードは無秩序になり、プロジェクトが崩壊する可能性が高まると思っている。

将来的には臨機応変に使い分けをしたいと考えているが、それに向けてという意味でも
今の自分の感覚を記録しておきたい。