Vue3に関する商業誌を書きました

※発売後のフィードバックを受けて後半に内容を追記したためこれから買おうと思っている方はその部分を読んでいただけると幸いです。

Vue.js 3 に関する本を商業誌として書かせてもらいました。本日発売です。

Vue.js ビギナーズガイド 3.x 対応 | ushironoko| 本| 通販| Amazon

物理本と Kindle で購入できます。本自体固定レイアウトなため物理本の方が読みやすいとは思います。文中に引用元 URL などが含まれる箇所も多いため、~~コピペラビリティの高い Kindle 版も良いと思います、自分にあった方を選んでください。~~

Kindle 版でもコピペできないみたいです。

完走した感想

本の前書きにも書きましたがほんとーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーに大変、2020/7 から 2021/6 末まで常に執筆業のことが頭の片隅にあり、なかなかのストレス体験でした。何か新しいことを始めたい!と思ってもでも俺全然書けてないしな…となり、休日もやらなきゃという気持ちと書きたくないという気持ちがぶつかり合って何も純粋に楽しめてなかった気がします(実際は存在を忘れてゲームしてた日も多かった)。

本腰を入れたのは編集担当の方から締め切りを伝えられてからで、もうここが限界です、仕上げてくださいという状況にならないと人(俺)って動かないんだなぁとしみじみ感じました。ダメ人間すぎた。この時期はオリンピックが控えていて印刷所も忙しくなるため、その兼ね合いもあってか出せるなら早く出したいという気概が伝わってきました。実際の作業としては 1 ~ 6 章まであって 3 章までで約 11 ヶ月、残りを 2 週間で書いたような状況で、もっと早く真面目にやってたらあれもこれも書けたなぁと今でも若干後悔していたりします。

ただ今回書いた範囲はビギナーの方が Vue.js というライブラリを用いて UI コンポーネントを作り、それを自分の手でビルドしてリリースするという当初自分が書きたいと思っていた内容だったのでこれはこれで書きたいこと書けてるしいいかとも思ったり。

昨今の技術書や技術記事はアプリケーションを組み上げるところまでを前提とした内容が多く、基礎の基礎である UI コンポーネント作りという面が通過点でしかないような印象を受けます(もちろんサービスを作るなら通過点です)。

まず Vue.js 3 ではどんなことができるようになったのか?周辺ツールとの相性はどこまで改善されているのか?を知ること、コンポーネントを作る上で必要なこと(テスト、ビルド設定含め)を全部自分自身で体験することをやって欲しいなという個人の想いがあり、どうせ書くならそこに 100%振った内容にしてみようと考えました。

この本を読んでもグローバルストアの使い方は分からないし、ページ遷移の手法も分かりません、ごめんなさい。SPA って何?とか Firebase に繋いでデータを保存して〜みたいな話も一切ありません。でもいざそれが必要になった時にどうすれば良いのかを自分で調べ、応用できるような基礎知識を身につけられる本にしたいなーとなんとなく思いました。公式ドキュメントにはない情報も交えて、なぜそう動くのか、なぜそこにその機能があるのかがちゃんと分かるように書きました(書いたはず)。

Vue.js というのは本来「UI を宣言的に記述する」というパラダイムを、React よりさらに広いターゲット層(サーバーサイドエンジニアやポートフォリオが作りたいデザイナー、jQuery を倒したいレガシー環境の開発者等様々)が扱えるようになるライブラリという側面があるはずで、本質的には宣言的 UI の民主化が目標のライブラリだと勝手に思っています。その本質が Vue のコアシステムを形作っていて、表層の API にもあらわれています。Vue3 で登場した Composition API は、その面ではあまり Vue らしくはないですが、コアがぶれていないため Vue らしさは保たれていると個人的には思っています、多分。

よく React を使っている方に、Vue って〇〇だからなぁ好きじゃないんだよなぁと言われたりしますが、それは Vue が別の人を助けるために進化している証なので大目に見ていただきたいです。Vue は Vue っぽいことやってんなくらいの温度感で見てるのが良いと思います。たまに Vue のリアクティビティと React のリアクティビティを比べてそういう理念がベースにあるんですねとなるのも一興です(自分は React エアプですが)。

そんな Vue.js 3 のことをまあまあ知れる本ということで興味ある方はお手にとっていただけると幸いです。怖くて Amazon レビューは絶対に絶対に見ないので素直な感想をいただければと思います。また、本書で分からないことがあれば #vue3_beginners_guide でツイートしていただけるともしかすると著者が見に行くかもしれません。文句とかも見えちゃいますが頑張って見ます、多分。

というわけで初めての商業誌で本当に至らない点が多いかと思いますが、今後ともよろしくお願いいたします。出版まで支えてくださった皆様、ありがとうございました。

発売後のフィードバックと振り返り

ビギナー向けでないという厳しめのご意見を結構お寄せいただいています。確かに本書の最初では「HTML や CSS、JavaScript 等の基礎知識や、ある程度のフロントエンドの開発経験がある読者向け」としており、この定義の解釈次第で買ってみたは良いものの自分には難しかった、ということはあるなと反省しています。

Vue3 の本、しかも Composition API について詳しく触れた本が現状少ないということで、その面を中心にしつつ初学者の体験として良いものはなんだろうと考えた結果、Chapter05 にあるより高度なライブラリ開発というところに落ち着きました。

技術書のサンプル実装は作り切った後も活かしていけるものが良いという思いがあり、自分のコンポーネントライブラリを作ることができればその後、ポートフォリオやより大きなアプリケーション開発にも役立てられて便利かなという考えです。

一方で、Vue3 ならではの体験として TypeScript との併用は絶対に外せない部分であり、Composition API の利用においてもほぼそのままの記述で恩恵が受けられるため、初心者であってもハードルは高くないだろうという目論見でしたが、実際は壁になってしまっているようで申し訳ないことをしたなと少し後悔しています。

Tailwind CSS を用いたのはちょっと蛇足だったかなと思いつつ、ある程度見た目を担保出来て、将来自分好みに拡張できる余地も持たせられるため UI コンポーネント作りにおいてマッチしているという判断で、選択自体は悪いものではなかったかなとも思います。ただ、これもハードルを上げていることは確かですね。

それでも良い本だったという感想をいただくこともあるのでやはり第一印象とのギャップが人によって激しそうな本になっている(期待値を満たせる or 大きく外すの二分)のがありそうです。フィードバックを受けてこの本が本当に向いていそうだと思うのは、

  • Vue2 を触ったことがあり Vue3 に関してはあまり追えていないフロントエンドエンジニア
  • React など他フレームワークを触っているが、Vue に関しては軽い 2 系の知識で止まっているフロントエンドエンジニア
  • 宣言的な UI フレームワークを触ったことはないが現代のフロントエンドについてある程度知っているエンジニア

あたりなのかなと感じました。

最後に、本書を購入し満足のいく体験を得られなかったにも関わらず、素直なフィードバックをくれた方々に感謝を申し上げます(わざわざレビューをしていただけるということは尊いことだとわかりました)。そういった忌憚のない意見こそが次へ繋がるものだと思っています。また前向きなフィードバックをくれた方々、ありがとうございます。少しでも本書で楽しく開発でき、後につながるものを残せていることを願っています。