著者:黒田 努
ページ数:380
¥1,250 → ¥0
本書は『改訂新版 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 初級⑤: ユーザー認証』は、新シリーズのために新たに書かれたものです。すなわち、この巻に対応する旧版はありません。
本書の構成
- はじめに
- 第1章 この巻の目標
- 第2章 Userスキーマ
- 第3章 ExUnit (1)
- 第4章 ユーザー認証
- 第5章 クッキーとセッション
- 第6章 セッショントークン
- 第7章 ExUnit (2)
- 第8章 プラグ(1)
- 第9章 プラグ(2)
- 第10章 ログイン・ログアウト
- 第11章 ExUnit (3)
- 第12章 ユーザーと予定項目の関連付け
- 第13章 キーワードクエリ構文とテーブル結合
- 第14章 スキーマ間の関連付け
- 付録A 各種ソフトウェアのインストール
ソフトウェアのバージョン
本書は、以下のバージョンのソフトウェアで動作確認しています。
- Erlang/OTP 23.3
- Elixir 1.11.4
- Phoenix 1.5.8
- PostgreSQL 12.6
- MariaDB 10.5
- Node.js 14.16
- npm 7.11
- webpack 4.41
対象 OS
本書が対象とするオペレーティング・システム(OS)は以下の 3 種類です。
- macOS Big Sur v11
- macOS Catalina v10.15
- Ubuntu Desktop 20.04 LTS (64-bit)
Windows は直接の対象となっていませんが、Windows Subsytem for Linux 2(WSL2)または Oracle VM VirtualBox(VirtualBox)を利用して Windows 上に Ubuntu の仮想環境を構築すれば、本書を使って学習を進めることができます。ただし、WSL2 および VirtualBox のインストール方法や使い方については本書では解説しません。
OIAX BOOKS について
OIAX BOOKS は、2016 年 4 月に株式会社オイアクス(現在の株式会社コアジェニック)が創刊したコンピュータ書レーベルです。同社の専門分野である Ruby on Rails および Elixir/Phoenix とその周辺領域を中心に、最新の技術情報を読者のみなさまにお届けしてまいります。
シリーズ一覧
この期間中は料金が980円→0円となるため、この記事で紹介している電子書籍は、すべてこのKindle Unlimited無料体験で読むことが可能です。