對(duì)于每個(gè)軟件系統(tǒng)屋谭,我們都可以通過行為和架構(gòu)兩個(gè)維度來體現(xiàn)它的實(shí)際價(jià)值脚囊。
行為時(shí)軟件最直觀的價(jià)值維度。程序員的工作就是讓機(jī)器按某種指定的方式運(yùn)行給系統(tǒng)的使用者創(chuàng)造或者提升利潤(rùn)桐磁。
架構(gòu)作為軟件價(jià)值的第二個(gè)維度悔耘,體現(xiàn)在軟件的靈活性。軟件系統(tǒng)必須保持靈活我擂,軟件的目的就是讓我們可以以一種靈活的方式來改變機(jī)器的工作行為衬以。
然而實(shí)際工作中我們無法使兩個(gè)維度都得到最大期望,這就需要從中進(jìn)行取舍校摩,那么我們需要知道哪個(gè)維度的價(jià)值更大看峻。是系統(tǒng)的正常工作更重要,還是系統(tǒng)的易于修改更重要衙吩?
通常互妓,業(yè)務(wù)部門的人會(huì)說軟件的正常工作更重要,開發(fā)人員也認(rèn)可這種看法坤塞。這是錯(cuò)誤的冯勉,可以用個(gè)簡(jiǎn)單的邏輯來推導(dǎo)。
如果某程序可以正常工作摹芙,但是無法修改灼狰,那么當(dāng)業(yè)務(wù)需求變更時(shí),它將無法工作浮禾,我們無法通過修改的方法使它正常工作交胚,程序的價(jià)值將會(huì)為0。
如果某程序當(dāng)前無法正常工作盈电,但是可以很容易的修改蝴簇,那么把它改好,并且可以隨著需求變化時(shí)時(shí)更改挣轨,都應(yīng)該是很容易的事军熏,那么程序?qū)⒅刃虍a(chǎn)生價(jià)值。
來自 《架構(gòu)整潔之道》- 羅伯特- C-馬丁