以下のブログに対する、杉本さん(@sugimoto_kei)ときょんさん(@kyon_mm)のつぶやき。
このブログ自体は、難波和彦氏によるクリストファー・アレグザンダー氏の思想・方法・業績についての評論を読んで、触発されて書いたものです。
怪文書です アレグザンダーとソフトウェアにおけるデザインパターンについての覚書|tenjuu99 @tenjuu99 #note note.com/tenjuu99/n/ne1…
2019-12-27 16:53:44自分でもこの文章は怪文書度高いという自覚はあります。ただ、難波氏のこのテキストは本当に読んでほしい。 kai-workshop.com/archives/073.h…
2019-12-27 19:27:56怪文書w読んだ。DDD本の第2部がパタン・ランゲージとして失敗しているという説。まったくその通りだと思う。エンティティとか集約、値という「パタン」は、設計をまったく喚起しない。シェアパイは値かもしれないが、それは結果論。「値を見つけよう」と考えてシェアパイが見つかるものではない。 twitter.com/tenjuu99/statu…
2019-12-28 11:11:21第2部が「モデル駆動設計の構成要素」とされているのは重要だ。モデル駆動設計、すなわちモデルと実装を結び付けるためのパタンであって、モデルそのものを作るためのパタンではないんだ。その意味でエヴァンズさんは嘘は言っていない。少々混乱させる面はあるけど。
2019-12-28 13:24:39モデルそのものの設計は第3部「より深い洞察へ向かうリファクタリング」で扱われている。ここでの扱い方は問題。第2部のモデル駆動設計を前提に、そこで得られたクラス構造をリファクタする体裁を取っているから、第2部のパタンがモデルの設計と強く結びついているように見えてしまう。
2019-12-28 13:37:46実際には、モデル駆動設計のパタン(モデルと実装の対応付けパタン)と、モデル自体の設計はあまり関係ない。船荷証券は値オブジェクトにすることも出来るし(XML文書として)、エンティティとすることもできるが、それは船荷証券の概念に影響を与えないはずだ。
2019-12-28 13:41:17そんで、じっさい、第3部でモデル自体の設計に適用できるパタンが提示されているかといえば、ほぼ提示されていない。第10章(しなやかな設計)で断片的なパタンがいくつか示され、後は11章と12章でアナリシスパターン、デザインパターンの適用可能性が示唆されているだけ。
2019-12-28 13:44:51つまり、モデル設計自体には、いくつかヒントはあるけれど自分で考えなさいということ。その点、エヴァンズさんは正直だ。彼の冒した誤りは、モデル駆動設計のパタンを強調し過ぎたことと、そのモデル駆動設計パタンを前提にモデル設計を語ったことだろう。特に後者は、スジが悪かったと思う。
2019-12-28 13:49:46@tenjuu99 難波和彦氏の批評も読みました。極めて面白いですね。「タイムレス」における、オリエンタルな、ある種、大きな流れに委ねるような感じとは異なり、アレグザンダー氏自身は、かなり意志的かつ合理主義的なひとなんじゃないかという感じがしました。そのあたりの矛盾がまた興味深いです。
2019-12-28 16:54:28@sugimoto_kei ぼくの怪文書より難波和彦氏の文章を読むほうが良いですよね笑。アレグザンダーだけでなくアラン・ケイやアジャイルも東洋的なアイデアを取り入れようとしているところがありますよね。このあたり近代デザインから現代のデザインの変遷を理解する際にキーになるかなと、個人的に思っています。
2019-12-29 00:53:25デザインパタンがパタンランゲージとして機能していないように見えることは、みている範囲が狭いからだとおもうな。ただのつくりかたパタンとしてみる人もいるだろうけど、そうじゃない人達もそのなかからうまれているとおもう。またそこが土台での会話も成立しているのだから別にってかんじ。
2019-12-28 04:43:52デザインが対話であるというのは、人間がデザインという行為を見出したいという意味においてはそうだとおもう。デザインを知らない人は「いい形と色だね」とかいうだろうし。
2019-12-28 04:46:42パタンは自然言語だから曖昧になのではない。それはプロセスのせいだ。 デザインプロセスではユーザー、デベロッパーなど様々な人々と会話する必要があり、バランスが欠けると「ユーザーにとってはどうでもいい用語がある」とか「デベロッパーに十分な構造が見えない」とかがおきる。
2019-12-28 04:50:27よいデザインプロセスの1つ要素には「よい未来」と「よい実装」がうまれそうっていう感覚を関係者がもてることがあって、できあがったものをつかってみたときに、ある種のオタクたちが「このデザインは。。。」と思想をめぐらし、またあらたな知見をえるという繰り返しなのだとおもっている。
2019-12-28 04:52:17アレグザンダーのパタンランゲージの結果だけをみると「あぁ生活をデザインしたいんだな」「これでどうやって実装するのだ」とかになるだろうし、ソフトウェアのほうをみれば「実装はわかった」「ユーザーのなにを表現できたというのだろう」とかになるだろう。
2019-12-28 04:56:36いまのところ、ユーザーとデベロッパーの両者にとって必要十分なランゲージの側面というのがみつかっていないだけであり、また、それは存在しないとしたら、ことなる側面をデザインプロセスのなかで注視しなければいけないというだけだとおもっている。
2019-12-28 04:56:47エヴァンスのDDDがわかりにくいのは、ユビキタス言語という重要な概念を提案してくれたと同時に、いくつかの側面を注視する大切さを伝えようとして、後者の伝えかたがいくばくか(もしくは恣意的に)うまくないということだとおもう。
2019-12-28 04:59:59ソフトウェアが複雑になるにつれ、建築でいう内装がUIデザインに、構造設計がシステムアーキテクチャデザインみたいになってきていて、これらをデザインとしてどう俯瞰できるようにするのかというのは非常に興味のある話。
2019-12-28 05:08:52という与太話。このブログをみておもったことをつらつらと。 note.com/tenjuu99/n/ne1…
2019-12-28 05:12:55