95冊の技術書をTypeScriptの構造化データに:知識の孤立を解消した学習システム構築の全貌
本記事は、エンジニアが持つ「散らばった」技術書知識の問題を解決するため、95冊もの技術書の内容を構造化データとして再構築したプロジェクト「CodeSensei」の設計プロセスを詳細に解説している。従来の技術書知識は、書籍Aと書籍Bで学んだ概念が頭の中で繋がりにくく、孤立しているという課題があった。この課題に対し、筆者はまず95冊の書籍を「構造化データ」として定義し、知識の接続性を高めることを目指した。
データモデルは「Books(95冊)→ Courses(15コース)→ Lessons(188レッスン)→ CrossbookConnections(概念接続)」の4層構造を採用している。各書籍は`Book`型として、タイトル、著者、そして「本質(essence)」を日本語・英語で定義し、分野(field)を付与している。この構造化データは、単なるデータベース(DB)ではなくTypeScriptの型定義ファイル(`.ts`)として実装された。その理由は、①型安全性の確保(存在しないID参照をコンパイル時に検出できる)、②バンドルサイズ最適化(DBクエリのラウンドトリップより高速)、③AIプロンプト構築の容易さ(オブジェクトから直接文字列化できる)の3点にある。
15のコースは、Code Quality、Web & API、Security、Databaseなど、具体的な分野に分類され、各コースは複数の書籍(例:Code QualityはClean Code, Readable Code)から構成される。さらに、単なる分類に留まらず、「関心の分離(Separation of Concerns)」のような中核概念について、複数の書籍が異なる角度から語っている接続(CrossbookConnections)を定義した。この接続により、「Clean Codeを学んだ人が次にClean Architectureを学ぶと何が繋がるか」という学習パスが可視化されている。最終的に、188レッスンはそれぞれ「核心概念」「参照書籍」「重要度(required/important/culture)」といった粒度で設計され、AIがユーザーのコードから関連概念を引き出し解説するシステム基盤が完成した。
背景
技術書から得た知識は、個々の書籍内に留まりがちで、概念間の関連性や全体像を把握するのが難しいという課題がある。本記事は、この知識の「孤立」という問題を、データ構造化とAI活用によって解決しようとする試みである。
重要用語解説
- 構造化データ: 非構造化な知識(書籍の内容)を、型定義やデータモデルを用いて体系的に整理し、機械が処理しやすい形式に変換したデータのこと。
- 型安全: プログラミング言語の型システムを利用することで、データ型や参照の誤りをコンパイル時(実行前)に検出できる性質。バグの早期発見に役立つ。
- CrossbookConnections: 複数の異なる書籍や資料に散らばる共通の概念(例:関心の分離)を特定し、それぞれの書籍がその概念をどのように定義しているかを接続・定義したデータ構造。
今後の影響
このアプローチは、単なる知識の集積ではなく、知識間の「接続」を可視化することで、学習効率と理解の深さを飛躍的に向上させる。今後の展開としては、この構造化データを基に、よりパーソナライズされた学習パスや、実務に直結するAIメンター機能の強化が期待される。知識の再構築が教育分野の新たな標準となる可能性がある。