如何避免自己寫的代碼成為別人眼中的一坨“屎”?

花逝戀夕


1、養成規範註釋的習慣

寫註釋為了自己方便閱讀,也方便別人閱讀。註釋的格式要規範統一,內容主要包括輸入、輸出、變量、功能描述等。函數的名字應該使用英語簡短而明確的表達函數的功能。

/ **

*@function [一句話功能簡述]

* @param [參數1] [參數1說明]

* @param [參數2] [參數2說明]

* @return [返回類型說明]

**/


2、整體把握,思路清晰

開始寫之前,儘量從整體上設計一個大致框架,從功能上切分模塊,做到低耦合,函數儘量簡短,可重複調用等。可以使用Xmind大致的畫一個框圖。

3、掌握基礎知識

有空多學習學習算法和數據結構,數據結構和算法比較難,但是能熟練的運用起來可以事半功倍,而且沒人敢對你的代碼指指點點。以下兩本書程序員都說自己讀過的數,可以幫到你。

4、多看看別人的代碼

向優秀的人學習優秀的代碼,看一看開源的優秀代碼,如linux的底層代碼,windows驅動的代碼,stm的庫文件等,一定會深受啟發的。


算法卡農


1. 儘量保持方法簡短

最佳長度是5-20行,這根據你的情況而定。當然,getters/setters 通常是一行代碼的方法,但與其說它們是真正的方法,不如說它們只是存取工具。

2. 不要把同一個變量用於多個不同的目的

一個變量應該始終只有一個目的

3. 使用自描述的變量名和方法名

你的代碼應該,對於任何人來說,只要看一眼就能知道是幹嘛的。

src - source pos - position prev - previous

如果你認為描述性的名稱並不是那麼有價值,請對比一下n, ns, nsisd

4. 儘可能的把變量定義在靠近使用它的地方

int foo = 3;int bar = 5;// 一大段使用“bar”的代碼,// 但沒用到“foo”// ...baz(foo);

這段代碼可以簡單的改成

int bar = 5;// 一大段使用“bar”的代碼,// 但沒用到“foo”// ...int foo = 3;baz(foo);

當你把變量的聲明和第一次用到它的地方間隔太遠時(距離超過一個屏幕),這確實會成為一個問題。記住上下文關係會變得困難,你需要滾動屏幕去找哪來的這個變量。

5. 拒絕神秘數字

當你要把什麼東西跟一個常量值做比較時,記得把這個值定義成常量。沒有什麼會比去猜測你的同事寫的這樣的代碼更讓人頭疼的事了:

il <>

換個形式感覺如何?

inputLength <>6. 友好的對待你的語言

學習新語言是一種很有樂趣的事情,你能學到一種新的完成任務的途徑。當一個對一種語言已經很專業的人去學習另一種語言時,會出現一種很大的負面效應。比如說你是一個Java開發者,試圖去學習Ruby。你應該學會用Ruby的方式解決問題,而不是沿用Java的解決問題的思想。

當你需要重複5遍”Hello world!“時,在Java裡,你可能會這樣做:

for (int i = 0; i < 5;="" i++)="" {="" ="" system.out.println('hello="">

在Ruby裡,你也許會禁不住這樣寫:

for i in (0..5) puts 'Hello world!'end

5.times { puts 'Hello world!' }7. 不要逆常規而行

每種語言都有自己不同的習俗約定。一般來說,人們聽的最多的是Java的編碼規範。讓我們看看其中的一些習俗規範:

方法名應該小寫字母開頭,其後用字母大寫的單詞連接(veryLongVariableName)

類名應該都使用首字母大寫的單詞連接而成

常量名應該全部大寫,用下劃線連接(MY_CONSTANT)

左大括號應該跟 if 語句在同一行

只有在有必要的理由時才去打破這些常規,不要輕易的因為你不高興就違反它。如果你只是在團隊裡改變一些這樣的習慣,那也沒問題,但當把你代

8. 警惕過早優化

過早優化是所有問題的根源

在沒有知道問題在哪的情況下試圖對程序進行優化,其結果必然是把程序能壞,至少你的代碼會喪失可讀性。如果你覺得有些地方很慢,不要盲目的重寫代碼,你應先找到慢的證據。

不要傻乎乎的去解決根本不存在的問題。

沒有任何東西會是完美的。即使你感覺你真正寫出了一段完美的代碼,幾個月後回頭再看看,你可能會驚訝道”怎麼會這樣傻?“

改進程序的一個好方法就是重構,但要等程序測試通過之後。你首先要確保程序是好的可運行的,你可以通過自動化測試或手工測試完成這個工作。

之初,你需要的是程序可用。不要期望在第一次就寫出完美的程序,你只需要把它寫出來,可用。然後重構它,使之完美。對於你們當中知道測試驅動開發(TDD)的人來說,對這個會很熟悉。這裡的關鍵就在於你要習慣於重構這種事情。如果你使用的是像IntelliJ IDEA這樣強大的集成開發工具的話,重構的工作會變得簡單

11. 通過習例學習新知

編程是一種學習新知的過程。當你學到了新的程序庫或新語言,你可能會迫不及待的丟掉舊的代碼,用你新學到的東西重新寫一遍。有很多的理由都能說明你不該這麼做。

往現有的應用裡增加新的類庫或框架同屬於這種情況。就說你寫了一個Javascript的web應用,期間,你發現了jQuery。現在你突然急切的想丟到你的Javascript程序,重新用jQuery寫,儘管你還從來沒用過它。

最好的方式是你先用jQuery寫一些簡單的例子,通過這種方式把你在應用裡將要用到的知識都學會。需要AJAX?在你的項目之外做一些小例子,當完全弄懂了後,丟掉例子,應用到你的產品裡。


分享到:


相關文章: