我在github上選了一套仿mooc在線學習的代碼進行分析,如下是代碼的目錄結構。git
1.結合工程實踐選題相關的一套源代碼,根據其編程語言或項目特色,分析其在源代碼目錄結構、文件名/類名/函數名/變量名等命名、接口定義規範和單元測試組織形式等方面的作法和特色github
該代碼目錄結構的話還算清晰,各種名、函數名等也都以所實現的相應功能進行命名,作到了見名知義,能夠很方便地找到相應的代碼。分層也比較清晰,DAO層主要是作數據持久層的工做,負責與數據庫進行聯絡的一些任務都封裝在此;Service層主要負責業務模塊的邏輯應用設計;Controller層負責具體的業務模塊流程的控制;View層與控制層結合比較緊密,須要兩者結合起來協同開發,主要負責前臺jsp頁面的表示。數據庫
2.列舉哪些作法符合代碼規範和風格通常要求編程
標識符命名符合規範,類名採用了大駝峯式命名規則,類名每一個單詞的首字母都大寫,其它小寫;而函數名、變量名則採用了小駝峯式命名規則,第一個單詞的首字母小寫,後面每一個單詞的首字母都大寫。jsp
類名後面加上了不一樣的後綴表示額外的意思,如CourseService表示這個類是個服務類,裏面包含了給其它類提供業務服務的方法;CourseServiceImpl代表這個類是個實現類,不是接口。編程語言
靜態常量所有大寫並用下劃線分割。函數
包名統一使用了小寫字母。單元測試
每一個if while for等語句,都不要省略大括號。學習
在適當的地方加上了代碼註釋,加強了程序的可讀性。測試
3.列舉哪些作法有悖於「代碼的簡潔、清晰、無歧義」的基本原則,及如何進一步優化改進
類名的命名在有些地方沒有遵循大駝峯式命名規則。
變量名的命名在有些地方出現了拼音和英文單詞夾雜的現象,而應該統一採用英文單詞的形式。
有些關鍵功能模塊的代碼註釋仍是不夠全面,不利於之後的修改。
4.總結同類編程語言或項目在代碼規範和風格的通常要求。
包名由一個小寫單詞組成,類名採用大駝峯式命名規則,函數名、變量名則採用小駝峯式命名規則。
package行要在import行以前,import中標準的包名要在本地的包名以前,並且按照字母順序排序,若是import行中包含了同一個包的不一樣子目錄,則應該用*來處理。
類變量存取的方法,若是隻是簡單的用來對變量賦值獲取值的話,能夠簡單的寫在一行上,其它的方法不要寫在一行上。
{}中的語句應該單獨做爲一行,}語句永遠單獨做爲一行。
程序塊採用縮進風格編寫,縮進只使用TAB鍵,不使用空格鍵,方法體的開始、類的定義、以及if、for、while等等中的語句都要使用縮進。
恰當的使用換行。
對不易理解的地方加上代碼註釋,加強程序的可讀性與可維護性。