Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。6タグライブラリによるフォームの生成その他のフォーム関連タグテキスト入力関連タグテキストエリアタグチェックボックスラジオボタン一覧リストもう1つのフォームの書き方まとめWebアプリケーションの構成とりあえずWebアプリケーションの作成から公開、デプロイまでを一通り頭に入れたところで、作成したWebアプリケーションについてもう少し詳しく見ていくことにしましょう。今作った「gapp」フォルダの中を見てください。中には次のようなフォルダ類が作成されています。Grailsのアプリケーションの中心となるところです。この中にさまざまな役割を果たすスクリプトファイルを作成していくことで、Grailsアプリケーションを作ります。ライブラリファイルを保管する場所です。スクリプトファイルを保管する場所です。ソースコードファイルの保管場所です。中には、JavaとGroovyのそれぞれのソースコードを保管するためのフォルダが用意されています。ユニットテストを実行するためのファイルを作成する場所です。Webアプリケーションの主に静的ファイルを配置する場所です。Grailsで作成されたWebアプリケーションは、このようなフォルダ構成になっている。この中で、私たちに直接関係があるのは、「grails-app」と「web-app」でしょう。静的ファイルなど(Grailsを利用しない)一般的なWeb関連ファイルを作成する場合にはweb-app、Grailsによるプログラムを作成するにはgrails-appに、それぞれファイルを作成配置しなければいけません。これらの使い方を覚える必要があるでしょう。grails-appのディレクトリ構成Grailsアプリケーションの中心となる「grails-app」は、その中にさらにいくつものフォルダが用意されています。それらにファイルを作成してWebアプリケーションを作っていきます。このgrails-app内に用意されているフォルダ類について説明しておきましょう。各種設定ファイルが保管されます。「コントローラー」と呼ばれる、アプリケーションの制御を行うためのプログラムが配置されます。一般に「モデル」と呼ばれる、データベースプログラムとのやり取りを行うためのプログラム(ドメインクラス)が配置されます。他国語対応のための各国語向けローカライズデータが配置されます。アプリケーション全体で機能する「サービス」と呼ばれるプログラムを配置するためのものです。タグライブラリを用意するためのものです。ユーティリティプログラムを配置するところです。「ビュー」と呼ばれる、画面表示のためのファイルを配置するところです。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は、両者を混在して書くことが可能であったため、Web開発のビギナーにとっては、あまり深く考えずにプログラムが書ける=ビューもコントローラーもごちゃごちゃな状態のプログラムが出来上がる、といったことになりがちでした。MVCフレームワークの導入により、こうした混在をなくし、きれいに両者を分けて作成することができるようになります。「たった1ページの表示でも、制御と表示の2つをいちいち書かないといけないの?」と思った人。1ページ、ただ表示するだけの画面でも、制御と表示の2つを用意しなければいけません。いえ、ただ表示するだけであれば制御部分には何も処理を用意する必要はありませんし、それは思ったほど大変なものでもないので心配は無用です。ツヤノ)三文ライター&三流プログラマ。ビギナーに向けたプログラミング関連の執筆を中心に活動している。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。