天天看點

高效模式編寫者的7個習慣

                                                                                                               ——選自《設計模式沉思錄》

習慣1:經常反思

      對編寫模式來說,唯一最重要的事情就是反思。Bruce Anderson是最早對我們的工作産生影響的人之一,早在幾年前他就提出了這一點。定期反思一下自己做了些什麼。想一想自己建構的系統,自己面臨的問題,以及自己是如何解決(或無法解決)它們的。

習慣2:堅持使用同一套結構

      把模式寫到紙上的第一步就是确定它的結構。模式的平均資訊量越大,結構的重要性就越高。一緻的結構可以增加模式的統一性,讓人們更容易對模式進行比較。結構還有助于人們搜尋資訊。結構越簡單就越單調,如果隻是讓人随便看看,可能不成問題,但如果還想讓它起到比較和引用的作用,就無法接受了。

習慣3:盡早且頻繁地涉及具體問題

      由于要涉及具體問題,自然就需要現實世界中的大量例子。例子不應該隻是動機部分的專利。從頭到尾,都應該用例子和反例來解釋一些關鍵點。即便是我們的模闆中最抽象的部分(比如适用性、結構、參與者和協作)也會不時包括一些例子。例如,一些模式的協作部分包含了一些互動圖(interaction diagram),用來展示在運作的時候對象之間如何通信。在從抽象的角度讨論模式時,也可以引用這樣的例子,即便在讨論抽象概念時也要涉及具體問題。

習慣4:保持模式間的差別和互補性

      一定要確定各個模式是正交的,而且它們可以協同使用。不斷地扪心自問:“模式X和模式Y之間的差別是什麼?”如果兩個模式解決的問題是相同的或具有相似性,那麼也許能把它們合并到一起。如果兩個模式使用了相似的類層次結構,那麼不必擔心。面向對象程式設計提供的機制本來就不多,是以它們的用法也相對有限。同樣的類層次結構經常會産生截然不同的對象結構,它們解決的問題也多種多樣。模式之間的差別應該由它們的意圖來決定,而不是由實作模式的類層次結構來決定。

習慣5:有效地呈現

      這裡說的“呈現”有兩個意思:排版和寫作風格。頁面布局的技術、版面、圖形以及列印機的品質直接影響到排版的好壞。盡可能使用最好的軟體工具(字處理程式、繪圖編輯器等)。多使用插圖來解釋關鍵點。你也許認為不需要任何插圖,但很可能你還是會用到。至少它們可以避免單調乏味,而最好的情況下它們可以将那些語言無法解釋清楚的問題解釋清楚。并不是所有的插圖都必須是正式的類圖和對象圖。在很多情況下,非正式的插圖甚至是草圖也能夠傳達同樣多的資訊,甚至更多的資訊。如果自己不擅長畫圖,那麼可以請别人代勞。

      與好的排版相比,好的寫作風格就更加重要了。以清晰直白的方式寫作。最好是使用貼近實際的風格,避免枯燥無味的學究風格。通俗的語氣比較容易被人了解和接受, 進而讓人更快地接納新内容。清晰性和易讀性對大多數寫作來說都非常重要,對模式寫作來說尤其重要。模式的概念還比較新,如果談論的内容又比較複雜,那麼有些人将完全無法領會其中的要點。要想方設法讓模式變得更易了解。

習慣6:不懈地重複

      你需要一遍又一遍地編寫和重寫你的模式,對此要做好心理準備。不要追求必須等前一個模式到達完美狀态後才開始編寫下一個模式。記住,模式不是孤立的,它們之間會互相影響。對一個模式所做的顯著修改很可能會影響到其他模式。就像任何一個循環往複的過程一樣,在某一時刻你的模式會趨于穩定,這時你應該把自己努力的成果彙集起來,供他人閱讀、了解并發表評論了,但它并不代表模式開發的終點。

習慣7:收集并吸取回報

      鼓勵你的同僚在讨論設計時引用你的模式,并在需要的時候參與到此類讨論中。尋求機會,将你的模式運用到日常工作中去。盡可能廣地傳播你的模式,甚至可以将它們送出給PLoP之類的會議或C++ Report、Smalltalk Report和Journal of Object-Oriented Programming之類的書刊。這樣的曝光可以獲得大量良好的回報。

高效模式編寫者的7個習慣

繼續閱讀