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