本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第 1 巻です。2016 年 11 月(ペーパーバック版は同年 12 月)に発行された『Elixir/Phoenix 初級①: はじめの一歩』の改訂版です。2017 年 11 月に小規模な改訂をした第2版、2020 年 1 月に大きな改訂をした第3版が出ています。今回の『改訂新版』と旧シリーズ第3版の差分はあまり大きなものではありません。
主な変更点を列挙すれば、以下のとおりです:
Elixir(エリクサー)はプログラミング言語の名前です。Phoenix(フェニックス)は Elixir で記述された Web アプリケーション開発のためのフレームワークです。どちらも 2010 年代に開発が始まったばかりの「新顔」です。
Elixir と Phoenix は別々の存在なのですが、本シリーズではこれらを同時並行的に解説していきます。ただし、記述の重点は Web アプリケーション開発にあります。Elixir と Phoenix の機能を網羅的に説明したリファレンスではありません。ある具体的な Web サイトを想定し、その完成に向けて作業を進めながらプログラミングを学んでいくというスタイルで書かれています。
読者としては、Web アプリ開発に初めて挑戦する人を想定しています。そのため、HTML、CSS/SCSS、JavaScript、webpack、Bootstrap などの周辺技術についてもかなり丁寧に説明しています。すでに Web サイトの制作・開発に携わっている方々にとっては、既知の話が続く場面があるかもしれませんが、お許しください。
この第 1 巻では、例題として ModestGreeter という Web アプリを作りながら、以下に挙げるテーマについて学習していきます。
最後に、第 1 巻であえて扱わなかった主なテーマを列挙しておきます。
これらはすべて Elixir の「存在価値」と言ってもいいようなものですが、本書の想定読者には高すぎるハードルであると考えました。これらについては、第 2 巻以降でおいおい解説していく予定です。
読者サポートページ本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第 2 巻です。前巻に引き続き、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。例題としてNanoPlannerという簡易予定表管理システムを作ります。
この巻で学ぶ主なテーマを列挙します:
これらのうち、パイプ演算子とパターンマッチングはElixir特有の言語仕様で、慣れるまで時間がかかるかもしれません。Elixir/Phoenixの学習を進める上で鍵となる内容ですので、じっくりと腰を据えて取り組んでいただければと思います。
章ごとの概要は次のようになっています。第1章はNanoPlannerの仕様を説明したイントロダクションです。第2章では、データベース管理システム(DBMS)を選択してPhoenixアプリケーションの骨格を生成し、第3章でフロントエンド開発の基盤を整えます。
第4章と第5章は、NanoPlannerの開発からいったん離れて、Elixir/Phoenixの基礎知識である構造体、コンテキスト、スキーマなどについて学びます。
第6章ではデータベースにシードデータ(初期データ)を投入する方法を紹介します。第7章では、シードデータとして投入された予定項目を一覧表示する機能を作ります。
第8章ではBootstrapのグリッドシステムについて学習します。第9章では、モジュール、無名関数、キャプチャ演算子、パイプ演算子などのElixirの諸概念について解説します。
第10章では、Elixir/Phoenixで日付時刻型のデータを扱う方法について学習します。第11章では、データベースからレコードを取り出す時の並び順を指定する方法を解説します。第12章では、日付時刻型のデータを読みやすく整形する方法について学習します。
第13〜14章ではElixirのパターンマッチングについて集中的に学びます。
読者サポートページ本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第 3 巻です。前巻で作成した簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。ただしこの巻では、Elixirに関する新しい知識はほとんど出てきません。その代わり、Phoenixに関する新たなテーマが次々と登場します。
第1章と第2章では予定の詳細表示ページを作成します。また、予定の日付に曜日を加える方法を解説します。
第3章では「HTMLフォーム」について概要を説明します。Phoenix以外のプラットフォームでWeb開発をした経験のある方にとっては、既知の内容ばかりかもしれません。
第4章のテーマは経路(route)設定です。『初級①』では、GETというタイプのHTTP動詞(HTTP verb)しか扱いませんでしたが、本巻ではPOST、PUT、DELETE、などのHTTP動詞に対応する経路を設定します。また、リソースという概念を利用して複数の関連する経路群を効率よく定義する方法についても紹介します
第5章では、本巻の副題にもなっているフォーム構造体とチェンジセットについて学習します。データベーステーブルにレコードを挿入したり、既存レコードの値を変更する際にこれらの構造体が重要な役割を担います。
第6章から第9章では、それまでに学んだ知識を利用して予定項目の追加・編集機能をNanoPlannerに加えます。第10章では、部分テンプレートを利用してEExテンプレートから重複を取り除く方法について学びます。
第11章では、予定項目の削除機能を実装します。続く第12章では、ユーザーに完了した操作の結果を通知する方法(フラッシュ)とこれから行う操作の確認を通知する方法(@と@)を学びます。
最後の第13章では、仮想フィールドという概念が登場します。この概念自体はそれほど難しくないのですが、そこにセットされた値をデータベースとの間で同期するのにちょっとした工夫が必要になります。この章は、やや手強いかもしれません。
読者サポートページ本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第 4 巻です。第2巻から作り始めた簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
本巻は大きく4つの部分に分かれます。:
第2部(第2章から第5章)では、NanoPlannerに登録された予定項目を特定の条件に基づいて絞り込む方法について学習します。具体的には「今日」という時間範囲の中にある項目だけを一覧表示するにはどうすればいいのかを考えます。簡単そうに思えるかもしれませんが、日付をまたぐ予定項目のことを考慮に入れると、意外に難しいです。
第3部(第6章から第9章)のテーマは真偽値とチェックボックスです。ある時刻に始まりある時刻に終わる予定項目しか扱えなかったNanoPlannerに、「終日」という概念を導入します。その結果、ある日付からある日付まで続く予定項目を管理できるようになります。ユーザーが「終日」チェックボックスをOn/Offしたときのユーザーインターフェースをどうするか、データベースにどのような値を記録すればいいのか、さまざまな側面について検討します。
分量的にもっとも長い第5部(第10章から第15章)では、Phoenixアプリケーションにおけるバリデーション(値の検証)の初歩を学びます。本巻の副題になっていることからもわかるように、本書の山場です。
まず、第10章で「空の件名が入力されたらエラーにする」という仕様を実装します。これは、最も単純なバリデーションです。次に、第11章でBootstrapのスタイルシートを用いてエラーが起きた入力欄のスタイルを変更します。第12章では、Gettextモジュールを用いた国際化について学び、エラーメッセージを日本語で表示できるようにします。第13章から最終章では、NanoPlannerに文字列の長さと日付・日時の前後関係に関してバリデーションを行う機能を追加していきます。
プログラミング言語Elixir自体の学習という側面から見ると、パターンマッチングを用いた関数定義が頻出することが本巻の特徴です。また、皆さんの大好きなパイプ演算子(>)を使って工夫したコーディング例も多く用意しました。関数型プログラミングの楽しさが読者の皆さんに少しでも伝われば幸いです。
読者サポートページ本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第 5 巻です。第2巻から作り始めた簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
本巻のテーマはユーザー認証です。第4巻までにできあがったNanoPlannerは、ひとりのユーザーが自分自身の予定表を管理することしかできませんでした。データベースにユーザー情報を格納するためのテーブルはなく、単に予定表の項目を読み書きするだけのアプリケーションでした。本巻ではNanoPlannerにユーザー概念を追加し、複数のユーザーがそれぞれの予定表を管理できるようにします。
ユーザー認証機能を実現するためにはかなりの量の知識を身につけなければなりません。外部キー、パスワードのハッシュ化、クッキー、セッション、セッショントークン、プラグ、テーブル結合、スキーマ間の関連付け、などです。本巻では、これらのテーマそれぞれについて可能な限り丁寧な説明を試みています。
本巻のもう1つの重要なテーマはテスト駆動開発(TDD)です。「実装の前にテストを書く」というスタイルで行うソフトウェア開発手法です。この手法を実践するための基礎知識として、Elixirに標準で備わっているテストフレームワークExUnitについてかなりのページを割いて解説しました。
さて、筆者が本巻の原稿を書いていたのは、2021年の6月下旬から8月上旬です。まもなくPhoenixの新しいバージョン1.6がリリースされそうな気配になってきた頃です。Phoenix 1.6の目玉の1つが、mix phx.gen.authコマンドです。これは、ユーザー認証機能のためのコードジェネレータです。これを用いれば、既存のPhoenixアプリケーションにユーザー認証機能を簡単に追加できます。本シリーズが対象としているのはPhoenixのバージョンは1.5ですので、初期状態ではこのコマンドは使えませんが、phx_gen_authというライブラリを導入すれば利用可能となります。
構想段階では本書でもmix phx.gen.authコマンドを用いてNanoPlannerにユーザー認証機能を加えるつもりでしたが、ユーザー認証機能の独自実装へと方針転換をしました。このコマンドが生成するソースコード(本書では「標準実装」と呼びます)は単純で読みやすいものではありますが、本書が想定する読者のレベルにとってはそれでも複雑過ぎると私は考えました。初級者にとって大切なことはユーザー認証の原理を理解することです。ゼロから試行錯誤を経てユーザー認証機能を作り上げる経験を少なくとも一度は積むべきです。
ただし、「独自実装」と言っても、標準実装から大きく離れるわけではありません。最終的に出来上がるものは標準実装の機能限定版です。本巻でNanoPlannerに追加したモジュールや関数の多くは、標準実装からほぼそのままの形でコピーしたものです。読者の皆さんが将来mix phx.gen.authコマンドを利用する際には、本巻を読んで得た経験が役に立つでしょう。
読者サポートページ本書は、『Elixir/Phoenix 初級』シリーズの第 1 巻です。Elixir(エリクサー)はプログラミング言語の名前です。Phoenix(フェニックス)は Elixir で記述された Web アプリケーション開発のためのフレームワークです。どちらも 2010 年代に開発が始まったばかりの「新顔」です。
Elixir と Phoenix は別々の存在なのですが、本シリーズではこれらを同時並行的に解説していこうと考えています。ただし、記述の重点は Web アプリケーション開発にあります。Elixir と Phoenix の機能を網羅的に説明したリファレンスではありません。ある具体的な Web サイトを想定し、その完成に向けて作業を進めながらプログラミングを学んでいくというスタイルで書かれています。
読者としては、Web アプリ開発に初めて挑戦する人を想定しています。そのため、HTML、CSS/SCSS、JavaScript、Bootstrap などの周辺技術についてもかなり丁寧に説明しています。すでに Web サイトの制作・開発に携わっている方々にとっては、既知の話が続く場面があるかもしれませんが、お許しください。
さて、本書には Elixir と Ruby を比較する記述がところどころにあります。また Phoenix についての説明をした後で、しばしば「Ruby on Rails ではこう書く」という感じの注釈を加えています。Elixir と Phoenix は Ruby と Ruby on Rails から強い影響を受けており、外見的にかなり似たところがあります。そのため Ruby on Rails 開発の経験者が本書を読むケースも多いだろうと考え、このような書き方を採用しました。しかし、Ruby および Ruby on Rails の知識は本シリーズを読むための前提ではありません。
この第 1 巻では、例題として ModestGreeter という Web アプリを作りながら、以下に挙げるテーマについて学習していきます。
* Elixir: 変数、モジュール、関数、リスト、タプル、キーワードリスト、マップ、シジル、caseマクロ、など
* Phoenix: 経路、アクション、ビューモジュール、テンプレート、パスヘルパー、など
* HTML: タグ、要素、属性、など
* CSS: セレクタ、宣言、マージン、パディング、背景色、など
* その他: webpack、Bootstrap、Font Awesome、など
最後に、第 1 巻であえて扱わなかった主なテーマを列挙しておきます。
* パターンマッチング
* パイプ演算子
* 再帰
* 並行プログラミング
これらはすべて Elixir の「存在価値」と言ってもいいようなものですが、本書の想定読者には高すぎるハードルであると考えました。これらについては、第 2 巻以降でおいおい解説していく予定です。
読者サポートページ本書は、『Elixir/Phoenix初級』シリーズの第4巻です。第2巻から作り始めた簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
本巻は大きく5つの部分に分かれます。
1. 本巻で実装する機能拡張の仕様説明(第1章)
2. Phoenix 1.4へのアップグレード(第2章から第4章)
3. 「今日の予定表」を表示する機能を実装(第5章から第8章)
4. 予定項目に「終日」フラグを追加する仕様変更(第9章から第12章)
5. バリデーションとエラーメッセージの表示(第13章から第18章)
第2部(第2章から第4章)では、Phoenixのバージョンを1.3から1.4にアップグレードします。前巻で行った1.2から1.3へのアップグレードと比べると作業量は少ないのですが、フロントエンドビルドツールがBrunchからwebpackに切り替わったので、手順はそれなりに複雑です。
第3部(第5章から第8章)では、NanoPlannerに登録された予定項目を特定の条件に基づいて絞り込む方法について学習します。具体的には「今日」という時間範囲の中にある項目だけを一覧表示するにはどうすればいいのかを考えます。簡単そうに思えるかもしれませんが、日付をまたぐ予定項目のことを考慮に入れると、意外に難しいです。
第4部(第9章から第12章)のテーマは真偽値とチェックボックスです。ある時刻に始まりある時刻に終わる予定項目しか扱えなかったNanoPlannerに、「終日」という概念を導入します。その結果、ある日付からある日付まで続く予定項目を管理できるようになります。ユーザーが「終日」チェックボックスをOn/Offしたときのユーザーインターフェースをどうするか、データベースにどのような値を記録すればいいのか、さまざまな側面について検討します。
分量的にもっとも長い第5部(第13章から第18章)では、Phoenixアプリケーションにおけるバリデーション(値の検証)の初歩を学びます。本巻の副題になっていることからもわかるように、本書の山場です。
まず、第13章で「空の件名が入力されたらエラーにする」という仕様を実装します。これは、最も単純なバリデーションです。次に、第14章でBootstrapのスタイルシートを用いてエラーが起きた入力欄のスタイルを変更します。第15章では、Gettextモジュールを用いた国際化について学び、エラーメッセージを日本語で表示できるようにします。第16章から最終章では、NanoPlannerに文字列の長さと日付・日時の前後関係に関してバリデーションを行う機能を追加していきます。
プログラミング言語Elixir自体の学習という側面から見ると、パターンマッチングを用いた関数定義が頻出することが本巻の特徴です。また、皆さんの大好きなパイプ演算子を使って工夫したコーディング例も多く用意しました。関数型プログラミングの楽しさが読者の皆さんに少しでも伝われば幸いです。
読者サポートページ本書は、『Elixir/Phoenix初級』シリーズの第3巻です。前巻で作成した簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
ただしこの巻では、Elixirに関する新しい知識はほとんど出てきません(第3章で触れるコードフォーマッターとモジュール属性の話を例外として)。その代わり、Phoenixに関する新たなテーマが次々と登場します。
本巻は、大きくふたつの部分に分けられます。全体の5分の1程度を占める前半部分(第1章から第4章)では、Phoenixのバージョンを1.2から1.3にアップグレードする手順を解説します。具体的には、Phoenix 1.3で採用された新しいディレクトリ構造と命名規則に合わせてNanoPlannerのソースコードを書き換えていきます。 その過程で、「コンテキスト」という新しい概念について学習します。
後半部分(第5章から第15章)で、本巻の副題にもなっているフォーム構造体とチェンジセットについて学習します。そのための演習として、私たちは予定項目を追加・編集・削除する機能をNanoPlannerに加えていきます。
第5章では「HTMLフォーム」について概要を説明します。Phoenix以外のプラットフォームでWeb開発をした経験のある方にとっては、既知の内容ばかりかもしれません。第6章のテーマは経路(route)設定です。『初級1』では、GETというタイプのHTTP動詞(HTTP verb)しか扱いませんでしたが、本巻ではPOST、PUT、DELETE、などのHTTP動詞に対応する経路を設定します。 また、リソースという概念を利用して複数の関連する経路群を効率よく定義する方法についても紹介します。
第7章では、チェンジセットと呼ばれる構造体について学習します。データベーステーブルにレコードを挿入したり、既存レコードの値を変更する際にこの構造体が重要な役割を担います。
第8章から第11章では、それまでに学んだ知識を利用して予定項目の追加・編集機能をNanoPlannerに加えます。第12章では、部分テンプレートを利用してEExテンプレートから重複を取り除く方法について学びます。
第13章では、予定項目の削除機能を実装します。続く第14章では、ユーザーに完了した操作の結果を通知する方法(フラッシュ)とこれから行う操作の確認を通知する方法(ポップアップとモーダル)を学びます。
最後の第15章では、仮想フィールドという概念が登場します。この概念自体はそれほど難しくないのですが、そこにセットされた値をデータベースとの間で同期するのにちょっとした工夫が必要になります。この章は、やや手強いかもしれません。
読者サポートページ本書は、『Ruby on Rails 5.0初級』シリーズの第4巻です。前巻に引き続き、簡易予定表管理システムPicoPlannerの開発を行いながら、RailsにおけるHTMLフォームの取り扱い方について学んでいきます。
導入部に当たる第1章を除くと、この巻の内容は三つの部分に分類できます。
「今日の予定表」機能とは、今日始まる予定項目および昨日以前に始まって継続中の予定項目をリスト表示する機能です。この機能を実装する過程で、私たちは「七つの基本アクション」に含まれないアクションを定義する方法、時刻を基準としてデータベースのレコードを絞り込む方法、BootstrapのNavコンポーネントの使い方、などの知識を得ます。
続いて、「終日」フラグの導入により、一日中続く予定項目や開始と終了の時刻がはっきりしない予定項目をPicoPlannerで扱えるようにします。ここでのメインの学習目標は、ブーリアン(真偽値)という型の値をRailsおよびデータベースで扱う方法です。また、HTMLフォームにチェックボックスを設置する方法、jQueryを利用してチェックボックスの状態に応じてフォームの一部の表示・非表示を切り替える方法についても学びます。
最後に、Railsのバリデーション機能について学びます。この機能自体はそんなに複雑なものではありませんが、現実のWebアプリケーション開発で応用しようとするとさまざまな工夫が必要となります。特に、日付や時刻に関わるバリデーションを丁寧に説明しました。
また、バリデーションが失敗したことをユーザーに知らせるため、フォームのビジュアルデザインを制御する方法についても丁寧に説明しました。ラベル文字列や入力欄の枠線に色を付けたり、日本語でエラーメッセージを表示しながら、RailsとBootstrapのさまざまな小技を学んで行くことになります。
特に、第12章「フォームビルダーの拡張」では、オブジェクト指向プログラミングの「華」とも言える「委譲(delegation)」という概念が本シリーズで初めて登場します。初めての方は理解するのに少し時間を要するかもしれませんが、大事なところなのでじっくりと腰を据えて取り組んでいただきたいと思います。
本書を読み終えた読者は、OIAX BOOKSの『Ruby on Rails 5.0 初級⑤』(2017年秋〜冬刊行予定)に進んでください。
扉・目次・奥付を除いた本文の分量はB5変型判(一般的なコンピュータ書の判型)で186ページ相当です。
読者サポートページ本書は、2016 年に刊行された『Ruby on Rails 5.0 インストール手順書』の改訂版に当たります。記述の対象が、2017 年にリリースされた Ruby on Rails 5.1 になっています。
ターミナルの使い方、基本的なシェルコマンドの説明から始まり、Ruby および Ruby on Rails のインストール、Ruby プログラムの実行方法、Rails サーバーの起動と終了までが本書の範囲です。
これから Ruby on Rails の学習を始めようとしている初学者向けに、学習と開発の環境を整える方法をまとめた解説書です。RubyおよびRuby on Rails自体についてはほとんど説明していませんので、その点ご了承ください。
『Ruby on Rails 5.0 インストール手順書』との相違点をまとめると、次のようになります。
* 第2章「準備作業(macOS 編)」を設けた。
* データベース管理システム(PostgreSQL および MySQL)のセットアップ方法を解説した。
* Webpacker、React、Angular、Vue.js のセットアップ方法を解説した。
対象となるOSおよびソフトウェアのバージョンは以下のとおりです:
* macOS Sierra v10.12
* OS X v10.11 El Capitan
* OS X v10.10 Yosemite
* Ubuntu Desktop 16.04 LTS (64-bit)
Windowsは直接の対象となっていませんが、 VirtualBoxを利用してWindows上にUbuntuの仮想環境を構築すれば、本書を使って学習を進めることができます。ただし、VirtualBoxのインストール方法や使い方については本書では解説しません。OIAX BOOKSの『VirtualBox/Ubuntu スタートアップガイド』を参照してください。Kindle版とペーパーバック版があります。
本書は、『Ruby on Rails 5.0 インストール手順書』の増補改訂版にあたります。B5版で60ページ相当の内容が追加されています。第 1 章から第 15 章までについては、大きな変更点はありません。
【Rails のバージョンについて】
本書 Kindle 版のバージョン 1 の内容は、プレリリース版である Ruby on Rails 5.1.0.rc1 がもとになっています。Rails 5.1 が正式リリースされましたら、あまり時間をおかずに、本書の改訂版を出す予定です。
※当面の間、紙版(ペーパーバック版)を出す予定はありません。
読者サポートページ本書は、VirtualBoxとUbuntuをWindowsパソコンに導入する手順を丁寧にまとめた初心者向けの解説書です。多数のスクリーンショットを掲載した点が特長です。
本書が想定している主な読者は、これからRubyやPHPを用いてWebアプリの開発に取り組みたいと考えている方々です。RubyやPHPの開発現場ではLinuxの世界で生まれたソフトウェアが使われることが多いので、WindowsユーザーもはじめからLinuxの環境で学習する方がいいと筆者は考えています。
そこで登場するのがVirtualBoxとUbuntuです。
VirtualBox(バーチャルボックス)は、「仮想マシン」を作るソフトウェアです。あなたのWindowsパソコンの上に「仮想マシン」を作れば、そこに別のOSをインストールできます。他方、Ubuntu(ウブントゥ)はLinuxをベースとするOSの一種です。VirtualBoxで作られた「仮想マシン」の上にインストールすることができます。
筆者が多くのLinux系OSの中からUbuntuを選んだのには理由があります。UbuntuはデスクトップPC向けのOSとして人気があると同時に、サーバコンピュータ向けのOSとしても広く普及しています。最終的にWebアプリはサーバコンピュータに設置されてインターネットに向けて公開されます。開発環境と本番環境を同一のOSで揃えることには、多くのメリットがあります。
本書は全部で8章から構成されています。最初の3章でVirtualBoxとUbuntuのインストールを行い、第4章でUbuntuの基本的な操作法を学習します。そして、最後の4章でディスプレイ、外観、共有フォルダ、ネットワークなどの設定方法を解説します。
読者サポートページ本書は、『Elixir/Phoenix初級』シリーズの第2巻です。前巻に引き続き、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。例題としてNanoPlannerという簡易予約表管理システムを作ります。
この巻で学ぶ主なテーマを列挙します:
* Elixir: 構造体、無名関数、パイプ演算子、パターンマッチング
* Phoenix: モデルモジュール、シードデータの投入、クエリ構造体、日付と時刻
* その他: timexライブラリ、タイムゾーン、Bootstrapのグリッドシステム
これらのうち、パイプ演算子とパターンマッチングはElixir特有の言語仕様で、慣れるまで時間がかかるかもしれません。Elixir/Phoenixの学習を進める上で鍵となる内容ですので、じっくりと腰を据えて取り組んでいただければと思います。
【注意事項】
本巻は『Elixir/Phoenix初級①』とは内容的に独立しています。前巻で例題として作成したWebアプリModestGreeterの開発を続けるのではなく、別のWebアプリを最初から作っていくので、『初級①』を読んでいなくても本書での学習を進めることができます。
しかし、本文の中でしばしば『初級①』を参照していますし、『初級①』で説明したことについてはごく手短に済ませたり、解説を省いたりしています。できれば『初級①』を手元において必要に応じて復習しながら学習を続けることをお勧めします。
本書は、OIAX BOOKSの既刊『Ruby on Rails 5.0初級②』をベースに、内容をElixirとPhoenix向けに書き直したものです。そのため、本文の一部に重複があります。特に、Bootstrapに関して説明した部分は『Ruby on Rails 5.0初級②』の該当部分とほとんど同じです。あらかじめご了承ください。
読者サポートページ本書は、『Ruby on Rails 5.0 初級』シリーズの第3巻です。副題「HTMLフォーム(前編)」が示すように、この巻のメインテーマは、HTMLフォームです。ブラウザの画面上に配置された入力欄に対してユーザーが文字列を入力し、「送信」ボタンをクリックするといったユーザーインターフェースの作り方を学びます。また、HTMLフォームを通じて送信されたデータを処理する「アクション」の書き方についても学習します。「Parametersオブジェクト」という概念の理解が鍵になります。
第二のテーマは、モデルオブジェクトやHTMLフォームを扱うための経路(route)の書き方です。『初級①』では、GETというタイプのHTTP動詞(HTTP verb)しか扱いませんでしたが、本巻ではPOST、PATCH、DELETE、などのHTTP動詞に対応する経路を設定します。また、リソースという概念を利用して複数の関連する経路群を効率よく定義する方法についても紹介します。
第三のテーマは、部分テンプレートとプライベートメソッドです。いずれも重複部分を共通化して、ソースコードを読みやすくするために利用します。複雑なWebアプリを開発する上で非常に重要なところです。
第四のテーマは、ユーザーが日付と時刻を入力するテキスト入力欄のデザインです。第5章でDate/Time PickerというJavaScriptライブラリを利用して「カレンダーと時計」のように見えるウィジェットを導入します。また、最終章では日付と時刻の入力欄を分離する方法について紹介します。
この巻の内容は前巻『Ruby on Rails 5.0初級②』から続いています。前巻で作ったWeb アプリ(簡易予約表管理システムPicoPlanner)の開発をさらに進めていきます。
本書を読み終えた読者は、OIAX BOOKSの『Ruby on Rails 5.0 初級④』(2017年春刊行予定)に進んでください。
扉・目次・奥付を除いた本文の分量はB5変型判(一般的なコンピュータ書の判型)で155ページ相当です。
読者サポートページ本書は、『Ruby on Rails 5.0 初級』シリーズの第 2 巻です。この巻のメインテーマは、モデルオブジェクトとリレーションオブジェクトです。プログラミング言語 Ruby では、文字列、整数値、日付などのデータを総称してオブジェクトと呼びます。このオブジェクトに新しい仲間が加わるというわけです。モデルオブジェクトとリレーションオブジェクトは「データベース」に関わるオブジェクトです。この巻では、データベースの初歩についても学習します。
サブテーマとして、「日付と時刻」の扱い方を学びます。文字列や整数といったオブジェクトと比べて、「日付と時刻」はやや複雑なオブジェクトです。もうひとつのサブテーマは、条件分岐です。「もし A なら X を評価し、そうでなければ Y を評価する」といった処理を Ruby で記述する方法について解説します。
以上が Ruby on Rails に直接関連する学習テーマですが、その他に『初級①』で初歩を学んだ Bootstrap のグリッドシステム(grid system)が重要テーマとなります。これを活用すれば、ブラウザの表示幅に応じてレイアウトを柔軟に変化させるレスポンシブウェブデザイン(responsive web design)を簡単に実現できます。
この巻は前巻『Ruby on Rails 5.0 初級①』から内容的に独立しています。前巻で作ったのとは別の Web アプリ(簡易予約表管理システム PicoPlanner)を最初から作っていきます。ですから、前巻を読んでいなくてもこの巻を用いて学習を進めることはできます。しかし、しばしば本文の中で『初級①』を参照していますし、『初級①』で説明したことについてはごく手短に済ませたり、解説を省いたりしています。できれば、『初級①』を手元において、復習しながら学習を続けることをお勧めします。
本書を読み終えた読者は、OIAX BOOKS の『Ruby on Rails 5.0 初級③』(2016 年冬刊行予定)に進んでください。
扉・目次・奥付を除いた本文の分量は B5 変型判(一般的なコンピュータ書の判型)で 140 ページ相当です。
読者サポートページ本書は、『Ruby on Rails 5.0 初級』シリーズの第 1 巻です。このシリーズでは、Ruby on Rails バージョン 5.0 について初心者向けに解説します。Web アプリ開発にに初めて挑戦する人を読者として想定しています。単に Ruby on Rails のことだけを説明するのではなく、HTML、CSS、JavaScript などの周辺技術についても触れながら、ゆったりとしたペースで話を進めていくつもりです。 Ruby on Rails の知識をストレートに学びたい方は、もしかするとじれったく感じるかもしれません。
この第 1 巻では、例題として SimpleGreeter という Web アプリを作りながら、変数、オブジェクト、メソッド、ブロック、クラス、配列、ハッシュ、経路、アクション、テンプレートといった Ruby と Ruby on Rails の基本的な概念に慣れていただきます。またそれと並行して、HTML、CSS、Bootstrap、Font Awesome などの周辺技術に関しても理解を深めていただきます。
読者サポートページRuby on Rails 5.0の学習をこれから始めようという方のための本です。 ターミナルの使い方、基本的なLinuxコマンドの説明から始まり、 RubyおよびRuby on Railsのインストール、 Rubyプログラムの実行方法、 Railsサーバーの起動と終了までが本書の範囲です。
本書を読み終えた読者は、 OIAX BOOKSの『Ruby on Rails 5.0 初級①』に進んでください。
読者サポートページ本書は、テキストエディタAtomの基本的な使い方をまとめた入門書です。 これからプログラミングの学習を始めようという方を読者として想定しています。 Atomの機能を網羅的に解説することを意図したものではありません。 むしろ、初心者でも使い勝手のある機能だけを選んで紹介しています。
本書の内容はAtomバージョン1.8.0(2016年6月6日リリース)に基づいています。
読者サポートページ