ソフトウェアのパターンを集中的に学んでいる。また、以前Wikiを立ち上げた。
そんななか、パターンとWikiの概念の関係性を教えてくれる、興味深い本を手に取った。
- パターン、Wiki、XP ~時を超えた創造の原則 - 江渡 浩一郎
内容
題名のとおり、以下の3つの関係性を時系列にそって書いている。
それぞれの概念をつくった3人の人物に注目して話が進んでいく。
時系列に歴史をかたり、各章のおわりで他の概念との関係を示す。歴史は横のつながりで再解釈すると面白い。東洋と西洋、イスラムとキリスト、などなど。そんなように、歴史的な縦軸のなかで横のつながりを示されると知的好奇心を心地よく刺激する。
パターンとWiki、XPというものがすべてアレクサンダーの思想から生まれたことに驚く。それは、キリスト教とイスラム教が同じ旧約聖書を起源としているような驚き。
あとがきが大事
本のほとんどは史実を書くことに割かれている。あとがきとして筆者の意見を垣間見る。とてもいいことをいっているので抜粋。
プログラマがプログラミングするさいに、
自分のプログラムにどのようなパターンが見出されるかを
自分自身で考えながらプログラミングすることが、
本当の意味でパターンをつかいこなす道なのです。
XPのプラクティスを入り口として、
自分たちの開発プロセスを改善する方法を自分たち自身で考えつづけ、
そこから得た経験をまたプラクティスとして抽出するようにする、
そのようなプロセスを続けることによってはじめてXPのプラクティスが有効に働くようになる。
パターンにとって、型にはまって考えることが大事なように考えられがち。しかし、本当に大事なことは、型をみにつけ、型を破るという、こと。古くから芸能の世界でいわれていることだ。
以下、簡単な読書メモです。
パターン
パターン
建築環境に繰り返し現れる課題を解決に導く具体的な方策を記述したもの。
アレクサンダーのパターン形式
- パターン名
- 写真
- 上位パターンへのつながり
- 本文
- 下位パターンへのつながり
パターンランゲージ
建築において繰り返し現れる構造を再利用しやすい形式でまとめたもの。あるいは、パターンを集めて一つの体系としてまとぬあげたもの。
建築家クリストファーアレクサンダーが考えた建築手法。
時を超える建築の道
パターンランゲージを記した建築理論。本の題名。
- 時を超えた建設の道 - クリストファー アレグザンダー
角谷信太郎さんのおもしろいはなしのyoutube動画も見つけた。
無名の質
生き生きとした建築や街が備えている特性。古い街並みに潜む住みやすさや美しさ。
Wiki
ウォード・カンニガムがプログラムに関する、パターンを記述して閲覧するためにはじめたのが起源。 WikiWikiWebというパターンブラウザ。
ブログとwikiの根本的な違い
ブログとwikiの根本的な違いは、以下。
- ブログは情報を日付で管理するシステム
- wikiはページ名で情報を管理するシステム
XP
ケント・ベックがパターンの考えをソフトウェア開発のプラクティスに応用した。プロセスのベストプラクティスをカタログ化したもの。プロセスへパターンを適用したもの。
アレクサンダー6つの原理とXPプラクティス
- 有機的秩序の原則 ・・・ フィーチャーに注目した開発
- 参加の原則 ・・・ 顧客との対話を重視
- 漸近的成長の原則 ・・・ インクリメンタルな開発
- パターンの原則 ・・・ UML, XPプラクティス
- 診断の原則 ・・・ TDD, CI
- 調整の原則 ・・・ PDCA
その他、関係ないかもしれないけど、暗黙知と形式知についてのメモ。
暗黙知と形式知
暗黙知
知識というものがあるとすると、その背後には必ず暗黙の次元の「知る」という動作がある」ということを示した概念。
形式知
形式知(けいしきち)は知識の分類の一つであり、主に文章・図表・数式などによって説明・表現できる知識を指す。暗黙知に対する概念。
これからどうするか
今は型を学ぶとき
パターンに興味をもった動機は、プログラマとして成長したいからだった。
プログラミングを身につけるということは、芸を身につけることだと思っている。成長するためには、洗練された型を身につけることが近道だ。
今は、型を身につけるとき。自分はまだまだ未熟なので、定石を身体に叩き込む時。しかし、いつかは型を破らなければならないときもくるだろう。そんなとき、この本を見直したい。
いろんな分野のパターンを収集する
パターンは、建築とソフトウェア開発に限るものではない。
どんなものにだってパターンが存在する。そのような言語化されていないもやもやしたものを、 wikiとして拾い上げ、整理して、分類する。そうすることは、他の分野にも応用できるとおもう。
自分もWikiにいろいろな考えを書き溜めて、そのつどごとに整理していこうとおもう。