---恢復內容開始---
好的設計意味著當我們做出乙個改動時,就好像整個程式都在期待它一樣。我們可以呼叫少量可選的函式來完美地解決乙個問題,而不會為軟體帶來其他的多餘的***。
「只管寫我們自己的**,框架會幫我們收拾一切!」。
關鍵部分:框架意味著變化。衡量乙個設計好壞的方法就是看它應對變化的靈活性。
好的改變,是在下乙個人在新增**的時候不會察覺我們的**的變動。
我們可以用一堆方式來定義「解耦」,不過只要我們明白,如果兩塊**耦合,意味著我們必須同時了解這兩塊**。如果我們使它們解耦,那麼我們只需要了解其一。
軟體框架的乙個關鍵目標:在我們前進前,最小化我們的腦海中的知識儲存量。
當然,對於解耦的另乙個定義就是當改變了一塊**的時候,不必更改另外一塊**。耦合得越低,更改所波及的範圍就會越小。
乙個框架良好的程式工作起來會讓人感覺愉悅,每個人都會變得更加高效。良好的框架會在生產力上產生巨大的差異。
但是!良好的框架需要很大的努力及一系列準則,每當我們做出乙個改變或者實現乙個功能時,我們必須很優雅的將它們融入到程式中的其餘部分。我們必須非常謹慎地組織**並保證其在開發周期中經過數以千計的小變化之後任然具有良好的組織性。我們必須考慮程式的哪乙個部分應該要解耦然後在這些地方引入抽象。同樣地,我們要確定在**做一些擴充套件以便將來很容易應對變化。
開發中我們需要考慮的幾個因素:
1.我們想要獲取乙個良好的架構,這樣在專案的生命週期中便會更容易理解**。
2.我們希望獲得快速的執行時效能。
3.我們希望快速完成今天的功能。
我們應該致力於保持資料結構和演算法的正確性(在這個順序下),然後繼續往下做。如果能保持簡單性,**量就會少很多。這意味著更改**時,我們的腦袋裡只需裝在更少的**。但是請注意,並不是簡單的**會花費較少的時間來編寫。我們可能會覺得最終的**量更少了,但是乙個好的解決方案並不是更少的實際**量,而是對**的昇華。
1.抽象和解耦能夠使我們的程式開發變得更快和耕簡單。但不要浪費時間來做這件事,除非我們確信存在問題的**需要這種靈活性。
2.在我們的開發周期中要對效能進行思考和設計,但是要推遲那些降低靈活性、底層的、詳盡的優化,能晚則晚。
3.盡快地探索我們的遊戲的設計空間,但是不要走得太快留下乙個爛攤子給自己。畢竟我們將不得不面對它。
4.如果我們將要刪除**,那麼不要浪費時間將它整理得很整潔。
5.最重要的一點,若要做一些有趣的玩意兒,那就樂在其中地做吧。
---恢復內容結束---
《遊戲程式設計模式》一1 3 效能和速度
你有時候會聽到關於軟體架構和相關概念的批評聲,尤其在遊戲開發中 它會影響到遊戲的效能。許多模式讓你的 更加靈活,但是它依賴於虛函式派發 介面 指標 訊息以及其他至少有一些執行成本的機制。乙個有趣的範例是c 模板。模板元程式設計有時可以讓你獲得抽象介面而沒有任何執行時開銷。對靈活的定義,不同人有不同的...
遊戲程式設計模式 命令模式
最近深感 設計對於軟體開發過程中的重要性,所以重新拾起了設計模式,以前學的比較鬆散,理解不夠,這一次本著learning,try,teaching的精神,重新認識和學習設計模式。這一次參考robert nystrom 著的 遊戲程式設計模式 一書,與原先的gof所著的24種設計模式不同,但思想是相通...
Flex遊戲程式設計效能優化
1.首先,元件的座標必須是整數 x 整數 y 整數 2.對於按鈕元件啟用cache as bitmap,會生成四個位圖 對不需要使用disable屬性的按鈕,盡量使用 button,因為4.避免for var i int 0 i arr.length i 的寫法,先用var i int arr.le...