軟體設計哲學—角色 66/365

About Design

先有好的模型才能作出好的軟體,那好的模型由誰來設計?

我們活在現實世界,所以要在電腦世界建造良好的模型,就需要很多角色的合作。顯然,我們有要了解現實世界問題的人,還有能在電腦世界建造模型的人。以及能夠協助兩者合作的中間人。在領域驅動設計(Domain-driven design)這本書中,作者Eric Evans把這三個角色付予了不同的名字。

設計好的模型需要三個角色:

1.領域專家(了解現實問題的人)
2.工程師(建造模型的人)
3.DDD專家(協助二者合作的人)

領域專家就是最了解商業領域的人,高爾夫球公司一定有人懂高爾夫球,出版社一定有人懂出版。軟體可以用在任何領域,但一定要有懂那個領域的人,才作的出好軟體。DDD專家是了解領域驅動設計的人,知道什麼樣的流程可以引導團隊挖掘出商業模型。而最後工程師才是把程式寫出來的那個人。

傳統軟體開發最大的誤解,就是認為開發全是工程師一個人的事。但沒有了其它兩個角色,工程師設計出的模型,有可能與現實領域中的狀況相去甚遠。這樣的軟體沒有辦法面對來自該領域的突發狀況。要開發商業軟體,就需要所有角色的通力合作。在Evans的書中,有很大的篇幅是在「推銷」領域專家的重要,以及DDD的價值。必須讓企業了解,這些看似和開發無關的角色必須聚在一起,才能設計出好的模型。

當然,領域專家不懂程式,工程師不懂領域。兩邊溝通起來自然是困難重重。但這不就是企業中最常見的問題嗎——溝通。經過不斷的討論,找出一個「統一語言」(Evans用字),讓領域專家可以用來描述現實狀況,而工程師可以用同一個詞語描述它要建造的模型。就可以釐清適合的模型。要打破兩個世界的隔閡,先要讓角色間溝通無礙。



--
photo credit: Simon Blackley via photopin cc
Recommend
and 1 recommended


Keanux

登入或註冊帳號

Facebook 登入

我們絕對不會未經過你的允許發表到Facebook