代碼規范

#代碼規范(從code review總結)

1. 沒有使用filterStartLimit過濾limit字段值.filterStartLimit作用是防止sql注入.? orderby, page(分頁), groupby等參數都有類似風險。


2. 代碼里不應出現magic number, 應該定義常量增加可讀性

3. 路由URL中的"/"應該用來體現層級而不是用來劃分單詞。

/offline/course/{id}/picture? ? #應該使用? /offline_course/{id}/picture

4. 異常需要分類 不能都簡單拋出serviceException

Topxia\Common\Exception 中已經有部分Exception類型,根據業務選擇

5. 檢查代碼的無用邏輯

如在controller層調用search時,如果searchUserCount為0,可以避免searchUsers

6. dao層sql 查詢 orderby 需要限制可排序字段(防注入)。

7. search方法使用的場景是當查詢條件不確定

conditions ?= array( 'parentId' => 0 ); 應該使用 findXXXbyparentId(findParentXXX)

8. 變量命名冗余,enrollmentPlan => plan,增加可讀性

就像在CourseController下 不是courseManageAciton 應是manageAciton,在這個語境下manage自然被理解為是管理Course。

9. ‘if-else’循環內容復雜,應當簡潔,考慮使用‘key => value’。

多重循環嵌套時,可以考慮是否可以用鍵值對形式來實現,或者用拼接的方法實現。

$status = array(

'new' => 'admin_enrollment_declare',

'declareing' => 'admin_enrollment_audit',

'assigned' => 'admin_enrollment_update_classroom',

);

if (!empty($plan) && $plan['status'] != 'published') {

return $this->redirect($this->generateUrl($status[$plan['status']] ,array('id' => $plan['id'])));

}

10. 在Controller中,不可暴露數據庫信息如”depth=> 2

11. 字段”created_time”和”updated_time”,不應寫在service(新框架不用賦值,原先框架應寫在dao)

12. 數據庫字段命名駝峰和下劃線皆可 ?userId user_id

13. 方法的命名不能太籠統,要盡量有具體的含義。

validateAuthority()? 修改為=> tryManageClassroomThread()

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 代碼格式 使用空格而不是制表符 Tab 不要在工程里使用 Tab 鍵,使用空格來進行縮進。在 Xcode > Pr...
    small_Sun閱讀 1,378評論 1 3
  • (1): 包名全部小寫,根包名公司域名的反寫(不要www)如augmentum的域名為www.augmentum....
    stutterr閱讀 651評論 0 0
  • iOS編程規范0規范 0.1前言 為??高產品代碼質量,指導廣大軟件開發人員編寫出簡潔、可維護、可靠、可 測試、高效...
    iOS行者閱讀 4,502評論 21 35
  • 演講是一門學問,前幾天剛講了如果能做一個成功的演講者,那么你將來一定是一個成功的人。 那如何把演講講好...
    城市格調劉姣閱讀 331評論 0 0
  • 2016七月上 他和他十指相扣還漫步于校園的林蔭小路 2016七月下 他和她卻天各一方于世界的不同角落 七月 “他...
    留白里的句號閱讀 225評論 0 0