目次
はじめに
謝辞
序章 パターン,Wiki,XPの起源へ
- Wikiとの遭遇
- Wikiとブログ・掲示板の違い
- Wikiの正確な定義とは
- Wikiをどう使えばよいのか
- Wiki誕生の背景を探る
- WikiWikiWeb
- HyperCardによるパターンブラウザ
- ソフトウェア開発におけるパターン
- クリストファー・アレグザンダーによるパターンランゲージ
- 建築,ソフトウェア開発,Wikiの歴史を探る
第1部 建築
1章 クリストファー・アレグザンダーによる美の原理の追及
- アレグザンダーの生い立ち
- 「美」の根本原理の追及
- 初期の実験
- 『形の合成に関するノート』── 設計プロセスの数学的な形式化
- 要求条件を1つにまとめるダイアグラムの発明
- ベイエリア高速鉄道の計画立案 ── 要求条件間の膨大な関係性の計算
- 「都市はツリーではない」── 多様な関係性の発見
- 数学的な形式化に対する自己批判
2章 アレグザンダーの6つの原理
- 『人間都市』── 人間を疎外しない都市のあり方
- 『オレゴン大学の実験』── 利用者参加による建築のための「6つの原理」
- 市民によるバークレーの再建 ── 利用者参加による街作りの実験
- コラム:『オレゴン大学の実験』におけるブランコの比喩
3章 パターンランゲージ
- パターンとパターンランゲージ
- 『パタン・ランゲージ』── 利用者と建築家の共通言語
- パターン形式
- パターンの具体例
- 数学的理論による設計から,利用者参加による設計へ
4章 時を超えた建設の道
- 『時を超えた建設の道』── パターンランゲージによる建築理論
- 無名の質 ── 生き生きとした建物や町が持つ特性
- 解題 ── 時を超えた創造の原則
5章 パターンランゲージによる建築の実際
- パターンランゲージの目指す方法論
- 日本におけるアレグザンダーの受容
- 盈進学園東野高校の建設
- 20年後の東野高校
6章 アレグザンダーの現在
- チャールズ皇太子のアドバイザへの就任
- 『The Nature of Order』── 普遍性を持つ幾何学の研究
- パターンランゲージという思想
第2部 ソフトウェア開発
7章 オブジェクト指向
- ソフトウェア開発の世界へ
- オブジェクト指向の勃興 ── Smalltalk
- オブジェクト指向とGUI
- GUIの普及と一般化 ── Macintosh
- OOPSLAの設立 ── オブジェクト指向に関するコミュニティの形成
- ソフトウェア概念変革の時代
8章 ソフトウェア開発へのパターンの適用
- パターンランゲージをプログラミングへ応用する
- 「オブジェクト指向プログラムのためのパターン言語の使用」
- 繰り返し現れる構造に目を向ける人々
- 「Toward an Architecture Handbook」── OOPSLA/ECOOP 1990
- 「Architecture Handbook Workshop」── OOPSLA 1991
- 「Documenting Frameworks using Patterns」── OOPSLA 1992
- GoFの結成 ── OOPSLA 1992
- Hillside Groupの誕生
- 「Patterns: Building Blocks for Object-Oriented Architectures」── OOPSLA 1993
- PLoPの開催 ── パターンランゲージコミュニティの形成
9章 デザインパターン
- 『オブジェクト指向における再利用のためのデザインパターン』── デザインパターンの誕生
- パターン形式
- デザインパターンの具体例
- デザインパターンとパターンランゲージの共通点と相違点
- デザインパターンの普及
- その後のパターンの展開
10章 プロセスへのパターンの適用
- ソフトウェア開発における「6つの原理」
- 「開発工程の生成的パターン言語」── コプリエンによるプロセスパターン
- 「エピソーズ」── カニンガムによるプロセスパターン
- C3プロジェクト ── XP誕生の地
- C3プロジェクトにおけるプラクティス
- C3プロジェクトの進展
- C3プロジェクトの結末
11章 エクストリームプログラミング
- 『XPエクストリーム・プログラミング入門』── ベックによる開発プロセスの変革
- 価値,原則,プラクティス
- アジャイルマニフェスト
- 『XPエクストリーム・プログラミング入門 第2版』── XPの再定義
- 価値
- 原則
- 基礎プラクティス
- 応用プラクティス
- XPを代表するプラクティス
- 組織パターン,プロセスパターンからXPへ
- アレグザンダーの6つの原理と,XPのプラクティスの比較
- XPとパターンの関係
- 利用者と設計者の関係を見直す
- ソフトウェア開発からアレグザンダーへのフィードバック
第3部 Wiki
12章 HyperCardによるパターンブラウザ
- Wikiの前身
- Vivariumプロジェクト ── 子どものためのプログラミング環境の実験
- HyperCardの誕生 ── 初めての実用的なハイパーテキスト環境
- パターンブラウザの誕生 ── HyperCardによるWikiの前身
- 複数人による共同編集の実験
- コラム:CRCカード ── クラス構造の記述
13章 WikiWikiWeb
- World Wide Webの誕生
- Web上の動的な基盤の形成 ── フォームとCGIの誕生
- WikiWikiWebの誕生
- WikiWikiWebの名前の由来
- Wiki記法 ── HTMLを簡略化した構造化記法
- WikiName ── キャメルケースによるリンク表現
- Wikiカテゴリ ── 逆リンクを利用したメタページの表現
- Wikiとパターンブラウザの共通点と相違点
14章 Wikiモードによるコミュニケーションパターン
- Wiki上のコミュニケーション
- コミュニケーションパターン
- Wikiモード
- Wikiページのライフサイクル
- Wikiモードとコミュニティの成熟
- コラム:パターン形式 ── それゆえしかし形式
15章 Wiki設計原則
- カニンガムが満たそうとした設計原則
- アレグザンダーの6つの原理とWiki設計原則の比較
- XPのプラクティスとWiki設計原則の比較
- XPのプラクティスでWikiを使いこなす
- C2 WikiがXPの発展に与えた影響
- Wikiの本質とは何か
16章 Wikiエンジン
- WikiWikiWebのCGIスクリプト
- 文芸的プログラミング ── 文章のようにプログラムを書く
- WikiBase ── Wikiを舞台にした文芸的プログラミング環境
- WikiBaseと文芸的プログミングの共通点と相違点
- WikiBaseのコードの共有
- 「WikiWikiWeb」から「Wiki」へ
- さまざまなWikiエンジンの誕生と,Wikiサイトの発展
- 『Wiki Way』の出版とその後のWikiの広がり
17章 Wikipedia
- Nupedia ── Wikipediaのルーツ
- Wikipediaの誕生
- コラム:UuU ── Wikipedia最古のページ
- フェーズ1 ── UseModWikiの時代
- フェーズ1のトークページ ── ドキュメントモードとスレッドモードの分離
- Wikipediaのルールと合意形成
- フェーズ2 ── Wikipedia専用のWikiエンジン
- フェーズ2のトークページ ── スレッドモードの機能化
- コラム:カニンガムの予言
- フェーズ3 ── MediaWikiの誕生
- Nupediaの閉鎖とWikipediaの発展 ── 伽藍とバザール
- Wikimedia財団の設立
- Wikipediaが成功した理由
- コラム:Wikipediaを「Wiki」と呼んでいいか
18章 Wikiの現在
- Wiki企業の誕生
- 個人でのWikiの利用
- さまざまな領域に特化したWikiエンジン
- 概念としてのWikiの利用
- アラン・ケイによるWikiエンジン
終章 時を超えた創造の原則
- アレグザンダーの思想が及ぼした影響
- 建築
- ソフトウェア開発
- Wiki
- 「無名の質」を追い求める
- 時を超えた創造の原則へ