算來進入軟件開發這個行業也有十年了(是不是暴露年齡了),當我還是一個開發的新人的時候我覺得寫代碼是一件很酷很爽的事情,能讓代碼跑起來,能讓項目正常的運行起來就是很爽的一件事情,代碼寫的怎么樣卻從來沒有關注,只要程序能正常的運行起來就好了.
然而隨著作為一個碼農這時間越來越長,越覺得寫代碼不是一件簡單的事情.因為雖然我們寫的程序經過測試.修改上線后能正常運行,但是有時讓我回過頭來改我以前寫的代碼,我自己都不愿意讀自己寫的代碼.這就像飯店里做菜的廚師,如果做出來的菜自己都覺得難吃,那么你能指著客戶常來吃么?所以我一直在想如何才能寫出好的代碼,要想寫好代碼首先要知道什么樣的代碼才是好代碼.
- 我認為這樣的代碼才是好代碼
其實,做開發的同志們大都有這樣的問題,有人認為好的代碼是容易讀懂的代碼,有的人認為好的代碼是容易維護的代碼,有人認為好的代碼是效率高的代碼.
我認為好的代碼有以下幾個特點:- 邏輯清晰,易于閱讀
- 模塊和函數劃分合理,易于維護
- 合理的注釋
- 執行效率高
- 如何寫出好代碼
首先,對于研發類的工作,因為大部分情況下做的功能后面都會有修改,那么代碼就一定要易于閱讀,否則后面再修改的時候非常困難.
那么什么樣的代碼易于閱讀呢.其實我們的代碼是以函數劃分的,那我們閱讀代碼的時候其實是想要讀懂一個函數或者是函數中一部分代碼的功能,那么如果這個函數的代碼很長,在你的電腦上翻了兩屏還沒有完,那你會覺得這個函數的代碼容易閱讀嗎?其實我們一個函數的代碼之所以很長是因為我們沒有把每個函數的功能封裝好,開發的一個原則就是一個方法或函數只做一件事情,仔細想想我寫的代碼中很長的函數一般是因為一個方法或函數做了太多的事情.
這就是我前面說到的好代碼的第二點,模塊和函數的劃分合理.模塊和函數劃分合理后,代碼的可復用性就會比較高.因此能極大的減少在很多地方出現同樣功能代碼的情況.
雖然我們的代碼寫的條理清晰,閱讀方便,但是對于沒有接觸過這塊代碼的人來說還是需要耗費時間和精力去了解這塊代碼,這時候如果有一些簡短明了的說明,那么會極大的提高閱讀代碼的人理解代碼的效率.
最后,代碼的執行效率要高,這就要求我們平時寫代碼的時候要考慮一下代碼的執行效率,不能只考慮代碼實現功能,不考慮執行情況,寫代碼的時候,要在大腦中有一個大概執行情況評估,這樣寫會不會占用過多內存(例如一次查詢出太多數據),或者這樣寫會不會增加數據庫的壓力(例如對數據修改和寫入操作比較多的時候應該考慮使用事務).