13 Jul 2014, 00:46

マイスターになるためには、型をにつけ、型を破る!パターン、Wiki、XP,を読んだ読書メモ

はじめに

ソフトウェアのパターンを集中的に学んでいる。また、以前Wikiを立ち上げた。

そんななか、パターンとWikiの概念の関係性を教えてくれる、興味深い本を手に取った。

内容

題名のとおり、以下の3つの関係性を時系列にそって書いている。

それぞれの概念をつくった3人の人物に注目して話が進んでいく。

時系列に歴史をかたり、各章のおわりで他の概念との関係を示す。 歴史は横のつながりで再解釈すると面白い。東洋と西洋、イスラムとキリスト、などなど。 そんなように、歴史的な縦軸のなかで横のつながりを示されると知的好奇心を心地よく刺激する。

パターンとWiki、XPというものがすべてアレクサンダーの思想から生まれたことに驚く。 それは、キリスト教とイスラム教が同じ旧約聖書を起源としているような驚き。

あとがきが大事

本のほとんどは史実を書くことに割かれている。 あとがきとして筆者の意見を垣間見る。とてもいいことをいっているので抜粋。

プログラマがプログラミングするさいに、
自分のプログラムにどのようなパターンが見出されるかを
自分自身で考えながらプログラミングすることが、
本当の意味でパターンをつかいこなす道なのです。

XPのプラクティスを入り口として、
自分たちの開発プロセスを改善する方法を自分たち自身で考えつづけ、
そこから得た経験をまたプラクティスとして抽出するようにする、
そのようなプロセスを続けることによってはじめてXPのプラクティスが有効に働くようになる。

パターンにとって、型にはまって考えることが大事なように考えられがち。 しかし、本当に大事なことは、型をみにつけ、型を破るという、こと。 古くから芸能の世界でいわれていることだ。

以下、簡単な読書メモです。

パターン

パターン

<div class="outline-text-3" id="text-4-1">
  <p>
    建築環境に繰り返し現れる課題を解決に導く具体的な方策を記述したもの。
  </p>
</div>

<div id="outline-container-sec-4-1-1" class="outline-4">
  <h4 id="sec-4-1-1">
    アレクサンダーのパターン形式
  </h4>

  <div class="outline-text-4" id="text-4-1-1">
    <ul class="org-ul">
      <li>
        パターン名
      </li>
      <li>
        写真
      </li>
      <li>
        上位パターンへのつながり
      </li>
      <li>
        本文
      </li>
      <li>
        下位パターンへのつながり
      </li>
    </ul>
  </div>
</div>

パターンランゲージ

<div class="outline-text-3" id="text-4-2">
  <p>
    建築において繰り返し現れる構造を再利用しやすい形式でまとめたもの。 あるいは、パターンを集めて一つの体系としてまとぬあげたもの。
  </p>

  <p>
    建築家クリストファーアレクサンダーが考えた建築手法。
  </p>
</div>

時を超える建築の道

<div class="outline-text-3" id="text-4-3">
  <p>
    パターンランゲージを記した建築理論。本の題名。
  </p>

  <div class='amazlink-box' style='text-align:left;padding-bottom:20px;font-size:small;/zoom: 1;overflow: hidden;'>
    <div class='amazlink-list' style='clear: both;'>
      <div class='amazlink-image' style='float:left;margin:0px 12px 1px 0px;'>
        <a href='http://www.amazon.co.jp/%E6%99%82%E3%82%92%E8%B6%85%E3%81%88%E3%81%9F%E5%BB%BA%E8%A8%AD%E3%81%AE%E9%81%93-%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%83%BC-%E3%82%A2%E3%83%AC%E3%82%B0%E3%82%B6%E3%83%B3%E3%83%80%E3%83%BC/dp/4306043061%3FSubscriptionId%3DAKIAJDINZW45GEGLXQQQ%26tag%3Dsleephacker-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4306043061' target='_blank' rel='nofollow'><img src='http://ecx.images-amazon.com/images/I/51VWYgOr6IL._SL160_.jpg' style='border: none;' /></a>
      </div>

      <div class='amazlink-info' style='height:160; margin-bottom: 10px'>
        <div class='amazlink-name' style='margin-bottom:10px;line-height:120%'>
          <a href='http://www.amazon.co.jp/%E6%99%82%E3%82%92%E8%B6%85%E3%81%88%E3%81%9F%E5%BB%BA%E8%A8%AD%E3%81%AE%E9%81%93-%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%83%BC-%E3%82%A2%E3%83%AC%E3%82%B0%E3%82%B6%E3%83%B3%E3%83%80%E3%83%BC/dp/4306043061%3FSubscriptionId%3DAKIAJDINZW45GEGLXQQQ%26tag%3Dsleephacker-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4306043061' rel='nofollow' target='_blank'>時を超えた建設の道</a>
        </div>

        <div class='amazlink-powered' style='font-size:80%;margin-top:5px;line-height:120%'>
          posted with <a href='http://amazlink.keizoku.com/' title='アマゾンアフィリエイトリンク作成ツール' target='_blank'>amazlink</a> at 14.07.13
        </div>

        <div class='amazlink-detail'>
          クリストファー アレグザンダー
        </div>

        <div class='amazlink-sub-info' style='float: left;'>
          <div class='amazlink-link' style='margin-top: 5px'>
            <img src='http://amazlink.fuyu.gs/icon_amazon.png' width='18' /><a href='http://www.amazon.co.jp/%E6%99%82%E3%82%92%E8%B6%85%E3%81%88%E3%81%9F%E5%BB%BA%E8%A8%AD%E3%81%AE%E9%81%93-%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%83%BC-%E3%82%A2%E3%83%AC%E3%82%B0%E3%82%B6%E3%83%B3%E3%83%80%E3%83%BC/dp/4306043061%3FSubscriptionId%3DAKIAJDINZW45GEGLXQQQ%26tag%3Dsleephacker-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4306043061' rel='nofollow' target='_blank'>Amazon</a> <img src='http://amazlink.fuyu.gs/icon_rakuten.gif' width='18' /><a href='http://hb.afl.rakuten.co.jp/hgc/g00q0724.n763w947.g00q0724.n763x2b4/archives/c=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F616798%2F&#038;m=http%3A%2F%2Fm.rakuten.co.jp%2Frms%2Fmsv%2FItem%3Fn%3D616798%26surl%3Dbook' rel='nofollow' target='_blank'>楽天</a>
          </div>
        </div>
      </div>
    </div>
  </div>

  <p>
    角谷信太郎さんのおもしろいはなしのyoutube動画も見つけた。
  </p>

  <ul class="org-ul">
    <li>
      <a href="https://www.youtube.com/watch?v=SctvxjoKDGA">https://www.youtube.com/watch?v=SctvxjoKDGA</a>
    </li>
  </ul>
