kmuto’s blog

はてな社でMackerel CREをやっています。料理と旅行といろんなIT技術

良書を読んでコードにつなげる

この週末は、社内デモとしてぱぱっと作ったWebサービスを手習いとしてモダンに書き直してみていて、良書で学んだことが役に立ってるなーと感じている。

デモのプロトタイプは時間の都合でこれまでに十分知っているツール(Ruby+Ajax)で作っていたのだが、これをNode.js + TypeScript + Vueで書き直した。前職ではWebサービスPHPRailsかERubyあたりで留まっていて、TypeScriptもAdobe ES3の世界のなかでは活躍のシーンがなかったので、まじめに独自なアプリケーションを一本書くのはほぼ初めてとなる。

これが、予想よりもずっとあっけなく完成できた。背景としてはサービスがシンプルだったからというのももちろんあるのだが、情報がまとまった形となっている書籍を読み学んでおいたことで、あまり迷いが生じなかったということがあると思う。

 

雑誌記事やWeb記事はスポットで探すには良いのだが、まとまったある時点の情報の集大成として入門するには書籍に長があるな、と感じる。もちろん実際のサービスでは書籍に掲載されていないような課題がいくつもあるのだけれども(実際今回もとあるプロトコルの利用が必要で、その使い方についてはいろいろWebで調べた)、基礎固めは書籍でやっておいたほうが結果的には時間の短縮になる。

とはいえ、書籍もいろいろあり、品質が玉石混淆であることは残念ながら否めないし、内容レベル感がマッチしているかは読者によるのもまた事実。以下はkmutoにとっては今回の開発で必要な知識ベースとしての良書だったよということで。

 

TypeScriptとモダンJavaScriptをセットで学べた。TypeScriptの記法や挙動で悩んだときにはこの本に戻ってくればだいたいわかる、という安心感がある。

 

Vue最新バージョン3の本で、写経しやすい短いサンプルが豊富。一番良い点はTypeScriptでいくぞ!という明確な前提があることで、「JavaScriptで書かれたものをTypeScriptだとどう書くんだ…?」といちいちコンテキストを読み替えなくて済むのが素晴しい。

React + TypeScriptもこのくらいの粒度かつ鮮度の本がほしい(あったらぜひ教えてください!)。

 

これはコード技術というより知識のほうかな。CORSまわりのエラーが出たときに、「CORSって何だっけ?」と詰まらずに済んだ。Webのミドルウェア書くときに必要な知識が多い。

 

紙のほうがいいのかなと最初は考えていたものの、結果から見ると電子・紙ではあまり記憶刺激に差がなかった。紙本は置く場所に困ってきているので、今後の購入は電子中心になると思う(Kindleは嫌なので、PDF直販限定。ということで実際には上記のAmazonのを買うよりは直販系をお勧めしたい…)。

ただし、ただ読むだけでなく、大学ノートやScrapboxに書き留めるといった行為をしないと残りにくいので、近年はこまめに記録するようにしてみている。当初は手書きじゃないと覚えないという思い込みがあったが、Scrapboxだと自分の走り書きを解読する必要もないし、検索もリンクもコードコピペもできるので、外部記憶としてはこれでベストなのでは?という気持ちに変わった。

 

今はAWSとTerraformを本で勉強中。まだ読み進め途中ではあるが、以下どちらも良書な気がする。

 

これは少し古い本(2019年刊)だけど。AWSの全体像を把握したくて読んでいる。試験本ではあるのだが、そのぶん押さえるべき重点ポイントが明確でわかりやすい。ちゃんと勉強して、アソシエイト資格やその先を取得してみてもいいかもなぁ。IAM知識の重要性については著者の佐々木さんが口を酸っぱく言っていて(技術書典でもIAM専門書を刊行していた)、今AWSをいろいろ使ってみると本当にそのとおりだな、と感じている。

 

AWSをターゲットに割り切って、Terraformの基本からベストプラクティスまで即習できる。実際の運用ではさらにいろいろと応用が必要だろうけれど、このtfでは何をしてるんだろう? というのを抵抗なく読めるくらいのスキルがつきそう。

ひとまず小規模なサービスを立ち上げるようなものは書けるようになって、目下「Terraform完全に理解した(※理解していない)」フェーズに入っている。