見出し画像

書籍『TECHNICAL MASTER はじめてのTypeScript エンジニア入門編』:紹介

Webエンジニアを目指す方に向けたTypeScriptの実践的入門書、『TECHNICAL MASTER はじめてのTypeScript エンジニア入門編』が2月4日に発売されました。

この本では、背景となるJavaScriptの歴史からサーバーレスWebアプリケーションの開発まで、TypeScriptに関する幅広い知識や技能を学べるようになっています。
これからTypeScriptを使ってプログラミングをはじめたい方だけでなく、すでに業務などでTypeScriptを使っているがツールや背景知識についてより詳しく知りたい方にもおすすめしています。
イベント等で中身をご覧いただいた方や、すでに本書を購入された方から「この題材を扱っているのが良い」といくつか好評をいただいているので、この記事ではそれらのトピックにも触れつつ内容紹介をしたいと思います。

Part 1: TypeScriptの世界観

本書の内容はまずTypeScriptの世界観について解説するパートからはじまります。ここで世界観とは「開発現場やコミュニティで大切にされている背景知識やパースペクティブ(ものの見え方)」のことを指しています。TypeScriptはJavaScriptを改善・改良した言語として登場しましたが、そのJavaScriptにはワールド・ワイド・ウェブ(WWW)と同じくらい長い歴史があります。TypeScriptというプログラミング言語が育まれた土壌やその発展の過程について知ることで、すぐれたTypeScript開発者が備えているであろう暗黙知を共有したいと考えました。

TypeScriptの歴史について述べる第1章ののち、型システムについて解説する第2章が続きます。文法の解説よりも先に型の話題が出てくることに驚かれるかもしれませんが、これもTypeScriptの歴史を構成するJavaScriptとは切っても切り離せない知識だからです。TypeScriptが多くの手続き的な静的型付き言語と異なるところは、型が動作そのものには影響を与えず、したがって型付けにおける自由度が高い点です。筆者はこれを「漸進的型付けというアプローチ」として捉え、「人間のための型」や「アノテーションとしての型」といった概念を用いて説明しようと試みました。

Part 2: BunでCLIツール開発

文法事項について説明したのち、実際に手を動かすパートに入ります。第4章ではエディター(VS Code)や作業用ディレクトリなど、最低限の開発環境を整えます。第5章ではBunをまずインストールし、簡単なメモを記録できるCLIツールを作ります。Bun、Deno、Node.jsという3つのランタイムをパートごとに使い分けるのは、本書の大きな特色のひとつです。これはTypeScript(およびJavaScript)がいまや動作環境からは独立したユニバーサルな「プログラミング言語」であり、ランタイムを問わずどこでも動かせる(べき)というメッセージが込められています。

第6章ではSQLiteを導入して、Todo管理機能を備えたより高機能なツールを開発します。データベースの操作、とりわけCRUDとして知られる4つの基本操作は、Web開発の現場におけるきわめて基礎的な概念だと考えられます。しかしながらデータベースは管理システムやプラットフォーム選びを含め、話がとかく込み入ったものになりがちです。本章ではサーバー不要のSQLiteをBunのドライバーから用いて、クエリにも最小限のSQL文を用いることで、こうした知識のオーバーヘッドをなるべく抑えるよう努めました。

Part 3: DenoでWebサービス開発

パート3ではBunに代わってDenoをランタイムに利用します。執筆中にバージョン2がリリースされたDenoは、サーバーサイドプログラミング環境としてのNode.jsを今後置き換えていく可能性があることから、本書でもWebサーバーとしての機能に絞った構成としました。Webアプリケーション開発の前提知識となる、サーバーとクライアントとのHTTP通信というコンセプトもここで解説しています。ストリーミングレスポンスやChatGPT APIの利用は、業務でも生成AIを利用することの多い昨今において避けては通れない道であると思い採用しました。

第9章ではWeb開発において大きな領域を占めるWeb APIの開発を採りあげました。ここでWebフレームワークとして新進気鋭のライブラリであるHonoを採用したことは、本書における野心的なチャレンジのひとつです。過去のレガシーや従来的なやり方にとらわれず、より良い選択肢を提供していくという点において、Honoはまさにそれを象徴するライブラリだと思われました。幸いなことにこの章の存在は、モダンなWeb開発に関心の高い開発者のみなさんから好意的な声をいただいています。

Part 4: Node.jsでWebアプリケーション開発

本書の最後となるパート4で、Node.jsを用いた実際的なWebアプリケーションを開発します。入稿前の最終段階においてNode.jsのバージョン23.6.0によりTypeScriptがデフォルトでサポートされましたが、この動きは最小限の設定でTypeScriptを動かすという本書の姿勢とも符号しています。第10章でVueとViteを用いたシングルページアプリケーション(SPA)、第11章でNuxtとMongoDB Atlasを用いたフルスタックWebアプリケーションを実装し、締めくくりとなる第12章でDockerとGoogle Cloudによるサーバーレス構成で、インターネットにアプリケーションをデプロイします。

フロントエンド開発において最も多く利用されているであろうReactおよびNext.jsではなく、あえてVueとNuxtを採用した理由については別の媒体でも書きました。本書の中でも述べられているように、テンプレート構文やシングルファイルコンポーネント(SFC)といった考え方は、他のWebフレームワークからフロントエンド領域に入った開発者、ひいてはこれからWeb開発をはじめようとする方にとっても、比較的なじみやすいものであると考えます。筆者としては、本書を通じて開発プロセスを学ばれるであろう読者が、ここで学びを終えるのではなくその先の世界に進まれることを願っています。狭くて専門化された領域で技能を先鋭化させることもひとつの道とは思いますが、本書はより広い視野でエンジニアを目指す方が「プログラミングのよさ」ひいては「ものづくりのよさ」を、開発そのものを通じて感得できることを目指しています。

おわりに

noteでは主にこれからプログラミングを学ばれる読者を対象に、本書の内容に関する補足や周辺知識、また執筆やプログラミングそのものについても記事を連載できればと考えています。なるべく多くの方に本書の知識と内容が行き届くようにしたいと思っています。購読よろしくお願いします。

いいなと思ったら応援しよう!