書籍概要

WEB+DB PRESS plus

パターン、WikiXP
―― 時を超えた創造の原則

著者
発売日
更新日

概要

ソフトウェア設計の定石集である「デザインパターン」は,今や開発者の必須知識となっています。Wikipediaに代表される「Wiki」は,多くの人々に使われるソフトウェアに成長しました。「XP(エクストリームプログラミング)」は,現在主流となりつつあるアジャイルな開発方法論です。

デザインパターン,Wiki,XP。 一見,何の関係もなさそうに思えるこの3つは,実は同じ起源から発生した兄弟です。 しかもその起源は,ソフトウェア開発とは何の関係もない異分野の人である,建築家クリストファー・アレグザンダーの思想にあります。

本書では,アレグザンダー(パターンランゲージの発明者),ウォード・カニンガム(Wikiの発明者),ケント・ベック(XPの提唱者)らが織りなす約半世紀の歴史物語をたどりながら,優れた創造を行うための共通原則に迫ります。

こんな方におすすめ

  • デザインパターンに興味がある方
  • XP(エクストリームプログラミング)などのアジャイルな開発手法に興味がある人
  • Wikiに興味がある方
  • 利用者と設計者・開発者の関係を改善したい方
  • 優れた創造を行うための原則に興味がある方
  • 建築とソフトウェアの関係に興味がある方
  • クリストファー・アレグザンダーに興味がある方

著者から一言

筆者は当初Wikiの起源を調べようとしていました。WikiはWeb上のシステムなので,Webが誕生した1991年より前にさかのぼることはないだろうと思っていたのですが,もっと昔の思想と深い関係があることがわかりました。

Wikiの起源への道のりは,デザインパターンやXPの起源への道のりでもありました。Wiki,デザインパターン,XPは,どれも一つの思想,建築家クリストファー・アレグザンダーのパターンランゲージを起源としています。さらにその背後には,建築,知の共有,ソフトウェア開発を貫く「時を超えた創造の原則」がありました。

最終的には,1960年代に考え出された思想が源流となっていたことがわかりました。こんなにも昔の思想が形を変えて現在に影響を与えていることに筆者は驚きました。この驚きを伝えたいと思い,本書を書きました。

本書籍に関するお知らせ

目次

はじめに

謝辞

序章 パターン,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
  • 「無名の質」を追い求める
  • 時を超えた創造の原則へ

サポート

補足情報

本書の公式タグを,以下のように決めさせていただきます。適切にご利用いただければ幸いです。

  • ソーシャルブックマークタグ:patternwikixp
  • twitterハッシュタグ:#patternwikixp

また,本書公式Wikiが作られました。アドレスは,以下のとおりです。

商品一覧