花逝戀夕
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?在你的項目之外做一些小例子,當完全弄懂了後,丟掉例子,應用到你的產品裡。