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

2021-08-25 04:31:32 字數 1645 閱讀 3030

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

習慣1:經常反思

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

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

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

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

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

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

一定要確保各個模式是正交的,而且它們可以協同使用。不斷地捫心自問:「模式x和模式y之間的區別是什麼?」如果兩個模式解決的問題是相同的或具有相似性,那麼也許能把它們合併到一起。如果兩個模式使用了相似的類層次結構,那麼不必擔心。物件導向程式設計提供的機制本來就不多,所以它們的用法也相對有限。同樣的類層次結構經常會產生截然不同的物件結構,它們解決的問題也多種多樣。模式之間的區別應該由它們的意圖來決定,而不是由實現模式的類層次結構來決定。

習慣5:有效地呈現

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

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

習慣6:不懈地重複

鼓勵你的同事在討論設計時引用你的模式,並在需要的時候參與到此類討論中。尋求機會,將你的模式運用到日常工作中去。盡可能廣地傳播你的模式,甚至可以將它們提交給plop之類的會議或c++ report、smalltalk report和journal of object-oriented programming之類的書刊。這樣的**可以獲得大量良好的反饋。

成為高效程式設計師的7個重要習慣

有自己的編寫風格 我童年時的鋼琴教師是這麼評價我和我姐姐哥哥的 你姐姐的時間感強,你哥哥的鍵盤打得不錯。然後他停頓了一下說 你嘛,嗯,你很努力。程式設計是一種有些人能做有些人不能做的事,但還有一些人則是天才。雖然我有過多年的練習,鋼琴還是彈不好 雖然我那麼喜歡打球,水平仍然一般般。但我確實認為我有程...

高效能人的七個習慣 7種習慣,進行高效的效能優化

高效能人的七個習慣 by tenni theurer.作者tenni theurer。here s the piece on ydn yahoo developer network 這是有關ydn 雅虎開發者網路 的文章。read and adopt.閱讀並採用。tell your friends ...

高效資料中心運維團隊的7個習慣

何執行乙個龐雜的機房,進行無數的主動和被動的操作,同時避免錯誤導致的資料中心故障?以終為始 以終為始是一種以結果為導向的思維方式,提示人們在做事情前要先明確做事情的最終目的,也就是 不忘初心,方得始終 資料中心的終極目標是支援業務系統的不間斷執行。在接手乙個資料中心的運維任務之前,我們首先需要明確業...