阿里巴巴Java开发手册笔记

  • 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束;
  • 类名使用UpperCamelCase风格,方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式;
  • 常量命名全部大写,用下划线隔开;
  • 抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类名开始,以Test结尾;
  • POJO类中布尔类型的变量都不要加is前缀,否则部分框架会引起序列化错误;
  • 如果模块、类、方法使用了设计模式,应在命名时体现出具体模式;
  • 接口类中的方法和属性不要加任何修饰符号(public也不要加),保持代码的间接性,并加上有效的javadoc注释。尽量不要在接口里定义变量,如果一定要定义变量,必须是与接口方法相关的,并且是整个应用的基础变量;
  • 对于Service和Dao类,基于SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl后缀和接口区别;
  • 如果是形容能力的接口名称,取对应的形容词为接口名(通常是-able的形式);
  • long或者Long初始赋值时,使用大写的L,不能是小写的l;
  • 不要使用一个常量类维护所有变量,要按常量功能进行归类,分开维护;
  • 方法参数在定义和传入时,多个参数都好后边必须加空格;
  • 所有的重写方法,必须加@Override注解;
  • 所有相同类型的包装类对象之间的比较,全部使用equals方法;
  • POJO类必须写toString方法,在使用IDE的工具source->generate toString时,如果继承了另一个POJO类,注意在前面加一个super.toString;
  • 不要在foreach循环里进行元素的remove/add操作,remove元素轻使用Iterator方式,如果并发操作,需要对Iterator对象加锁;
  • 高度注意Map类集合K/V嫩不能存储null值的情况;
    在这里插入图片描述
  • 线程资源必须通过线程池提供,不允许在应用中自行显示创建线程;
  • 在if / else / for / while / do语句中,必须使用大括号,即使只有一行代码,也应该避免使用单抗的编码方式;
  • 在高并发场景中,避免使用“等于”判断作为终端或退出的条件;
  • 在表达异常的分支时,尽量少用if-else方式;
  • 类、类属性、类方法的注释必须使用Javadoc规范,使用/**内容*/格式,不得使用//xxx方式;
  • 所有的抽象方法(包括接口中的方法)必须要用Javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能;
  • 所有的类都必须添加创建者和创建日期;
  • 后台输送给网页的变量必须加$!{var}–中间是感叹号;
  • 注意Math.random()这个方法返回的是double类型,取值范围 0 ≤ x < 1 0\le{x}\lt{1} 0x<1(能够取到零值,注意除零异常),如果想获取整数类型的随机数,不要将x放大10的若干倍然后取整,应该直接使用Random对象的nextInt或者nextLong方法;
  • 不要在视图模板中加入任何复杂的逻辑;
  • 隶属于用户个人的页面或者功能必须进行权限控制校验;
  • 用户敏感数据禁止直接展示,必须对展示数据进行脱敏;
  • 用户输入的SQL参数严格使用参数绑定或者METADATA字段值绑定,防止SQL注入,禁止字符串拼接SQL访问数据库。
  • 用户请求传入的任何参数必须做有效性验证;
  • 禁止向HTML页面输出未经安全过滤或未正确转义的用户数据;
  • 表单、AJAX提交必须执行CSRF安全过滤
  • 在使用平台资源,譬如短信、邮件、电话、下单、支付,必须实现正确的防重放限制,如数量限制、疲劳度限制、验证码校验,避免被滥刷、资损。
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值