您的位置:首頁>正文

多年軟體發展大牛總結出10 個程式設計技巧

何以敲出一手好代碼?

好代碼可以定義為易讀、易懂、易調試、易改, 最重要的還要少缺陷。 顯然, 要想敲出一手好代碼, 是要花不少時間, 但這在長久來看是有意義的, 因為你可以花更少時間及精力去維護和複用你的代碼。

事實上, 我們可以將好代碼等同於可複用的代碼, 這也是下面提到的重要原則之一。 代碼可能只是完成了程式設計工作中短期目標的特定功能, 但如果沒人(包括你自己)願意複用你的代碼, 這代碼在某種程度上可以說是不足且有缺陷的。 要麼太複雜、要麼太具體、要麼在不同情況下極有可能崩掉,

或者其他程式師可能不相信你的代碼。

下面無論你的經驗水準如何, 如果你始終如一地將下面的妙招應用到你的代碼中(包括你的實驗或者原型), 那麼一手好代碼隨手可得。

1、 遵循單一責任原則

函數在程式師的庫中是單一最重要的抽象形式。

可以被覆用的機會越多, 你要寫的代碼就越少, 這些代碼就越可靠。 遵循單一責任原則的小小函數更有可能被重新使用。

2、最小化共用狀態

應該將函數之間的隱式共用狀態最小化, 無論它是檔作用域變數還是物件的成員欄位, 這有利於顯式地將所需的值作為參數。 當明確函數實現所需結果時, 代碼變得容易理解和重用。

對此可以得出一個結論, 你應該優先選擇靜態無狀態變數而不是物件的成員變數。

3、當地語系化副作用

理想的副作用(例如列印到控制台、記錄、改變全域狀態、檔案系統操作等)應該放置在單獨的模組中, 而不是分散在整個代碼中。 功能上的副作用往往違反了單一的責任原則。

4、優先選擇不可變的物件

如果一個物件的狀態在其構造函數中設置一次, 並且不再次更改, 則調試變得容易得多, 因為一旦構造正確就保持有效。 這是降低軟體專案複雜性的最簡單方法之一。

5、多用介面少用類

接受介面的函數(或C++中的範本參數或概念)比在類上操作的函數再使用性更強。

6、對模組應用良好的原則

將軟體專案分解成更小的模組(例如庫和應用程式), 以實現模組化重用。 模組的一些關鍵原則是:

最小化依賴關係

每個項目都應該有一個單一明確的功能

不要重複

你應該努力讓你的項目保持小巧和明確。

7.避免繼承

在物件導向程式設計中, 繼承, 特別是虛擬函數在再使用性方面往往是一個死穴。 我很少能成功地使用能覆蓋類的庫。

8.同設計和開發一樣進行測試

我並不是測試驅動開發的鐵杆擁護者, 但在你開始編寫測試代碼時, 編寫測試自然遵循了許多指導方針。 它也有助於早點將錯誤暴露出來。 避免編寫無用的測試, 良好的編碼意味著更高級的測試(例如, 單元測試中的集成測試或功能測試)在顯示缺陷方面更有效。

9.優先選擇而不是手寫標準庫

我無法告訴你需要多久才能看到一個 std :: vector 或 std :: string 更好的版本, 但它幾乎總是浪費時間和精力。 除了一個顯而易見的事實, 那就是你正在把 bug 引入一個新的地方。 (見技巧10)其他程式師不太可能重用您的代碼, 而不是那些被廣泛理解、支持和測試的代碼。

10.避免寫新代碼

最重要的一點是,

每位程式師應遵循:“The best code is the code that isn’t written”(最好的代碼是不用被複寫的代碼)。 你的代碼越多, 缺陷就越多, 找到並修復 bug 就越困難。

在編寫一行代碼之前先問問自己, 有沒有一個工具, 函數或庫已經做了你所需要的功能?你真的需要自己去實現這個功能, 而不是調用另一個已經存在的功能嗎?

總結

程式設計就好比是一種藝術形式或者一項運動, 你只有通過不斷地練習, 不斷地向他人學習, 才能不斷地提高代碼的品質, 這些都將有利於你成為更加高效的程式師。

源碼時代(www.itsource.cn)專注於中國IT職業培訓, 提供php/php/ui設計/web前端等培訓課程, 以培養出上萬名技術精英!歡迎有意向的同學來校試聽!源碼時代始終堅持以“讓每一名學員高薪就業”為目標, 為企業輸送更多的IT技術精英!

為企業輸送更多的IT技術精英!

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示