阿里巴巴java开发规范
文章平均质量分 62
才疏学浅的小缘同学
知足且上进,温柔而坚定。
展开
-
阿里巴巴规范总结——随笔
经过几个星期的准备,今天成功通过了阿里云平台的认证考试。9.9两次考试机会,满分100分,达到80分算通过。现在细说一下考试信息,一共50题,分为单选和多选,大部分都是多选题,一题两分。大多数的内容都能在开发手册中找到,但也有不少内容是需要自己理解了才能解答的。由于考试不提供错题查看的功能,不会的题目也记不清太多。总之将手册从头到尾都看一遍应该就差不多了。考试过程中需要开启摄像头,应该还算有点严格。通过考试就像完成了一个成就。挺有意思的,最后如果不放心的可以在网上浏览一下别人整理的例题,对...原创 2022-03-24 13:49:23 · 630 阅读 · 0 评论 -
阿里巴巴java开发编码规范——应用分层
推荐1.开放接口层:可直接封装Service方法暴露成RPC接口;通过Web封装成http接口;进行网关安全控制、流量控制等。 终端显示层:各个端的模板渲染并执行显示的层。当前主要是velocity渲染,JS渲染,JSP渲染,移动端展示等。 Web层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。 Service层:相对具体的业务逻辑服务层。 Manager层:通信业务处理层,有如下特征:对第三方平台封装的层,预处理返回结果及转化异常的信息。 对Serv...原创 2022-03-23 10:08:40 · 413 阅读 · 1 评论 -
阿里巴巴java开发编码规范—ORM映射
目录强制推荐参考强制1.在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。原因: 增加了查询分析器的解析成本 增减字段容易与resultMap配置不一致 无用字段增加了网络消耗,尤其是text类型的字段2.POJO类的布尔水性不能加is,而数据库字段必须加is_,要求在resultMap中进行字段和属性之间的映射。3.不要用resultClass当返回参数,即使所有类属性名与数据库字段一一对应,也需要定义。每一个表必然有一个...原创 2022-03-18 10:41:09 · 1092 阅读 · 0 评论 -
阿里巴巴Java开发编码规范——SQL语句
目录强制推荐参考强制1.不要使用count(列名)或count(常量)来替代count(*),count(*)是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL与非NULL无关。2.count(distinct col) 计算该列除了NULL之外的不重复的行数,注意count(distinct col1,col2)如果其中一列全为NULL,那么即使是另一列有不同的值,也返回为0.3.当某一列的值全是NULL时,count(col)的返回结果为0,但sum(col)的原创 2022-03-17 09:58:41 · 714 阅读 · 0 评论 -
阿里巴巴java开发编码规范——MySQL数据库 索引规约
目录强制推荐参考强制1.业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。唯一索引对insert速度损耗的影响可以忽略,其对查找速度的提高是明显的;此外,即使在应用层做了非常完美的校验控制,只要没有唯一索引,根据莫非定律,必然有脏数据产生。2.超过三个表禁止join,需要join的字段,数据类型必须绝对一致;多表关联查询时,要保证被关联的字段也要有索引。3.在varchar字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分决定索引长度原创 2022-03-16 17:59:03 · 1660 阅读 · 0 评论 -
阿里巴巴java开发编码规范—MySQL数据库建表规约
目录强制推荐参考强制1.表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint(1表示是,0表示否),任何字段如果为非负数,必须是unsigned。POJO类中的任何布尔类型的变量都不要加is前缀,所以需要周期<resultMap>设置从is_xxx到Xxx的映射关系。数据库表示是与否的值,使用tinyint类型,坚持is_xxx的命名方式是为了明确其取值含义与取值范围。2.表名、字段名必须使用小写字母或数字,禁止出现数字开头,原创 2022-03-16 11:05:50 · 2093 阅读 · 0 评论 -
阿里巴巴java开发编码规范——单元测试
目录强制推荐参考强制1.好的单元测试必须遵守AIR原则。A:Automatic(自动化),I:Independent(独立性),R:Repeatable(可重复)2.单元测试应该是全自动执行的,并且非交互式的。测试用例通常是被定期执行的,执行过程必须完全自动化才有意义。输出结果需要人工检查的测试不是一个好的单元测试。单元测试中不准使用System.out来进行人肉认证,必须使用assert来验证。3.保持单元测试的独立性。为了保证单元测试稳定可靠且便于维护,单元测试用例之间绝不原创 2022-03-15 10:13:18 · 980 阅读 · 0 评论 -
阿里巴巴java编码规范——日志规约
目录强制推荐强制1.应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架有利于维护并且使各个类的日志处理方式统一。2.所有日志文件至少保存15天,因为有些异常具备以“周”为频次发横的特点。网络运行状态、安全相关信息、系统监测、管理后台操作、用户敏感操作需要留相关的网络日志不少于6个月。3.应用中的扩展日志(如打点、临时监控、访问日志等)命令方式:appName_logType_logName.log。其原创 2022-03-15 00:31:43 · 1751 阅读 · 0 评论 -
阿里巴巴java开发编码规范——异常处理
目录强制推荐参考强制1.java类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch的方式来处理,比如:NullPointerException、IndexOutOfBoundsException等。2.异常不要用来做流程控制,条件控制。3.catch时分清稳定代码和非稳定代码,稳定代码指的是无论如何不会出错的代码,对于非稳定代码的catch尽可能进行区分异常类型,再做对应的异常处理。4.捕获异常是为了处理它,不要捕获了却什么都不原创 2022-03-14 09:25:14 · 1445 阅读 · 0 评论 -
阿里巴巴java开发编码规范——其他
强制1.在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。2.velocity(一个基于java的模板引擎)调用POJO类的属性时,直接使用属性名取值即可,模板引擎会自动按规范调用POJO的getXxx(),如果是boolean基本数据类型变量(boolean命名不需要加is前缀),会自动调用isXxx()方法,如果是Boolean包装类对象,优先调用getXxx()的方法。3.后台传输给页面的变量必须在${var}中加上感叹号即$!{var}。因为如果var等于null或者不原创 2022-03-11 10:34:59 · 569 阅读 · 0 评论 -
阿里巴巴Java开发编码规范—注释规约
目录强制推荐参考强制1.类、类属性、类方法的注释必须使用javadoc规范,使用/**内容*/格式,不得使用//xxx方式。2.所有的抽象方法(包括接口中的方法)必须使用javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。3.所有的类都必须添加创建者和创建日期。4.方法内部单行注释在被注释语句上另起一行,使用//注释,方法内部多行注释使用/* */注释,注意与代码对齐。5.所有的枚举类型必须要有注释,说明每个数据项的用途。原创 2022-03-10 16:59:14 · 2351 阅读 · 0 评论 -
阿里巴巴Java开发编码规范——控制语句
目录强制推荐参考强制1.在一个switch块内,每个case要么通过continue/break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在每一个switch块内,都必须包含一个default语句并且放到最后,即使它什么代码也没有。其中break是退出switch语句块,而return是退出方法体。2.当switch括号内的变量类型为String并且此变量为外部参数时,必须先进行null判断。不过好像在jdk1.8以上的环境上不让switch括号内的变原创 2022-03-09 17:05:14 · 669 阅读 · 0 评论 -
阿里巴巴java开发编码规范——并发处理
目录强制推荐参考强制1.获取单例对象需要保证线程安全,其中的方法也要保证线程安全。2.创建线程或线程池时指定有意义的线程名称,方便出错时回溯。3.线程资源必须通过线程池提供,不允许在应用中自行显式地创建线程。线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能会造成系统创建大量同类线程而导致消耗完内存或者“过度切换”的问题。4.线程池不允许使用Executors创建,而是通过ThreadPoolExecutor原创 2022-03-09 11:30:56 · 311 阅读 · 0 评论 -
阿里巴巴Java开发编码规范——集合处理
强制:1.关于hashCode和equals的处理,遵循如下规则: 只要重写equals,就必须重写hashCode 因为Set存储的是不重复的对象,依据hashCode和equals进行判断,所以判断的对象 必须重写这两个方法 如果自定义对象作为Map的键,那么必须重写hashCode和equals。2.ArrayList的subList结果不可强转成ArrayList,否则会抛出ClassCastException异常。因为subList返回的是Array...原创 2022-03-08 14:42:02 · 216 阅读 · 0 评论 -
阿里巴巴java开发编码规范——OOP约束
强制1.避免通过一个类的对象引用访问此类的静态变量和静态方法,这样增加了编译器解析成本,直接通过类名来访问即可。2.所有的覆写方法必须加上@Override注解。3.相同参数类型,相同业务含义才可以使用Java的可变参数,避免使用Object。4.外部正在调用或者第二方库依赖的接口,不允许修改方法签名,避免对接口的调用方产生影响。接口过时必须加上@Deprecated注解,并清晰地说明采用的新街口或者新服务是什么。5.不能使用过时的类或方法。6.Object类的equals方法容易抛出空指针原创 2022-03-07 13:52:29 · 473 阅读 · 0 评论 -
阿里巴巴java开发编码规范—代码格式
强制:1.大括号的使用约定:如果大括号内为空,简洁地写成{}即可,不需要换行,如果是非空代码块则: 左大括号前不换行 左大括号后换行 右大括号前换行 右大括号后还有else等代码不换行 表示终止的右大括号后必须换行。2.左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格。3.if/for/while/switch/do等保留字和括号之间都必须加空格。4.任何二目、三目运算符的左右两边都要加一个空格。5.采用4个空格缩进,禁止使用tab字...原创 2022-03-04 11:32:23 · 3270 阅读 · 0 评论 -
阿里巴巴java开发编码规范——常量定义
强制:1.不允许任何魔法值(未定义的常量)直接出现在代码中。2.long或者Long初始赋值时,使用大写的L,不能是小写的l,小写容易和数字1混淆,造成误解。推荐:1.不要使用一个常量类维护所有的常量,按常量功能进行分类,分开维护。2.常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。 跨应用共享常量:放置在第二方库中,通常是client-jar中的constant目录下。 应用内共享常量:放置在第一方库中,通常是m...原创 2022-03-03 10:49:40 · 604 阅读 · 0 评论 -
阿里巴巴java开发规范学习—编程规约:命令规则
前不久公司安排实习生做了公司内的一个demo来熟悉业务,演示完后发现各种规范还是不太清楚,之后准备去阿里巴巴编码规范网站那考一个证书,于是准备好好学习一手规范,美化自己的代码。代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方法。 类名使用UpperCamelCase风格,必须遵守驼峰形式,以下情况例外:DO / BO / DTO / VO / AO。 方法名、参数名、成员变量、局部变量...原创 2022-03-02 16:34:18 · 279 阅读 · 0 评论