Play 2.0のアーキテクチャとディレクトリ構成の基礎知識:Scala+Play 2.0でWebアプリ開発入門(2)(3/3 ページ)
2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、ScalaでシンプルなPlayアプリを作って動かすまでの手順、Playアプリの全体構造やファイル構成、各ディレクトリの役割を解説
Playアプリのディレクトリ構成
最後に、「play newコマンド」で生成された、アプリのディレクトリ構成を紹介します。標準的なディレクトリ構造は下記のようになっています。
いくつか重要なディレクトリについて解説します。
「app」ディレクトリ
アプリのソースファイルを格納するディレクトリです。「controllers」「models」にはScalaのソースファイル、「views」は、Scala templateのファイルを格納することが想定されています。
また、「assets」ディレクトリには「LESS」「CoffeeScript」など、別言語へコンパイルされるファイルが置かれます。
なお、これらは任意の名前に変更することも可能です。
「conf」ディレクトリ
アプリの設定ファイルが置かれます。デフォルトでは、アプリ全体の設定を行う「application.conf」とルートの定義を行う「routes」があります。
あとは、メッセージ定義用ファイルや「evolutions」(DBスキーマ履歴管理)用のファイルが置かれます。
「public」ディレクトリ
画像やCSS、JavaScriptやHTMLなど、静的なファイルを格納するためのディレクトリです。
なお、play newコマンドでアプリを作成した後のデフォルト状態では、「public」ディレクトリは「/assets」というパスに、ひも付けられています。
「lib」ディレクトリ
使いたいjarライブラリを格納します。通常は前回紹介した「sbt(Simple Build Tool)」を使って依存性管理を行うので、このディレクトリは必須ではありませんが、sbtの管理外にしたいjarライブラリがある場合には、ここへ置いてください。
「test」ディレクトリ
単体テストや機能テスト用クラスを定義して格納します。このディレクトリ内にあるテスト用クラスは、Playコンソールから「test」コマンドを使って簡単に実行できます(※今回はテストを作成していないので実行されません)。
[gyro] $ test [info] No tests to run for test:test [success] Total time: 1 s, completed 2012/11/17 15:58:13
Play 2.0ではデフォルトのテストフレームワークに「specs2」を使います。
テストについても、次回以降で紹介します。
Play frameworkの翻訳サイトも参考に
これらアプリのディレクトリ構造については、Play frameworkの翻訳サイトにある、「Play 2.0 アプリの構造」に詳細な解説がありますので、ぜひ参照してください。
次回は、コントローラやPlayコンソールの使用方法
今回はScalaでシンプルなPlayアプリを作成して、Play framework 2.0のアーキテクチャとディレクトリ構造に関して説明しました。
アーキテクチャは、とてもシンプルで、分かりやすい構造になっていると思います。また、ディレクトリ構造も役割がはっきりしていてシンプルですし、変更も簡単ですね。
次回はPlay frameworkのコントローラやPlayコンソールの使用方法を紹介する予定です。
- Play2プラグインのインストールと使用と新規開発
- Play2+nginx/Akka/WebSocketで高速双方向通信
- Play2(+JavaScript)アプリを高速化、最適化する4つのテクニック
- Play2におけるJSONおよびCoffeeScriptの使い方
- Playのグローバルな設定&spec2でBDDなテスト
- Play 2.xからMySQLに接続してAnormでCRUD操作するには
- Play 2.xのScala Templatesでビュー&フォーム操作
- Play 2.1にアップグレードしてコントローラを使いこなす
- Playコントローラ/Action/HTTP Routerの基本的な使い方
- 便利なPlayコンソールとEclipseでのデバッグ方法
- Play 2.0のアーキテクチャとディレクトリ構成の基礎知識
- Play framework 2.0の概要/5つの特徴とScalaで作るための環境構築
著者プロフィール
中村修太(なかむら しゅうた)
クラスメソッド勤務の新しもの好きプログラマです。昨年、東京から山口県に引っ越し、現在はノマドワーカーとして働いています。好きなJazzを聴きながらプログラミングするのが大好きです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- スケーラブルで関数型でオブジェクト指向なScala入門
Scalaの特徴を紹介し、基本構文や関数、クラスなど、Scalaの基本的な機能について解説する入門連載 - Javaの常識を変えるPlay framework入門
サーブレット/JSPを基にする重厚長大なJavaのWeb開発のイメージを変える軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載