######無生有、無勝有 pk 設計模式
無生有,無勝有!
如果乙個事物從無發展到有,那麼它以後的發展將受到這個「有」的因子的影響。並且有時,如果這個「有」的因子,是非常致命、強勢、根基,那麼後續它所衍生的子孫,可能都必須沿著它在幾個世紀前規定好的歷史固定的路線走,地球圍繞太陽的橢圓軌道執行,才能「允許出生」,「名列宗祠「!
就如乙個執行緒安全的模組,後來基於它所發展出來的模組,就必須且一定是,帶有執行緒安全的血緣基因!執行緒安全的子孫不能再變成非執行緒安全,退卻、縮變回去了。但是,如果這個模組在初始設計的時間,就是非執行緒安全的!那麼,其在後面生命發展的程序中,就可以至少沿著兩條路進行行走、發展。一:保持革命本色,繼續非執行緒安全的特性,沿著二萬五千里長征路進行行進。二:模組整體上,進行乙個很」薄「、簡單地包裝,成為執行緒安全的模組,從此獲得無生有的生命第二春!
從這裡,我們可以看到,模組設計時,乙個理想化的追求原則,就是保持一種「無」的狀態!!因為無生有,無勝有,呵呵!
但是,理想是美好的,現實是殘酷的,「無」是乙個非常理想化的目標,我不知道在現實中其可以不可以實現。但是,有乙個弱化的目標,恐怕是我們能夠做到的,就是,在設計模組的時間,我們可以盡可能地將「模組所對外界的假設作到最少、最簡單」。因為在假設最少、最簡單的情況下,從模組設計的反方向來看,模組的使用者只需要作很少的事情,就可以復用其這個模組來,而不是需要模組的使用者,準備了一大籮頭」東西「!這個視角可以算作是「假設最少」設計,從其反面來看時的乙個鏡子。
如果,乙個模組是乙個假設、約束眾多,我們只能說,這個模組太難用了,然後這個模組就隨之失去了價值,存在的意義。我記得,乙個計算機界牛人曾經有這麼乙個哲言:」軟體的價值,存在於它被長久地使用「,這也是每乙個稱職的程式設計師所應該夢寐以求追求的目標。
在我看來,馮諾伊曼的「儲存執行」計算機計算模型,很好地提現了「假設最少」的設計原則,才是馮諾伊曼機器結構在幾十年間都沒有怎麼變化過,確實值得追捧的模型的!
困了,睡覺了,呵呵,一時興起,就寫了以前自己的一點感悟!
敏捷就是無招勝有招
摘自 敏捷究竟是什麼?敏捷到底是什麼?敏捷是關於以下三件事情的 1.最重要的,敏捷是一門社會工程學。這是敏捷最大的特點。它關注的是,如何以乙個團隊的形式開展工作,如何激勵團隊成員,如何相互合作等等。2.敏捷是輕量級的。rup完全依賴顯性知識,與此不同,敏捷還依賴隱性知識。在rup中,我們設法把我們認...
敏捷就是無招勝有招
摘自 敏捷究竟是什麼?敏捷到底是什麼?敏捷是關於以下三件事情的 1.最重要的,敏捷是一門社會工程學。這是敏捷最大的特點。它關注的是,如何以乙個團隊的形式開展工作,如何激勵團隊成員,如何相互合作等等。2.敏捷是輕量級的。rup完全依賴顯性知識,與此不同,敏捷還依賴隱性知識。在rup中,我們設法把我們認...
設計模式無招勝有招之設計原則
這裡的設計原則是大家公認的六條設計原則,即 單一職能原則 開閉原則 依賴倒置原則 黎克特制替換原則 介面隔離原則 迪公尺特法則 其實前面設計方法中有些也是原則,但是不是公認的原則,就歸置到了設計方法中。關於這幾條的好的文章參見 我這裡再加幾句描述。這個幾條原則基本上也是解耦的原則。從解耦的角度看 單...