1-7
ライフハック(Life Hacks)は、仕事や趣味のモチベーションを高めたり To Do をう まく消化したりするために、ちょっとしたツールの使い方や、暮らしや作業を楽にする 小技を活用したりといったコツ、またそのようなコツを仲間で教え合うようなことを言 います。デビット・アレンが提唱する Getting Things Done(GTD)なども経験からく る仮説を基にした、実行可能で、シンプルなコツ、つまりライフハックの 1 つといって よいでしょう。
¡
参考文献:『Life Hacks PRESS〜デジタル世代の「カイゼン」術〜』 技術評論社刊、2006年3月
『ライフハックのつくりかた』 ソフトバンククリエイティブ刊、2007年3月
『仕事を成し遂げる技術〜ストレスなく生産性を発揮する方法』 はまの出版刊、2001 年9月
C O L U M N ライフハック
ActiveRecordを使うと、データベースのテーブルを作成する場合には、先にモデルを 作って、そのモデルからmigrateというスクリプトでテーブルを生成するという方法が使 えます(もちろん直接SQLコマンドを使ってもかまいません)。
さらに2章では、データベースのテーブルを作成する方法からはじまって、ユニットテ ストを使ったモデルのテスト、データの作成、読み込み、更新、削除の方法、検索する ロジックの作り方、テーブル間の関連付けの方法などを、サンプルを用いて紹介します。
3章「コントローラを理解しよう」では、MVCのC=コントローラを扱います。
Railsのアプリケーションを作成するときには、コントローラがアプリケーションの画 面を遷移させる方法や、そのときにURLをどのように解釈するかについて理解しておく ことが重要です。3章のサンプルを通して、そのようなコントローラの使い方を理解し ていただければと思っています。また、認証やHTTPセッションを扱う方法、ログやエ ラーの処理方法のサンプルも紹介します。
4章「ビューで見た目をクールにしよう」では、MVCのV=ビューを扱います。
Webアプリケーションは、ユーザーの入力やデータベースの情報の変化に応じて画面 に表示する要素が変わります。このようにつねに変化している情報を表示するための
CHAPTER 1CHAPTER 2CHAPTER3CHAPTER 4CHAPTER 5CHAPTER 6CHAPTER 7APPENDIX 1-7 本書の構成
Railsがデータベースを操作する方法は、マーチン・ファウラーが『エンタープライズ アプリケーションアーキテクチャパターン』(マーチン・ファウラーほか)において紹 介しているオブジェクト―リレーションマッピング(O/R マッピング)パターンである
「ActiveRecord」という考え方が基になっています。この機能を提供する Rails のパッケ ージも、同じくActiveRecordという名前になっています。
ActiveRecord パターンは、データベースのテーブル上のレコードに対するアクセスを カプセル化し、そこにビジネスロジックを持たせます。レコードとオブジェクトを 1 対 1 に対応させ、そこにレコード操作のロジックをパッケージ化することで、データとデ ータアクセスと振る舞いを持つオブジェクトを提供するパターンです。ファウラー自身 がパターンとして紹介しているのはここまでですが、Rails の ActiveRecord は、さらに、
関連、コレクション、継承などを扱えるよう拡張してあります。Rails の ActiveRecord パッケージは、本来の ActiveRecord パターンそのものの具体例というよりも、Active Recordパターンを応用した新しいコンポーネントと考えた方がよいでしょう。
¡
参考文献:『エンタープライズアプリケーションアーキテクチャパターン』 翔泳社刊、2005年4月
C O L U M N ActiveRecordパターン
Webページのことを「動的なページ」といいます。一方で、あらかじめ固定した内容の HTMLファイルを使うページを「静的なページ」といいます。
RailsのアプリケーションもWebアプリケーションの例に漏れず動的なページを多用し
ます。そこで、Webページのひな型と表示対象のデータとを使ってHTMLを生成する機 能を持つパッケージ(テンプレートエンジンといいます)の1つであるERBを、ページ の生成に利用しています。ERBは、Railsが登場する以前から使われている、Rubyの世 界ではポピュラーなテンプレートエンジンでもあります。
サンプルでは、Railsの中でERBを使うときのポイントを紹介します。ページテンプレ ートを作成するときに便利なように、Railsが用意したたくさんのヘルパルーチンや、ペ ージのレイアウトをサイト全体で統一したり、特定のページだけ別の方法で表示する方 法などが登場します。
もちろん、今日的なトレンドであるAjaxを使った例も紹介します。Railsではとてもス マートにAjaxを使うことができるのがわかるでしょう。
5章、6章、7章では、Railsの機能を使ったサンプルアプリケーションを紹介します。
5章のサンプルは、ニコニコカレンダーです。ニコニコカレンダーは、プロジェクトを 進めるときにメンバーの状況や気持ちを把握する方法の1つで、このサンプルはそれを Webアプリケーションとして実現したものです。Railsのアプリケーションとしては、リ スト画面のアレンジの方法、LoginEngineというプラグインやドラッグ&ドロップの使 い方などが参考になるでしょう。
6章のサンプルは体重バーンダウンチャートです。バーンダウンチャートは、プロジェ クトの作業項目や課題について、全体目標からの減り具合の推移を、日や週といった作 業サイクル単位でグラフに表して「見える化」するものです。話題が減量というのはそ れ自体がリアルなのですが、実際のプロジェクトの課題に置き換えてみることも容易に できるでしょう。
7章はプラグインやアプリケーションの紹介です。GoogleマップのWebサービスを使 うプラグインや、Ajaxを使ったScaffold、ブログシステムmephisto、タスク管理システ ムReviewableMindを紹介しています。
以上のように、サンプルアプリケーションはできるだけライフハックの匂いがするも のにしたつもりですが、いかがでしょうか。
Railsのよいところの1つは、まずは基本的な機能が動くアプリケーション全体を生成
CHAPTER 1Railsについて
あるいは作成して、それにアレンジして欲しい機能を作り込んでいくというやり方がで きることです。設計が進んでから新しい要求が見つかっても、破綻せずに少しずつ作り 込んでいくことができます。その間もアプリケーションが動いている状態を維持できる のです。
一方で、Railsはフルスタックつまりすべての構成要素がそろっているのに、それが規 約に基づいて構成されているわけですから、規約に慣れていない最初のうちは、やりた いことを実現するのに、どの場所に手をつければよいかわからないという方も少なくな いでしょう。だからこそガイドが必要になるはず……、そう思ってこのサンプル集を作 ることにしました。
この本のサンプルを試したり、サンプルを参考に自分用のツールを作って楽しんだり した方は、きっとそのころにはRailsの規約とツールになじんているでしょう。
ぜひ、このサンプル集の中でおもしろそうなものがあったら、実際に打ち込んで試し てみてください。自分で作って動かしてみてください。その中から、みなさん自身が新 しい発見をし、「シンプルな仕事のコツ」を増やしてくださることを期待しています。
CHAPTER 1CHAPTER 2CHAPTER3CHAPTER 4CHAPTER 5CHAPTER 6CHAPTER 7APPENDIX 1-7 本書の構成