はじめに
コンピューターサイエンスの学位課程には通常、オペレーティングシステム、コンパイラ、データベースに関する講座が含まれています。これらの講座は、謎めいたシステムの内部構造をコードで明らかにします。Linux、Postgres、LLVMといったシステムを、理解可能な基本アーキテクチャとその改良、拡張、最適化として教えてくれるのです。ここから得られる教訓は、学習対象を超えて普遍的です。つまり、どれほど大規模で複雑に見えるコンピューターシステムであっても、学んで理解できるということです。
しかし、Webブラウザについては依然として謎に包まれたままです。これは学生だけでなく、業界のプログラマーや研究者にとっても同様です。本書は、現代のWebブラウザの主要コンポーネントをすべて体系的に解説することで、この謎を解き明かします。
本書の読み方
本書の第2部から第4部では、約1,000行のコードからなる基本的なブラウザを構築します(演習も含めると約2倍の量になります)。数年のプログラミング経験があれば、各章を読み、実装し、デバッグするのに4〜6時間程度で進められるでしょう。第5部では高度なトピックを扱うため、各章はより長く、コード量も増えます。最終的に本書で作るブラウザのコードは約3,000行になります。
読者が作成するブラウザは※1各段階で動作し、章を追うごとに機能が積み重なっていきます※2。これにより、複雑なソフトウェアを成長させ改善していく実践的な経験も得られます。特に興味を持ったコンポーネントがあれば、それを充実させ、演習に取り組み、足りない機能を追加してみてください。後の章の内容が難しくなることなく拡張できるよう配慮しています。
※1 本書は、読み進めながらWebブラウザを構築していくことを前提としています。ただし、各章で動作するブラウザのコードのほぼすべてを本文中に掲載しています。そのため、本書では多くの場合「私たちのブラウザ」という表現を使用しており、これは著者と読者である「私たち」がここまでに構築した概念上のブラウザを指します。特に読者が実装したものについて言及する場合は、「あなたのブラウザ」という表現を使っています。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access