本書は、『Elixir/Phoenix初級』シリーズの第4巻です。第2巻から作り始めた簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
本巻は大きく5つの部分に分かれます。
第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ページ相当です。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページ本書は、『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初級②』の該当部分とほとんど同じです。あらかじめご了承ください。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページ本書は、『Ruby on Rails 5.0 初級』シリーズの第3巻です。副題「HTMLフォーム(前編)」が示すように、この巻のメインテーマは、HTMLフォームです。ブラウザの画面上に配置された入力欄に対してユーザーが文字列を入力し、「送信」ボタンをクリックするといったユーザーインターフェースの作り方を学びます。また、HTMLフォームを通じて送信されたデータを処理する「アクション」の書き方についても学習します。「Parametersオブジェクト」という概念の理解が鍵になります。
第二のテーマは、モデルオブジェクトやHTMLフォームを扱うための経路(route)の書き方です。『初級1』では、GETというタイプのHTTP動詞(HTTP verb)しか扱いませんでしたが、本巻ではPOST、PATCH、DELETE、などのHTTP動詞に対応する経路を設定します。また、リソースという概念を利用して複数の関連する経路群を効率よく定義する方法についても紹介します。
第三のテーマは、部分テンプレートとプライベートメソッドです。いずれも重複部分を共通化して、ソースコードを読みやすくするために利用します。複雑なWebアプリを開発する上で非常に重要なところです。
第四のテーマは、ユーザーが日付と時刻を入力するテキスト入力欄のデザインです。ch05_date_time_pickerでDate/Time PickerというJavaScriptライブラリを利用して「カレンダーと時計」のように見えるウィジェットを導入します。また、最終章では日付と時刻の入力欄を分離する方法について紹介します。
本書を読み終えた読者は、OIAX BOOKS の『Ruby on Rails 5.0 初級4』(2017年春刊行予定)に進んでください。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページ本書は、『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: セレクタ、宣言、マージン、パディング、背景色、など
* その他: Brunch、Bootstrap、Font Awesome、など
最後に、第 1 巻であえて扱わなかった主なテーマを列挙しておきます。
* パターンマッチング
* パイプ演算子
* 再帰
* 並行プログラミング
これらはすべて Elixir の「存在価値」と言ってもいいようなものですが、本書の想定読者には高すぎるハードルであると考えました。これらについては、第 2 巻以降でおいおい解説していく予定です。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページ本書は、『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 年冬刊行予定)に進んでください。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページ本書は、『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 などの周辺技術に関しても理解を深めていただきます。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページ本書は、テキストエディタAtomの基本的な使い方をまとめた入門書です。 これからプログラミングの学習を始めようという方を読者として想定しています。 Atomの機能を網羅的に解説することを意図したものではありません。 むしろ、初心者でも使い勝手のある機能だけを選んで紹介しています。
本書の内容はAtomバージョン1.8.0(2016年6月6日リリース)に基づいています。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページRuby on Rails 5.0の学習をこれから始めようという方のための本です。 ターミナルの使い方、基本的なLinuxコマンドの説明から始まり、 RubyおよびRuby on Railsのインストール、 Rubyプログラムの実行方法、 Railsサーバーの起動と終了までが本書の範囲です。
本書を読み終えた読者は、 OIAX BOOKSの『Ruby on Rails 5.0 初級①』に進んでください。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページVirtualBox 5とUbuntu 16.04をWindows 10/8.1にインストールする手順の解説書。 多数のスクリーンショット付き。初心者向け。
なお、本書の内容は同名の電子書籍(Kindle版)とほぼ同等です。
読者サポートページ