程式碼越少越乾淨嗎?
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
在我眼中,乾淨的程式碼就是簡單、易於理解的程式碼。不過分設計,模板檔案儘可能地少,語義明確。那麼,這樣是否就意味著程式碼越少越乾淨呢?
我不這麼認為。大多數情況下,更少的程式碼往往語義更模糊,更難理解(因此更難維護)。
當我使用jBehave工作和測試元過濾時,我寫了類似於下面的程式碼:
public Embedder configuredEmbedder() { Embedder embedder = super.configuredEmbedder(); ignoreStoriesAndScenariosWithMetaInformationParameter(embedder, "ignore"); return embedder; } private void ignoreStoriesAndScenariosWithMetaInformationParameter(Embedder embedder, String ignoreParameter) { embedder.useMetaFilters(Arrays.asList("-" + ignoreParameter)); }
在之後對這些程式碼的討論中,我的一個同事表示,他剛剛刪除了一些“沒有必要”的私有方法,於是程式碼變成了這樣:
@Override public Embedder configuredEmbedder() { Embedder embedder = super.configuredEmbedder(); embedder.useMetaFilters(Arrays.asList("-ignore")); return embedder; }
顯然,方法更短,程式碼更少了。對我們來說,使用這樣的類,或許能讓我們在工作時對這個方法所發生的變化一目瞭然。但是如果有新加入專案的人呢,並且這傢伙之前從未使用過jBehave呢?對他而言,長一點的程式碼反而可以獲取更多的資訊,即使他不知道jBehave是如何工作的,不清楚“元過濾器”是什麼,不懂minus的意思——但是至少能理解我們想要實現的目標。
當我試圖解釋自己的看法時,其他開發人員雖然同意我的觀點,但卻認為通過新增註釋也可以達到相同的效果。是的,我完全同意,新增註釋肯定是有效的。這只是風格問題。我個人不喜歡註釋而已,不過,在上述這種情況下,或許註釋的確是更好的選擇,因為我們可以通過註釋解釋元過濾器程式碼和jBehave層檔案之間的聯絡。
所以最後,程式碼成了這樣的:
@Override public Embedder configuredEmbedder() { Embedder embedder = super.configuredEmbedder(); // ignore stories and scenarios with meta information parameter @ignore. embedder.useMetaFilters(Arrays.asList("-ignore")); return embedder; }
當然你可以說,這樣一個小小的事例不值一提。但是,一個專案的風格,我認為是非常重要的。你也可以通過討論具體的例子找到一種普遍的風格。也許其他開發人員會因此而考慮他的程式碼是否會給新加入的同事帶來困惑,從而去新增註釋,而不是將方法縮成減一行程式碼。
結論
乾淨的程式碼並不總意味著更少的程式碼。所以,你需要在編寫更多的小方法和縮減程式碼行數之間權衡得失。關於編碼風格,以後我會再發帖子予以討論。
你更喜歡哪種解決方案,為什麼呢?歡迎留下各位的看法。
譯文連結:http://www.codeceo.com/article/is-clean-code-less-code.html
英文原文:Is Clean Code less Code?
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- php乾淨程式碼PHP
- 測試前景分析——崗位會越來越少嗎?
- eclipse 保持程式碼乾淨Eclipse
- 讀書筆記-乾淨程式碼筆記
- 精華帖是不是越來越少了?
- 乾淨程式碼的幾個特點 -Xebia
- JavaScript修飾器-讓程式碼更乾淨JavaScript
- 如何編寫乾淨高效的CSS程式碼CSS
- 為什麼越來越少的人用jQueryjQuery
- 程式碼是債務,越少越好
- JavaScript中使用bind()方法讓程式碼更乾淨JavaScript
- 乾淨的程式碼: 編寫可讀的函式函式
- 程式設計師越老越優秀嗎?程式設計師
- C#6新特性,讓你的程式碼更乾淨C#
- Java程式設計師會越老越吃香嗎?Java程式設計師
- 6個小技巧教你編寫乾淨整潔的程式碼
- 最‘乾淨’的程式語言——空白程式語言
- 程式碼簡潔之道:編寫乾淨的 React Components & JSXReactJS
- 經驗之談:程式碼該怎樣寫才能乾淨整潔
- 乾淨整潔程式碼(Clean Code)的本質是什麼? - mariocervera
- 5月全國程式設計師工資出爐,女程式設計師或將越來越少?程式設計師
- Windows賺的錢越來越少了,Win10咋救微軟WindowsWin10微軟
- LeetCode(面試)中寫出乾淨的程式碼(小技巧合集)LeetCode面試
- 經驗分享:乾淨整潔程式碼(clean code)的特點 - oliver
- 讓你的Python程式碼更乾淨只需簡單一步Python
- 乾貨!可以使用低程式碼平臺代替Excel嗎?Excel
- 為什麼越來越少的開源專案使用 GPL 協議協議
- 淨現值程式碼
- Nielsen:美國網路視訊觀眾看電視時間越來越少
- 如何寫出優質乾淨的程式碼,這6個技巧你不能錯過!
- 使用 React 和 TypeScript something 編寫乾淨程式碼的10個必知模式ReactTypeScript模式
- 使用依賴關係注入在 ASP.NET Core 中編寫乾淨程式碼ASP.NET
- 掃碼挪車越來越熱,這個共享挪車碼專案你瞭解嗎?
- 程式設計面試問題真的越難越好嗎?No!程式設計面試
- ES6+好用的小技巧,讓你的程式碼更乾淨,短巧,易讀
- Windows給微軟賺的錢越來越少:為何出現這種情況?Windows微軟
- 面試官常說,培訓機構出身的程式設計師“程式碼不乾淨”,為什麼?面試程式設計師
- iOS非越獄逆向--程式碼注入iOS