1、命名规约
1)代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
2)代码中的命名严禁使用拼音与英文混合的方式。
3)【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式。
4)【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
5)【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
6)【强制】类名特性应在结尾出表明:异常类命名使用 Exception 结尾;测试类
7)【强制】杜绝完全不规范的缩写,避免望文不知义。
8)【推荐】如果使用到了设计模式,建议在类名中体现出具体模式。
2、格式规约
1)【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行。
2)【强制】 左括号和后一个字符之间不出现空格;同样,右括号和前一个字符之间也不出现空格。
3)【强制】if/for/while/switch/do 等保留字与左右括号之间都必须加空格。
4)【强制】任何运算符左右必须加一个空格。
5)【强制】缩进采用 4 个空格,禁止使用 tab 字符。
6)【强制】单行字符数限制不超过 120 个,超出需要换行
7)【强制】方法参数在定义和传入时,多个参数逗号后边必须加空格。
8)【强制】IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不要使用 windows 格式。
9)【推荐】没有必要增加若干空格来使某一行的字符与上一行的相应字符对齐。
10)【推荐】方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间插入一个空行。相同业务逻辑和语义之间不需要插入空行。
3、OOP
1)【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,直接用类名来访问即可。
2)【强制】所有的覆写方法,必须加@Override 注解。
3)【强制】构造方法里面禁止加入任何业务逻辑。
4)【推荐】 类内方法定义顺序依次是:公有方法或保护方法 > 私有方法 > 魔术方法。
5)【推荐】final 可提高程序响应效率
6)【推荐】类成员与方法访问控制从严
4、控制语句
1)【强制】在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。
2)【强制】在 if/else/for/while/do 语句中必须使用大括号
3)【推荐】推荐尽量少用 else
4)【推荐】除常用方法(如 getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。
5)【推荐】循环体中的语句要考量性能,以下操作尽量移至循环体外处理,如定义对象、变量、获取数据库连接,进行不必要的 try-catch 操作(这个 try-catch 是否可以移至循环体外)。
5、安全规约
1. 【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。
2. 【强制】用户敏感数据禁止直接展示,必须对展示数据脱敏。
3. 【强制】用户输入的 SQL 参数严格使用参数绑定或者 METADATA 字段值限定,防止 SQL 注入,禁止字符串拼接 SQL 访问数据库。
4. 【强制】用户请求传入的任何参数必须做有效性验证。
5. 【强制】禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。
6. 【强制】表单、AJAX 提交必须执行 CSRF 安全过滤。
7. 【强制】在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放限制,如数量限制、疲劳度控制、验证码校验,避免被滥刷、资损。
8. 【推荐】发贴、评论、发送即时消息等用户生成内容的场景必须实现防刷、文本内容违禁词过滤等风控策略。
----威海软件开发---