本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第 1 巻です。2016 年 11 月(ペーパーバック版は同年 12 月)に発行された『Elixir/Phoenix 初級①: はじめの一歩』の改訂版です。2017 年 11 月に小規模な改訂をした第2版、2020 年 1 月に大きな改訂をした第3版が出ています。今回の『改訂新版』と旧シリーズ第3版の差分はあまり大きなものではありません。
主な変更点を列挙すれば、以下のとおりです:
本書は、『改訂新版 Elixir/Phoenix初級』シリーズの第2巻です。前巻に引き続き、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。例題としてNanoPlannerという簡易予定表管理システムを作ります。
この巻で学ぶ主なテーマを列挙します:
これらのうち、パイプ演算子とパターンマッチングはElixir特有の言語仕様で、慣れるまで時間がかかるかもしれません。Elixir/Phoenixの学習を進める上で鍵となる内容ですので、じっくりと腰を据えて取り組んでいただければと思います。
本書は、『改訂新版 Elixir/Phoenix初級』シリーズの第3巻です。前巻で作成した簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。ただしこの巻では、Elixirに関する新しい知識はほとんど出てきません。その代わり、Phoenixに関する新たなテーマが次々と登場します。
本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第4巻です。第2巻から作り始めた簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
本書は、『改訂新版 Elixir/Phoenix 初級』シリーズの第5巻です。第2巻から作り始めた簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
【注意】タイトルに「改訂新版」という文字がありますが、この巻には対応する旧版がありません。諸事情により旧シリーズは第4巻までしか出版されませんでした。つまり、本書のタイトルには「改訂新版」の文字が含まれていますが、実際には初版です。旧シリーズと新シリーズの関係については、この後の「『改訂新版 Elixir/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 初級』シリーズについて
『Elixir/Phoenix 初級』シリーズは2016年11月より刊行が始まりました。全5巻を出版する計画でしたが、2018年10月の第4巻を最後に続編を出せていませんでした。その間にもElixir、Phoenix、その他のソフトウェアやライブラリの開発が進みましたので、このまま『Elixir/Phoenix 初級』シリーズの第5巻を出しても、2021年の開発環境に合った内容にならないおそれがあります。
そこで、2021年2月より新たに『改訂新版 Elixir/Phoenix 初級』という名称で新たなシリーズを開始することにいたしました。旧シリーズの完結を待っていただいていた読者の皆様にはお詫びいたします。
本巻『改訂新版 Elixir/Phoenix 初級⑤: ユーザー認証』は、新シリーズのために新たに書かれたものです。すなわち、この巻に対応する旧版はありません。
本書は、『Elixir/Phoenix 初級』シリーズの第 1 巻です。Elixir(エリクサー)はプログラミング言語の名前です。Phoenix(フェニックス)は Elixir で記述された Web アプリケーション開発のためのフレームワークです。どちらも 2010 年代に開発が始まったばかりの「新顔」です。
Elixir と Phoenix は別々の存在なのですが、本シリーズではこれらを同時並行的に解説していこうと考えています。ただし、記述の重点は Web アプリケーション開発にあります。Elixir と Phoenix の機能を網羅的に説明したリファレンスではありません。ある具体的な Web サイトを想定し、その完成に向けて作業を進めながらプログラミングを学んでいくというスタイルで書かれています。
本書は、『Elixir/Phoenix初級』シリーズの第4巻です。第2巻から作り始めた簡易予定表管理システムNanoPlannerの機能拡張を進めながら、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。
本書は、『Elixir/Phoenix初級』シリーズの第3巻です。前巻で作成した簡易予定表管理システムNanoPlannerの機能拡張を進めながら、 プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。 ただしこの巻では、Elixirに関する新しい知識はほとんど出てきません(第3章で触れるコードフォーマッターとモジュール属性の話を例外として)。 その代わり、Phoenixに関する新たなテーマが次々と登場します。
本書は、『Ruby on Rails 5.0 初級』シリーズの第4巻です。前巻に引き続き、簡易予定表管理システムPicoPlannerの開発を行いながら、RailsにおけるHTMLフォームの取り扱い方について学んでいきます。
本書は、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自体についてはほとんど説明していませんので、その点ご了承ください。
※当面の間、紙版(ペーパーバック版)を出す予定はありません。
VirtualBox 5とUbuntu 16.04をWindows 10/8.1にインストールする手順の解説書。 多数のスクリーンショット付き。初心者向け。
本書は、『Elixir/Phoenix初級』シリーズの第2巻です。前巻に引き続き、プログラミング言語ElixirとWebアプリケーション開発フレームワークPhoenixの学習を並行的に進めていきます。例題としてNanoPlannerという簡易予約表管理システムを作ります。
この巻で学ぶ主なテーマを列挙します:
* Elixir: 構造体、無名関数、パイプ演算子、パターンマッチング
* Phoenix: モデルモジュール、シードデータの投入、クエリ構造体、日付と時刻
* その他: timexライブラリ、タイムゾーン、Bootstrapのグリッドシステム
これらのうち、パイプ演算子とパターンマッチングはElixir特有の言語仕様で、慣れるまで時間がかかるかもしれません。Elixir/Phoenixの学習を進める上で鍵となる内容ですので、じっくりと腰を据えて取り組んでいただければと思います。
本書は、『Ruby on Rails 5.0 初級』シリーズの第3巻です。副題「HTMLフォーム(前編)」が示すように、この巻のメインテーマは、HTMLフォームです。ブラウザの画面上に配置された入力欄に対してユーザーが文字列を入力し、「送信」ボタンをクリックするといったユーザーインターフェースの作り方を学びます。また、HTMLフォームを通じて送信されたデータを処理する「アクション」の書き方についても学習します。「Parametersオブジェクト」という概念の理解が鍵になります。
この巻の内容は前巻『Ruby on Rails 5.0初級②』から続いています。前巻で作ったWeb アプリ(簡易予約表管理システムPicoPlanner)の開発をさらに進めていきます。
本書は、『Ruby on Rails 5.0 初級』シリーズの第 2 巻です。この巻のメインテーマは、モデルオブジェクトとリレーションオブジェクトです。プログラミング言語 Ruby では、文字列、整数値、日付などのデータを総称してオブジェクトと呼びます。このオブジェクトに新しい仲間が加わるというわけです。モデルオブジェクトとリレーションオブジェクトは「データベース」に関わるオブジェクトです。この巻では、データベースの初歩についても学習します。
サブテーマとして、「日付と時刻」の扱い方を学びます。文字列や整数といったオブジェクトと比べて、「日付と時刻」はやや複雑なオブジェクトです。もうひとつのサブテーマは、条件分岐です。「もし A なら X を評価し、そうでなければ Y を評価する」といった処理を Ruby で記述する方法について解説します。
本書は、『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 初級①』(2016年夏刊行予定)に 進んでください。
扉・目次・奥付を除いた本文の分量は B5変型判(一般的なコンピュータ書の判型)で112ページ相当です。
本書は、テキストエディタAtomの基本的な使い方をまとめた入門書です。 これからプログラミングの学習を始めようという方を読者として想定しています。 Atomの機能を網羅的に解説することを意図したものではありません。 むしろ、初心者でも使い勝手のある機能だけを選んで紹介しています。
本書の内容はAtomバージョン1.8.0(2016年6月6日リリース)に基づいています。