PEP 8css
Python 編碼規範:https://www.python.org/dev/peps/pep-0008/html
將 PyDev 升級到高於 2.3.0 版本,打開 Window > Preferences > PyDev > Editor > Code前端
直接在右下角調整 Highlighting Level 爲 Inspections 就能自動 PEP 8提示python
Django 建議的 119 字符數據庫
說明:其餘編輯器或IDE配置請自行搜索django
•api
在 Python 的安裝路徑中下的 /Lib/site-packages 下面建立文件 sitecustomize.py,內容以下數組
•數據結構
若是沒有加入該文件,則在有編碼問題的 .py 代碼中,加入如下代碼:框架
示例:this_is_var
全大寫+下劃線式駝峯示例:GLOBAL_VAR
首字母大寫式駝峯
示例:ClassName()
儘可能體現變量的數據類型和具體意義
注:
【必須】 import 順序
提早判斷並 return,減小代碼層級,加強代碼可讀性if not condition:
return
# a lot if code
邏輯代碼和業務代碼解耦分離,功能性函數以及對數據庫的操做定義寫在 models 裏面, 業務邏輯寫在 view 裏面。
改成
建議權限不足時直接拋出異常,可使用 django 自帶的: from django.core.exceptions import PermissionDenied
權限不足時拋出異常 PermissionDenied,以後應該返回什麼樣的頁面由 handler 或者中間件去處理
通常能夠分method 獲取request參數,這樣可以使代碼更可讀,且以後修改 method 時沒必要每一個參數都修改
args = request.GET if request.method == "GET" else request.POST business_name = args.get('business_name', '')
template_name = args.get('template_name', '')
兩種的話改成 true/false,多種改成 enum 可讀性更好def enum(**enums):
return type("Enum", (), enums)
StatusEnum = enum( SUCCESS=True,
FAIL=False,
)
類的基礎命名方式:「項目英文簡寫-當前頁-頁面內容塊」如 .ijobs-index-box。
Id 的基礎命名方式:語義化,並使用下滑槓鏈接,如步驟名稱可命名爲 #step_name
Javascript 變量命名方式:按照變量類型的首個字母爲前綴,使用駝峯命名法;
Array 數組 a
Boolean 布爾 b
Float 浮點 l
Function 函數 f
Integer(int) 整型 n
Object 對象 o Regular Expression 正則 r
String 字符串 s
例子:
var aName = ['zhangsan','lizi','zhaowu']; //Array 數 組
var oBtn = window.document.getElementById('btn'); //Object 對 象function fnName(){}; //Function 函 數
var nAge = 25; //Integer(int) 整 型
var sWebURL="www.wangyingran.com"; //String 字符串
每次代碼提交必須有備註說明,註明本次提交作了哪些修改
commit 分類:
Api 的 method,要根據實際請求的類型,查詢必定要用 get,不能隨意指定 method。具體能夠參考文檔 《RESTful Web Services Cookbook-cn.pdf》 。
接口返回內容開發建議直接參考藍鯨 apigateway 規範,返回的內容中包含 result code data message request_id 這幾個字段
result True/False
code 現階段能夠不使用, 0表明正確,非0 表明不一樣的錯誤狀況;
data 成功時,返回的數據的內容
message 失敗時,返回的錯誤信息
request_id 標識 請求的id(能夠自動生成的惟一標識,方便追蹤請求記錄 uuid)
建議充分利用 HTTP Status Code 做爲響應結果的基本狀態碼,基本狀態碼不能區分的status,再用響應 body 中」約定」的 code 進行補充
http狀態碼詳細說明請參考: https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6% 80%81%E7%A0%81
數據檢驗邏輯」應當」和業務邏輯分離,這樣作的好處:
1)form-data/url-params:Django-Form 2)Json:Json-schema
<!-- 容器 -->
<div class=「container」>
...
<!-- 用戶名 -->
<div id=「user_name」>
...
</div>
<!-- /用戶名 -->
...
</div>
<!-- /容器 -->
內容比較少是能夠只在頂部加註釋,內容比較多時在尾部加結束標籤/* 註釋內容 end */
/* 新建任務 start */
.new-task{}
/* 新建任務名 */
.task-name{color:#333;}
/* 新建任務時間 */
.task-created-time{background:url(img/clock.png) no-repeat;}
/* 新建任務 end */
Js註釋同上,函數若是有參數,建議簡單備註一下參數的內容和類型。
更多規範請參考: http://magicbox.bk.tencent.com/#doc/show?id=html_structure