編寫乾淨優雅的代碼就是讓編碼成爲我的樂趣所在。我一直在尋找更多方式來做到這一點。下面是我的一些戰略/戰術:創建簡潔優雅的代碼的提示
保持大的代碼塊程序/方法/類的小塊
確保每個程序都有退出的一個點。使用循環頂部的邏輯退出循環,而不是使用中斷或某種類型的「退出循環」關鍵字。
避免全局
如果你只是進行復制/粘貼你的代碼,是時候建立一個常規/班/庫。
...和一個我一直在玩弄最近:
- 嘗試更換,如果/分支/選擇的情況下用不同的方法簽名(多態性) 在YouTube上 清潔守則會談
編寫乾淨優雅的代碼就是讓編碼成爲我的樂趣所在。我一直在尋找更多方式來做到這一點。下面是我的一些戰略/戰術:創建簡潔優雅的代碼的提示
保持大的代碼塊程序/方法/類的小塊
確保每個程序都有退出的一個點。使用循環頂部的邏輯退出循環,而不是使用中斷或某種類型的「退出循環」關鍵字。
避免全局
如果你只是進行復制/粘貼你的代碼,是時候建立一個常規/班/庫。
...和一個我一直在玩弄最近:
是的,那些是好的。
我認爲最好的一種是假定第一個版本不是最後一個版本。計劃重寫和重構。看看小塊,然後想想如何更優雅地完成它們。
另外,閱讀代碼,尤其是已知的好代碼。
「一,二,許多」。
這個星球上某個遙遠角度的偏遠地區的野生羣體,他的語言中沒有任何詞語可以算作兩個以上。之後,有一個「許多」的字眼。 我以前的老闆鼓吹這句話,以保持例程中參數的數量很少。我傾向於同意他的觀點。
「不要重複自己(DRY)」
如果說在兩個地方同樣的事情,那麼你有問題,你應該重構。遲早兩個(或更多)地方將會失去同步。
「保持簡單,愚蠢的(KISS)」
不要過度設計。在程序/方法/類的小塊
- 保持大的代碼塊
我喜歡做的是建立在第一個主要功能,所以我從一開始就不需要創建大量的迷你函數,這會妨礙我的思路,然後再將它重構爲更小的函數。重構是偉大的。
確保每個例程都有一個退出點。使用循環頂部的邏輯退出循環,而不是使用中斷或某種類型的「退出循環」關鍵字。
這不一定更清潔。它只是使證明函數正確性更容易。有關更多詳細信息,請參閱Should a function have only one return statement?。
避免全局
有時全局都還好。很多時候,人們只是爲了避免使用一個「全局」,而實際上它是一個全球化的更多管理費用。
如果您還沒有閱讀Code Complete,我強烈建議您停止閱讀Stack Overflow幾天(或者需要很長時間)並閱讀它。
不要拖延。永遠。當你想到一種改進代碼段的方法時,不妨做到這一點,不管它有多困難,或者需要多長時間。總是尋找潛在的改進,永遠不要輕易走出困境。
現在,這不是開發代碼的最有效或最有利的方式,這就是爲什麼專業代碼庫很少有美的例子。但那不是你的問題。
很多時候,乾淨的代碼與短功能或更好的縮進相關聯。所以不要陷入這個陷阱。花大量的時間來設計課程。有很好的原則,如SOLID principles,這將允許您設計和建立有意義的課程。然後選擇合適的設計模式來模擬你的類的行爲。當然,一定要記住遵守簡單的原則。最後,確保您的架構中有複雜功能的代碼覆蓋範圍。以下所有這些都可以幫助您編寫乾淨的代碼。這是我推薦給我的朋友和同事的好的list of books。
在基本的計算機科學,我聽到的東西,始終堅持與我:
「:0,1,和無限在編程中只有3個數字。」
實際情況當然會迫使我們使用其他數字。但是我總是覺得我的代碼變得不那麼優雅,如果我使用這三個以外的數字。
雖然也許不是你正在尋找的答案的類型,我會說基於組件的設計傾向於藉助優雅的架構使自己成爲優雅的代碼。思考如何分離代碼會將結構和順序應用於混沌過程(有時)。代碼優雅可以在實現之前(最好是徹底的)在前期擔心,或者通過重構和簡化初始集成之後尋求優雅。如果您使用基於組件的模型,那麼重構應用程序的整體部分變得更容易管理 - 只要輸入和輸出在美化/簡化過程中保持不變。對於我來說,關注整體應用程序結構已成爲優雅代碼的關鍵。除非您的應用程序的範圍很小,否則很難在沒有前者的情況下實現後者。
底線是代碼是一個可塑性和不斷變化的過程。優雅只是在不同的時間點,因爲一些東西可以開始優雅,並在幾次迭代後變得雜亂無章。在那之後,它會重新構造成優雅的等等,這就是爲什麼通過健全的架構來支持這個想法的原因,將會更容易地保持代碼的優雅性,而不會破壞無關的項目。
這裏沒有問題。任何有關重構的書籍都會給你帶來很大的樂趣。 – 2009-05-02 00:06:53
(投票結束)這個「問題」過於模糊和開放。查看本網站上的所有[最佳做法]標籤。 – Brian 2009-05-02 00:09:59
這是社區Wiki線程嗎? – 2009-05-02 00:14:29