GoTheDistance

ござ先輩と言われています。(株) クオリティスタートという会社をやっています。

形式知は無くならない

That's It!

説明書なんかなくてもiPodが使えるのは、操作方法の情報をiPodというハードウェアの中に組み込んでいるから。これはすごい直感的。残念ながらソフトウェアには触れることができません(キーボードがいかに貧弱なインターフェースかは言うまでもないのですが)。ですから、視覚情報によって説明書のように、すこし回りくどくでも情報を形式化するしかない。それが設定ファイルです。

〜それでも設定が大事な理由〜arclamp.jp アークランプ

ちょうど今から1年弱前、S2を使った案件に突っ込まれました。DIコンテナってのはinterfaceと実装クラスの依存性をなくすものだ、って簡単に考えていた。じゃあapp.diconにインターフェイスとImplのマッピングが定義してあるんだろうな、と。ダイコンみてびっくり。どこにもねぇんだものw でもぬるぽがでない。つーことは、インターフェイスにはちゃんと具象クラスが注入されているんだよな・・・、って堂々巡りをした経験が思い起こされた。

暗黙知が直感的ではないのは当然です。直感的というのは、多くの場合目で判断するものです。ロジックの中身を追っかけることなく判断できることを総じて直感的と呼んでいるのであって、いわゆる空気嫁が直感的であるとは考えにくい。

このエントリの素晴らしい点は、「じゃあRoRの立場はどうなるんだ?」ということに対しても答えを用意していること。私はRubyについて多くは知らないのでアレですが、「言語の設定的記述性が高い」というのは直感的に感じられます。

Strutsを初めて実践投入した時も、struts-config.xmlの記述内容から「ほぅ、このソースとこの記述が紐づいているのか。なるほどなぁ」と設定から規約を学んだ記憶がある。たぶん皆さんそうでしょう。わざわざXMLを書かねばならないのはどうしたことか、設定はコードの中に「これ設定っぽいな」という記述を書けばいいじゃん*1というアプローチも理解できますが、暗黙的に理解するまでのコストに目を向けて考えてもいいんじゃないかというyusukeさんのアプローチに大いに賛成です。まずは思想を知る。次に手段(=実装方法)を知るということです。

*1:結局xdocletとかでドキュメント化されそうだけど