SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Groovy+GrailsでRailsなWeb開発

Grailsの基本を知ろう

Groovy+GrailsでRailsなWeb開発 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Webアプリケーションの構成

 とりあえずWebアプリケーションの作成から公開、デプロイまでを一通り頭に入れたところで、作成したWebアプリケーションについてもう少し詳しく見ていくことにしましょう。今作った「gapp」フォルダの中を見てください。中には次のようなフォルダ類が作成されています。

「gapp」内のフォルダ構成
フォルダ名 説明
grails-app Grailsのアプリケーションの中心となるところです。この中にさまざまな役割を果たすスクリプトファイルを作成していくことで、Grailsアプリケーションを作ります。
lib ライブラリファイルを保管する場所です。
scripts スクリプトファイルを保管する場所です。
src ソースコードファイルの保管場所です。中には、JavaとGroovyのそれぞれのソースコードを保管するためのフォルダが用意されています。
test ユニットテストを実行するためのファイルを作成する場所です。
web-app Webアプリケーションの主に静的ファイルを配置する場所です。
Grailsで作成されたWebアプリケーションは、このようなフォルダ構成になっている。
Grailsで作成されたWebアプリケーションは、このようなフォルダ構成になっている。

 この中で、私たちに直接関係があるのは、「grails-app」と「web-app」でしょう。静的ファイルなど(Grailsを利用しない)一般的なWeb関連ファイルを作成する場合にはweb-app、Grailsによるプログラムを作成するにはgrails-appに、それぞれファイルを作成配置しなければいけません。まずは、これらの使い方を覚える必要があるでしょう。

grails-appのディレクトリ構成

 Grailsアプリケーションの中心となる「grails-app」は、その中にさらにいくつものフォルダが用意されています。それらにファイルを作成してWebアプリケーションを作っていきます。では、このgrails-app内に用意されているフォルダ類について説明しておきましょう。

「grails-app」のフォルダ構成
フォルダ名 説明
conf 各種設定ファイルが保管されます。
controllers 「コントローラー」と呼ばれる、アプリケーションの制御を行うためのプログラムが配置されます。
domain 一般に「モデル」と呼ばれる、データベースプログラムとのやり取りを行うためのプログラム(ドメインクラス)が配置されます。
i18n 他国語対応のための各国語向けローカライズデータが配置されます。
services アプリケーション全体で機能する「サービス」と呼ばれるプログラムを配置するためのものです。
taglib タグライブラリを用意するためのものです。
utils ユーティリティプログラムを配置するところです。
views 「ビュー」と呼ばれる、画面表示のためのファイルを配置するところです。
grails-appの中身。ここがWebアプリケーションの中心部分となる。
grails-appの中身。ここがWebアプリケーションの中心部分となる。

 これらの中でも特に重要なのは「controllers」「domain」「views」の3つでしょう。これらは、Grailsの土台となる「MVCモデル」と呼ばれるアプリケーションアーキテクチャーと関連するものです。

MVCについて

 既に「MVC」という言葉はかなり広く浸透していますので改めて説明する必要はあまりないでしょうが、簡単に整理しておきましょう。

 MVCとは「Model(モデル)」「View(ビュー)」「Controller(コントローラー)」の略です。これは、プログラムをこの3つの要素に分けて作成していこう、という考え方です。それぞれは、次のような役割を果たします。

  • Model
    データ管理を行うものです。データベースとのやり取りを行ったり、データの関連や構造、振る舞いなどを管理します。
  • View
    表示を行うためのものです。必要な情報などを具体的な表示として画面に展開し出力する処理を担当します。
  • Controller
    プログラムの制御を行うものです。外部からの要求などを受け取り、その要求に応じた処理を実行します。必要に応じてModelやViewを呼び出すのもControllerの役割です。

 多くのアプリケーションは、大体このMVCの3つに機能を分類して作成することができます。特にWebアプリケーションでは、このMVCのスタイルが非常になじむのです。Webでは、画面の表示はブラウザにHTMLのソースコードを出力して行います。「ページの表示→サーバに送信→サーバで処理→ブラウザに結果を表示」というように、Webの仕組みそのものが表示と処理を分離して設計するのに適しています。

 が、これまでのJSPやサーブレットでの開発を思い返してみると、必ずしもそうなっていなかった、という部分がありませんか? JSPの中に、ビジネスロジックと表示をまとめて作成していたり。JSPは、両者を混在して書くことが可能であったため、Web開発のビギナーにとっては、あまり深く考えずにプログラムが書ける=ビューもコントローラーもごちゃごちゃな状態のプログラムが出来上がる、といったことになりがちでした。MVCフレームワークの導入により、こうした混在をなくし、きれいに両者を分けて作成することができるようになります。

 「たった1ページの表示でも、制御と表示の2つをいちいち書かないといけないの?」と思った人。そのとおり! たった1ページ、ただ表示するだけの画面でも、制御と表示の2つを用意しなければいけません。とはいえ、ただ表示するだけであれば制御部分には何も処理を用意する必要はありませんし、それは思ったほど大変なものでもないので心配は無用です。

次のページ
コントローラーの作成

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Groovy+GrailsでRailsなWeb開発連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3809 2009/04/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング