==或許是領域建模的真相 - 張逸

或許是領域建模的真相 - 張逸 - 博客園
http://www.cnblogs.com/wayfarer/p/5339134.html

或許是領域建模的真相牙丽? - 簡書
http://www.reibang.com/p/f936b8978152

我們一提及領域建模壹将,就好像回到了石器時代陆淀。然而這個謎題至今還未解決贯吓,就好像穴居人的生存方式羔挡,我們只能猜測腻格、推測以及演繹诊赊,卻不能真實復現匹颤。
Martin Fowler的《分析模式》總結了諸多領域分析模式仅孩,Eric Evans開創(chuàng)了領域驅動設計的辦法,至于還要老的CRC方法印蓖,用例驅動辽慕,ICONIX方法以及稍新一些的四色建模法,都在嘗試領域模型的建構赦肃,結果仍然差強人意溅蛉。
這個問題或許是Mission Impossible公浪,因為領域邏輯其實是一個復雜系統(tǒng),系統(tǒng)中的模型如三體一般互相影響船侧,卻又隱沒在混沌中欠气,并不真實清晰地凸顯出來。
在許多項目中勺爱,我多數采用混用手法進行建模晃琳,CRC、用例驅動琐鲁、領域驅動以及四色建模卫旱,什么適合就選擇什么樣的手法∥Ф危可是到了最后顾翼,似乎還是憑借著經驗在跟著感覺走。沒有教會領域建模的方法奈泪,只有可意會不可言傳的感覺适贸。之所以還要提方法,不過是事后諸葛亮而已涝桅。
幾年前接觸到CQRS(Command Query Responsibility Separation)模式拜姿,為我隱約打開了一扇窗,只是窗外的風景有些模糊冯遂,不敢跳出去蕊肥。繼而是函數式思想每時每刻在顛覆我舊有的設計思想,一步一步地侵蝕著OO的陣地蛤肌。我沒有放棄OO這個陣地壁却,但我覺得攻守的布局可以豐富些,不拘一格才能更好地解決敵人(需求)裸准。
最近在使用React和Redux開發(fā)前端展东,所謂Pure Component以及Redux的reducer思想好像一陣大風,刮去了窗外朦朧的霧綃炒俱,風景變得逐漸清晰起來盐肃。領域世界的建筑墻上,其實刻滿了“狀態(tài)”兩個字权悟!
岔開一筆談談另外的印象砸王。我在了解Datomic數據庫的架構設計思想時,被這么句話驚呆了:
Datomic將數據庫視為信息系統(tǒng)僵芹,而信息是一組事實(facts),事實是指一些已經發(fā)生的事情小槐。鑒于任何人都無法改變過去拇派,這也意味著數據庫將累積這些事實荷辕,而非原地進行更新。雖然過去可以遺忘件豌,但卻是不能改變的疮方。這個不變性(immutability)帶來了很多重要的架構優(yōu)勢和機會。

醍醐灌頂啊茧彤,這不是設計骡显,而是哲學!
讓我們再想想UML里面的狀態(tài)圖以及工作流中著名的“狀態(tài)機(State Machine)”曾掂”拱或許我們在建模中很少使用狀態(tài)圖,然而讓我們開開腦洞珠洗,你是否覺得:任何業(yè)務邏輯其實都可以轉換成狀態(tài)的遷移溜歪?
再看看四色建模中的“時標性對象(moment-interval)”,根據徐昊同學對四色建模的解構许蓖,時標性對象是建模的起點蝴猪,這類對象的共同特質在于它在時間線中留下了不可磨滅且不可更改的足跡。根據Datomic哲學思想膊爪,顯然自阱,曾經存在的這些足跡或許可以湮滅,但存在的事實卻不可湮滅米酬。于是沛豌,我們可以對這些足跡進行“追溯”,這就是所謂的“Event Sourcing”了淮逻。
是什么導致事件(Event)產生的琼懊?回到CQRS模式,就是Command爬早;而在用例驅動的語境中哼丈,就是用例(Use Case);跳到函數式思想筛严,則可以視為函數醉旦。當然,你也可以認為它是對象的行為桨啃,但如果我們將Command以及Event都視為不變的對象呢车胡?在Scala中,它們都是Case Class照瘾。
然則匈棘,這些概念的本質可否認為就是“狀態(tài)”世界的各種表征呢?
觸摸到“真相”了嗎析命?


然而The Matrix中的墨菲斯卻說:
真相是你是一個奴隸主卫,尼奧逃默。你,和其他所有人一樣簇搅,生來受奴役……你給關在一所監(jiān)獄里完域,這監(jiān)獄你無法聞及,無法品嘗瘩将,無法觸摸吟税。這是你頭腦的監(jiān)獄。

會否我們對領域世界的思考姿现,其實就是頭腦的監(jiān)獄肠仪?
柏拉圖提出過一個著名的洞穴隱喻。他將不懂哲學的人比喻為被關在洞穴中的囚犯建钥,這些囚犯因為被鎖著藤韵,所以只能看著眼前的墻壁,不能轉頭熊经。他們的背后生著一堆火泽艘,他們只能看到墻上自己和其他東西的影子。他們無法回頭镐依,不知道有火匹涮,便以為墻上的影子是實物。某一天槐壳,一位囚犯逃離了洞穴然低,并發(fā)現了真相,發(fā)現自己以前被影子騙了务唐。如果是哲學家雳攘,他定會回到洞中將真相告訴大家。但是在別人眼中枫笛,他肯定是傻子吨灭。
故而,我無法解答這是否“真相”刑巧,或許我以為找到了喧兄,其實不過是火堆將領域建模的方法投影到墻上,而我湊巧是那個被鎖著的囚犯啊楚。
行文至此吠冤,其實我僅僅提出了問題。如果你覺得我的思緒一片混亂恭理,我會欣然拯辙,因為你讀懂了,我正是在清晰地描述一路走來混亂的思維過程颜价。我打算信步而行涯保,搖頭晃腦只是為了觀賞兩邊的風景《希現在是春天,路畔的花園粉色桃花白色梨花開了遭赂,或許還有櫻花,因為零落的一片一片花瓣在水里有些哀傷横辆。風景太好撇他,我不忍走到終點,改天繼續(xù)說說我的思考片段罷狈蚤。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末困肩,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子脆侮,更是在濱河造成了極大的恐慌锌畸,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件靖避,死亡現場離奇詭異潭枣,居然都是意外死亡,警方通過查閱死者的電腦和手機幻捏,發(fā)現死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門盆犁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人篡九,你說我怎么就攤上這事谐岁。” “怎么了榛臼?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵伊佃,是天一觀的道長。 經常有香客問我沛善,道長航揉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任路呜,我火速辦了婚禮迷捧,結果婚禮上,老公的妹妹穿的比我還像新娘胀葱。我一直安慰自己漠秋,他們只是感情好,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布抵屿。 她就那樣靜靜地躺著庆锦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪轧葛。 梳的紋絲不亂的頭發(fā)上搂抒,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天艇搀,我揣著相機與錄音,去河邊找鬼求晶。 笑死焰雕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的芳杏。 我是一名探鬼主播矩屁,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼爵赵!你這毒婦竟也來了吝秕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤空幻,失蹤者是張志新(化名)和其女友劉穎烁峭,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體秕铛,經...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡约郁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了但两。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棍现。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖镜遣,靈堂內的尸體忽然破棺而出己肮,到底是詐尸還是另有隱情,我是刑警寧澤悲关,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布谎僻,位于F島的核電站,受9級特大地震影響寓辱,放射性物質發(fā)生泄漏艘绍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一秫筏、第九天 我趴在偏房一處隱蔽的房頂上張望诱鞠。 院中可真熱鬧,春花似錦这敬、人聲如沸航夺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阳掐。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缭保,已是汗流浹背汛闸。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留艺骂,地道東北人诸老。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像钳恕,于是被迫代替她去往敵國和親孕锄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內容

  • 我們一提及領域建模宦芦,就好像回到了石器時代宙址。然而這個謎題至今還未解決,就好像穴居人的生存方式调卑,我們只能猜測抡砂、推測以及...
    _張逸_閱讀 991評論 2 11
  • //我所經歷的大數據平臺發(fā)展史(三):互聯網時代 ? 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃囈語閱讀 51,236評論 10 200
  • 雙 峰* 生來在此被紅丘陵和水稻田養(yǎng)活得接受河流和太陽的籠絡得有所投靠。要不恬涧,就滾石上山和它一起在峰頂成為大王我...
    王獨樹閱讀 1,270評論 0 3
  • 我們課室是有配備話筒的注益,有線的,但是話筒總壞溯捆,我們就用班費又買了一個類似于丑搔,啊不,就是KTV專用的那種有線話筒提揍,結...
    熊麻叔閱讀 191評論 0 0
  • 在這個80后離婚率居高不下的時代,民政局婚姻登記處還是排著長長的隊伍刨仑。很多人嘴上說著婚姻是墳墓郑诺,可心里依舊在計劃著...
    展顏123閱讀 570評論 0 1