天天看點

參照騰訊的代碼規範以及《數學之美》章節感想

縮進

程式塊采用縮進風格編寫,縮進隻有TAB鍵;

方法體的開始、類的定義、以及if、for、do、while、switch、case語句中的代碼都要采用縮進的方式;

對齊

1程式塊的分界符左大括号"{”和右大括号"}"都另起一行,應各獨占一行并且位于同一

列,同時與引用它們的語句左對齊;

2對齊隻使用TAB鍵,不使用空格鍵;

3不允許把多個短語句寫在一行中,即一行隻寫一條語句;

4 if、for、do、while、case、switch、default等語句自占一行。

換行

一行的長度超過80個字元需要換行

換行規則如下:

1在一個逗号後面斷開;

2在一個操作符前面斷開;

3長表達式要在低優先級操作符處劃分新行;

4新行縮進2個TAB.

間隔

1類、方法及相對獨立的程式塊之間、變量說明之後必須加空行;

2關鍵字之後要留白格,像if、for、while

等關鍵字之後應留一個空格再跟左括号”(”,以突出關鍵字;

3方法名與其左括号“("之間不要留白格,以與關鍵字差別;

4二進制操作符如"="、"+="">="、"<="、"+"、"*"、"%"、"&&"、"|”、"<<","^"等的前後應當加空格;

5一進制操作符如“!"、“~”、"++"、“--”等前後不加空格;

6像"[]"、"."這類操作符前後不加空格;

7 for語句中的表達式應該被空格分開

8強制轉型後應該跟一個空格

注釋

原則:

--對已經不推薦使用的類和方法需要注明@Deprecated,并說明替代的類或者方法;

--對于針對集合、開關的方法,要在方法注釋中表明是否多線程安全。

1檔案注釋

所有的源檔案都應該在開頭有一個注釋,其中列出檔案的版權聲明、檔案名、功能描述以及建立、修改記錄

2類或接口注釋

采用JavaDoc文檔注釋,在類、接口定義之前應當對其進行注釋,包括類、接口的描述、最新修改者、版本号、參考連結等。

3其它注釋(非JavaDoc文檔注釋)

1單行代碼注釋一律使用注釋界定符"//",

2多行注釋使用注釋界定符"/*...*/"

命名

基本規則

1使用可以準确說明變量、字段、類、接口、包等完整的英文描述符;

2采用大小寫混合,提高名字的可讀性;

3采用該領域的術語;盡量少用縮寫,但如果一定要使用,當使用公共縮寫和習慣縮寫等;

4避免使用相似或者僅在大小寫上有差別的名字。

包命名

1包名一律小寫,少用縮寫和長名;

2采用以下規則:

[基本包]。 [項目名]。 [子產品名]。 [子子產品名]。 . .

3基本包:com.tencent 或com.qq;

4不得将類直接定義在基本包下,所有項目中的類、接口等都應當定義在各自的項目和子產品包中;

類或接口命名

類或接口名是個一名詞,采用大小寫混合的方式,每個單詞的首字母大寫。盡量使你的類名簡潔而富于描述。使用完整單詞,避免用縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML) .

變量命名

1采用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫;

2變量名不應以下劃線或美元符号開頭;

3盡量避免單個字元的變量名,除非是一次性的臨時變量。臨時變量通常被取名為i,j,k,m和n,它們一般用于整型;c,d,e,它們一般用于字元型;

4不采用匈牙利命名法則,對不易清楚識别出該變量類型的變量應使用類型名或類型名縮寫作其字尾

5元件或部件變量使用其類型名或類型名縮寫作其字尾

6集合類型變量,例如數組和矢量,應采用複數命名或使用表示該集合的名詞做字尾

常量命名:全部采用大寫,單詞間用下劃線隔開

方法命名:方法名是一個動詞,采用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫;取值類可使用get字首,設值類可使用set字首,判斷類可使用is(has)字首。

聲明

方法聲明

1良好的程式設計應該盡可能減小類與類之間耦合,所遵循的經驗法則是:盡量限制成員函數的可見性。如果成員函數沒必要公有(public),就定義為保護(protected);沒必要保護(protected),就定義為私有(private);

2方法定義文法規範:

[可見性]['abstract'] ['static'] ['final'] ['synchronized'][傳回值類型]method_name

(參數清單)[('throws')][異常清單]

3聲明順序:

構造方法

靜态公共方法

靜态私有方法

公共方法

友元方法

受保護方法

私有方法

main方法

4方法參數建議順序:(被操作者,操作内容,操作标志,其他)

變量聲明

1一行一個聲明;

2聲明局部變量的同時初始化(在變量的初始值依賴于某些先前發生的計算的特殊情況下可以不用同時初始化);

3隻在代碼塊的開始處聲明變量,(一個塊是指任何被包含在大括号“{“和“}"中間的代碼)不要在首次用到該變量時才聲明;

4避免聲明的局部變量覆寫上一級聲明的變量,即不要在内部代碼塊中聲明相同的變量名;

5公共和保護的可見性應當盡量避免,所有的字段都建議置為私有,由擷取和設定成員函數(Getter、Setter)通路;

聲明順序

常量

類變量

執行個體變量:

公有字段

受保護字段

友元字段

私有字段

習慣

1 if、for、do、while等語句的執行語句部分無論多少都要加括号“0”;

2每當一個case順着往下執行時(因為沒有break語句),通常應在break語句的位置添加注釋;

3盡量避免在循環中構造和釋放對象;

4在使用局部變量的過程,按就近原則處理。不允許定義一個局部變量,然後在很遠的地方才使用;

5相同的功能不允許複制成N份代碼;

6在處理 String 的時候要盡量使用StringBuffer類。

關于讀“《數學之美》第七章-賈裡尼克和現代語言處理”的一些感想

在早年生活中作者提到關于賈裡尼克對教育的一些觀點,國小和中學沒必要花太多時間讀書,而他們的生活能力、社會經曆以及在那時樹立起的志向将幫助他們一生。是的,回望我之前的學習生涯,隻是為了考試能考高一點,聯考能考好一點。關于志向,沒有深刻的去想過。賈裡尼克的理想在不斷改變,但他通過努力走向成功的志向一直沒變,他也做到了。

賈裡尼克在語音識别領域的成就頗大,他在IBM帶領研究隊伍,後來隊伍的成員都成了了不起的學者。這就是影響力吧。

賈裡尼克在老年時期也沒閑着,自己生命的最後一刻也是在學術研究上度過的。他建立了CLSP實驗室,用自己的影響力和努力讓實驗室成為了國家級重點實驗室。他做到兩件大事和兩件小事,讓實驗室成功了。他對自己的學生無私,對晚輩傾囊相助。他說的學習是一輩子的事,他也做到了。

對于當代的大學生,許多人學習的動力相比于那些因為興趣而學習考上大學的人小了許多,以至于不足夠去推動他們學習。我們應該反思,也應該盡早樹立起自己的志向。