はじめの一歩
本書は、『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 巻以降でおいおい解説していく予定です。