見出し画像

ソフトウェアはモデリングゲー

大抵の人間は「森羅万象」と聞いて思い浮かべるのは「神羅万象チョコ」であるが、「モデリング」を思い浮かべる人間はいるか。俺だ。


ソフトウェア開発におけるモデリングとは「森羅万象」すなわち「ヒト」「モノ」「コト」を構造化することである。モデリングはソフトウェアの品質を左右するだけでなく、プロジェクトの命運、ひいてはビジネス成否にインパクトする事が多々ある。にも拘わらず、あまり語られることのないテーマだ。(翻ってエンジニア界のブルーオーシャンだと思っているが、それはまた別の記事をあげよう)

いい設計にはいいモデリングが前提となっていると言っても過言ではない。モデリングが難しい理由は、①業務知識、②DBAの経験、③アプリケーション開発経験が必要だからだ。①~③を高いレベルで所持している必要がある。そんな奴いねぇだろと思うだろうが、ごく稀にいるのだ。とんでもねぇモデリング職人が。

昨今では、世の中の「コト」が複雑怪奇になり過ぎた結果、アプリ側のインピーダンスミスマッチが無視できない大きな負債に成長してしまうケースが増加した。そこで最近のソフトウェア開発では、「データ指向設計」から「ドメイン駆動設計(DDD)」という手法に変わりつつある。これは「モノ」よりも「コト」に注目してソフトウェアを作った方が幸せになるというムーブメントである。これによりアプリ側のインピーダンスミスマッチは大きく改善されたが、また別の問題を抱えることになる...。(それはまた今度)

一方で、「ヒト」に関してはIdPに全てを委ねてしまうのが定石となっている。「ヒト」が持っているコンテキストなんてのは「コト」に比べると遥かにシンプルだ。ユーザマスタなんてのはここ数年見ていない。


...アカン。すまん風呂敷を広げ過ぎた。数行にまとまらない。なにより固い。ふざけたい。筋トレしたい。「モデリング」がテーマなんて本一冊書くレベルなんだよ。もういいや、モデリングゲーなのが10%くらいは伝わっただろう。そして俺が広めたかったのはこれだ。

「Schema.org」というコミュニティをご存知だろうか?

彼らは「森羅万象」を司る神である。崇め奉るんだ。今なら入会金初月無料だ。嘘だ。彼らは「森羅万象」を構造化して標準化しているコミュニティである。活動の詳細は彼らのページを見て欲しい。

さて、インターネットの世界において、この活動による恩恵は計り知れない。

ひとつは検索エンジン最適化だ。みんな大好きSEOってやつだ。検索エンジンのオプティマイザという聖域に干渉できるルールの一つとしてSchema.orgが大変有効である。Schema.orgのメンバーにGoogleやMicrosoftがいるのだから当然である。

もうひとつがモデリングだ。Schema.orgの頂点である定義を確認してほしい。

「Thing」である。森羅万象である。


長い記事は嫌いだ。書くのも読むのも疲れる。
今回は俺が最も利用する3つの定義を紹介しておく。

いずれもThingを継承した定義であるが、この3つを掘っていけば、ありとあらゆる「コト」「モノ」がモデリングできるはずだ。逆に言うと、これに当てはまらない「コト」「モノ」がある場合は要注意だ。それはまだ分析・分解が足りていないのではないか、あるいは「森羅万象」を超越する「ナニか」である可能性もある。

Schema.orgの力を借りたとて、ガチのモデリング職人には到底かなわないが、モデリング道を踏み外すことはかなり減るだろう。是非とも困った時の参考にしてみて欲しい。

現場からは以上です。




この記事が気に入ったらサポートをしてみませんか?