2020年6月5日、「Elixirへのいざない」という商業書籍を出版しました。
インプレスR&Dさんの「技術の泉」シリーズとしての出版です。
技術書典7で頒布した技術同人誌「PhoenixLiveViewとNervesをさわるElixirへのいざない」を底本した書籍となっています。 ただし、同人誌版からはElixir/Phoenix/Nervesのバージョンをアップして書いてあります。
書籍の詳細はこちらで。
謝辞
商業出版に関して、出版社のインプレスR&Dの方々にはお礼申しあげます。
また、引越し等でプライベートで忙しかったにも関わらず、商業版の表紙を仕上げてくださった「もち子」さんにも感謝しております。
さいごに、締め切りに直前に執筆の進捗を気にしてある程度の自由時間をくれた妻よ、どうもありがとう。*1
リリース掲載のリンク
こちらのサイトに掲載されたようです。*2
変更/加筆について
商業版の出版にあたり、同人誌版から変更/加筆をしています。
Elixirやフレームワークのバージョンアップ対応
「Elixirへのいざない」は、技術書典7の技術同人誌版を底本にしています。 しかしながら、同人誌版執筆時期の「2019年9月1日」からは半年以上も経過しており、その間にPhoenixやNerves、何よりもElixir自体のバージョンアップ*3が行われていました。
できれば、購入された方が読むときには、最新のバージョンに対応しておきたい。 そんな想いから、商業版の締め切りギリギリまで、バージョンアップ対応を行いました。*4
なお、バージョン対応は以下のようになっています。
名前 | 技術同人誌版 | 商業誌版 |
---|---|---|
Elixir | 1.9系 | 1.10系 |
Erlang | 22.0系 | 22.3系 |
Node.js | 10系 | 12系 |
Phoenix | 1.4系 | 1.5系(1.5.1) |
Phoenix LiveView | 0.1.1 | 0.12.1 |
Nerves | 1.5系 | 1.6系(1.6.1) |
ちなみに、このブログを書いている2020年6月6日時点では、Phoenix LiveViewは0.13系になっている*5ので、若干複雑な気持ちではあります。
変更について
バージョンアップ対応をしたことによって、記述内容に齟齬が出た部分は修正しました。
ちなみに、変更箇所で一番差分が大きかったのは、Phoenix LiveViewの箇所でした。
なにせ、Phoenix LiveViewの設定が、Phoenix 1.4の際にはすべて手動で設定しなければならなかったのに対して、Phoenix 1.5ではプロジェクト生成時にオプション付与できるようになったからです。
これによって、同人誌版のウリであった「Phoenix LiveViewの設定」についての記述は、「おまけ情報」に降格することになりました...。
また、同人誌版の記載時はLiveViewにバージョンニングがされたばかりでしたが、あれよと言う間にどんどんバージョンが上がり、そして設定時の記述内容や関数の引数などにも変更が入っていました。 加えて、公式GitHubページのサンプルコードも最新版のコードに対応するように変更されていました。
このため、サンプルとして提示していたソースコードにも手を入れて動くように修正しました。
ここの変更対応が、商業版の執筆における一番の苦労箇所でした。
加筆について
商業版の出版に際して、以下の内容を加筆しました。
- 1章: Elixirを体験する
- 3章: Phoenixを体験する
- 4章: Phoenix LiveViewを体験する
- LiveVIewで定期的な画面更新をする例
- 「Collocatiing templates」 の機能を利用する例(※定期的な画面更新をする例とセット)
- 5章: Nervesを体験する
- nerves_packとnerves_init_gadgetについての説明
ちなみに、第1章で例を多く増やした理由は、PhoenixやNervesで利用するコードの内容を理解しやすくするためです。 特に、アトム/タプル/マップは関数の引数や戻り値で多用されています。ですので、これらの説明を入れたほうがソースコードの理解には良いかなと考えました。
画像について
細かい点ではありますが、同人誌版はモノクロであったのに対して、商業版はカラーになっています。
表紙について
同人誌版に引き続き、もち子さん( @btmochico )に描いて頂きました。
これは、同人誌版との関係がわかるために、えりいざちゃん達を表紙にしたかったと言うのが大きいです。 それと、もち子さんが転職活動中という話を聞いていたので、「(転職活動の際の)ポートフォリオのひとつにしてみませんか?」と声かけさせて頂きました。*6
また、技術の泉シリーズの表紙は女の子が描かれている率が多かったので、えりいざちゃん達とセットになっている女の子を描いてもらうことにしました。
もともとの同人誌の表紙がこれ。
んで、表紙のイメージとして出した案がこの2つ。
んでんで、こんなたたき台から、こちらのイラストになって出てきて
最終的にこんなイラストになるのですから、デザイナー様には足を向けて寝られません。
Twitterでいただいた感想
しのゆさん から、以下のような感想を頂きました。
ありがとうございます。
えりいざ本流し読みdone。なるほど、動かすまでに必要なチュートリアルが書いてある本ですね。Elixir初学者とLiveView始めてみたい人は読んでみるとよさそう。
— しのゆ (@shinoyu) 2020年6月5日
1700円の価値は十分あった(`・ω・´)
まとめ
今回は、商業版「Elixirへのいざない」について記述しました。
Phoenix LiveViewとNervesについて扱っている「日本の書籍」としては、いま(2020年6月頭時点)のところは本書籍だけだと認識しています。
もし、興味を持たれた方は、Amazonの試し読みをしてみてください。 そして、気に入られたらご購入いただけると幸いです。
また、ご購入された方がいらっしゃったら、Twitterで感想を呟いていただけると私が大変喜びます。 もし可能であれば、Amazonのカスタマーレビュー書いていただけると嬉しいです。(点数だけでも助かります。)
ちなみに、商業版ではなく技術同人誌ですが、「Elixirへのいざない2」と言うタイトルの本も書いています。*7 こちらは IoTフレームワーク「Nerves」を使って、簡単な電子回路を操作する内容が書かれています。 もし、興味を持たれたら、こちらも記事もご覧ください。
*1:ちなみに、3ヶ月のこどもは流石に自由時間をくれなかったです(笑
*2:出版社の方から教えていただいたので、せっかくなので掲載
*3:2020年1月に1.10系のリリースがされました
*4:PhoenixやPhoenixLiveView、Nervesのバージョンアップは活発なので、出版の締め切り日を過ぎたらもう古いバージョンになってしまう可能性はあるのですが...
*5:https://github.com/phoenixframework/phoenix_live_view/releases
*6:ただ、表紙を描ききる前に転職されたので、直近ではお役に立てなかったみたいです...
*7:BOOTHで販売しております。https://mzryuka.booth.pm/items/1759322