</div>

<div id="outline-container-sec-4-3-1" class="outline-4">
  <h4 id="sec-4-3-1">
    無名の質
  </h4>

  <div class="outline-text-4" id="text-4-3-1">
    <p>
      生き生きとした建築や街が備えている特性。古い街並みに潜む住みやすさや美しさ。
    </p>
  </div>
</div>

Wiki

ウォード・カンニガムがプログラムに関する、 パターンを記述して閲覧するためにはじめたのが起源。 WikiWikiWebというパターンブラウザ。

ブログとwikiの根本的な違い

<div class="outline-text-3" id="text-5-1">
  <p>
    ブログとwikiの根本的な違いは、以下。
  </p>

  <ul class="org-ul">
    <li>
      ブログは情報を日付で管理するシステム
    </li>
    <li>
      wikiはページ名で情報を管理するシステム
    </li>
  </ul>
</div>

XP

ケント・ベックがパターンの考えをソフトウェア開発のプラクティスに応用した。 プロセスのベストプラクティスをカタログ化したもの。プロセスへパターンを適用したもの。

アレクサンダー6つの原理とXPプラクティス

<div class="outline-text-3" id="text-6-1">
  <ul class="org-ul">
    <li>
      有機的秩序の原則 ・・・ フィーチャーに注目した開発
    </li>
    <li>
      参加の原則 ・・・ 顧客との対話を重視
    </li>
    <li>
      漸近的成長の原則 ・・・ インクリメンタルな開発
    </li>
    <li>
      パターンの原則 ・・・ UML, XPプラクティス
    </li>
    <li>
      診断の原則 ・・・ TDD, CI
    </li>
    <li>
      調整の原則 ・・・ PDCA
    </li>
  </ul>

  <p>
    その他、関係ないかもしれないけど、暗黙知と形式知についてのメモ。
  </p>
</div>

暗黙知と形式知

暗黙知

<div class="outline-text-3" id="text-7-1">
  <p>
    知識というものがあるとすると、 その背後には必ず暗黙の次元の「知る」という動作がある」ということを示した概念。
  </p>

  <ul class="org-ul">
    <li>
      <a href="http://ja.wikipedia.org/wiki/%E6%9A%97%E9%BB%99%E7%9F%A5">暗黙知 &#8211; Wikipedia</a>
    </li>
  </ul>
</div>

形式知

<div class="outline-text-3" id="text-7-2">
  <p>
    形式知(けいしきち)は知識の分類の一つであり、 主に文章・図表・数式などによって説明・表現できる知識を指す。暗黙知に対する概念。
  </p>

  <ul class="org-ul">
    <li>
      <a href="http://ja.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E7%9F%A5">形式知 &#8211; Wikipedia</a>
    </li>
    <li>
      <a href="http://ja.wikipedia.org/wiki/%E8%A6%8B%E3%81%88%E3%82%8B%E5%8C%96">見える化 &#8211; Wikipedia</a>
    </li>
  </ul>
</div>

これからどうするか

今は型を学ぶとき

<div class="outline-text-3" id="text-8-1">
  <p>
    パターンに興味をもった動機は、プログラマとして成長したいからだった。
  </p>

  <p>
    プログラミングを身につけるということは、芸を身につけることだと思っている。 成長するためには、洗練された型を身につけることが近道だ。
  </p>

  <p>
    今は、型を身につけるとき。自分はまだまだ未熟なので、定石を身体に叩き込む時。 しかし、いつかは型を破らなければならないときもくるだろう。 そんなとき、この本を見直したい。
  </p>
</div>

いろんな分野のパターンを収集する

<div class="outline-text-3" id="text-8-2">
  <p>
    パターンは、建築とソフトウェア開発に限るものではない。
  </p>

  <p>
    どんなものにだってパターンが存在する。 そのような言語化されていないもやもやしたものを、 wikiとして拾い上げ、整理して、分類する。 そうすることは、他の分野にも応用できるとおもう。
  </p>

  <p>
    自分もWikiにいろいろな考えを書き溜めて、そのつどごとに整理していこうとおもう。
  </p>
</div>