本随笔基于阿里巴巴Java开发手册V1.2,陆陆续续记录一些现阶段能理解的,有启发的内容,并将持续更新

  最佳实践——插件使用已经发布为随笔!http://www.cnblogs.com/jiangbei/p/7668654.html

一、编程规范

  1.命名规范

    (1)代码命名严禁下划线(_)或美元符号($)开头或结束

    (2)命名严禁拼音与英文混用的方式

    (3)类名采用 UpperCamelCase 命名方式,其他(变量,方法,参数等)采用 lowerCamelCase 方式

    (4)常量全部使用大写,使用下划线(_)连接

    (5)数组命名方式严禁使用 String args[] 的形式,请务必使用String[] args 的形式([]是数组的一部分)

    (6)POJO中的boolean类型变量都不要加 is(反例:isRich)以免引起解析异常。

    (7)包名统一小写,使用小数点(.)进行分隔

    (8)类名使用合适的后缀可以大大提高可读性,例如测试类 Test 结尾,异常类 Exception 结尾

  2.常量定义

    (1)严禁出现任何魔法值

    (2)long类型的变量,请使用大写L作为标识(long time = 2L)

    (3)变量尽量分类维护,尽量不要全定义在一个类中进行维护

  3.代码格式

     (1)大括号换行(竟然还有左大括号换行的?/笑哭),不再文字赘述,千言万语不如一张图

        方法参数后的括号与大括号之间建议添加一个空格

      

        (2)缩进采用4个空格,严禁使用Tab缩进

          缩进采用 4 个空格,禁止使用 tab 字符。 说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时, 请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。

         (3)任何二目、三目运算符的左右两边都需要加一个空格。

      (4)if/for/while/switch/do 等保留字与括号之间都必须加空格。

      (5)换行规范:

        1) 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进,参考示例。

        2) 运算符与下文一起换行。

        3) 方法调用的点符号与下文一起换行。

        4) 在多个参数超长,在逗号后换行。

      (6)方法参数在定义和传入时,多个参数逗号后边必须加空格。

    4.OOP规范

      (1)静态方法与静态常量请使用 类名. 进行调用!

      (2)所有的覆写方法,必须加@Override 注解。

      (3)严禁使用过时的类或方法

      (4)Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。("abc".equals(str))

      (5)所有的 POJO 类属性必须使用包装数据类型;所有的局部变量使用基本数据类型。

      (6)构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。

      (7)POJO 类必须写 toString 方法。使用 IDE 的中工具:source> generate toString 时,如果继承了另一个 POJO 类,注意在前面加一下 super.toString。

      (8)类内方法定义顺序依次是:公有方法或保护方法 > 私有方法 > getter/setter 方法。

      (9)循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展。

    5.集合处理

      (1)只要重写 equals,就必须重写 hashCode。(参见java基础随笔)

      (2)HashMap是允许null key和 null value的,并且它是线程不安全的

    6.并发处理

      待更新

    7.控制语句

      (1)每个switch都必须包含一个 default 语句并且 放在最后,即使它什么代码也没有。

      (2)if/else/for/while/do 语句中必须使用大括号。即使只有一行代码

      (3)不要在条件判断中执行其它复杂的语句,将复 杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。

    8.注释规约

      (1)类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式(可以自定义注释模板,参见IDE配置随笔)

      (2)所有的类都必须添加创建者和创建日期。

      (3)方法内部单行注释,在被注释语句上方另起一行(并且//后空一格),使用//注释。方法内部多行注释 使用/* */注释,注意与代码对齐。

      (4)好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免出现注释的 一个极端:过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。

阿里巴巴Java开发手册——速读记录的更多相关文章

  1. 《阿里巴巴Java开发手册(正式版》读记

    前几天,阿里巴巴发布了<阿里巴巴Java开发手册(正式版>,第一时间下载阅读了一番. 不同于一般大厂内部的代码规范,阿里巴巴的这本Java开发手册,可谓包罗万象,几乎日常Java开发中方方 ...

  2. 读阿里巴巴Java开发手册v1.2.0之工程结构有感【架构篇】

    首先,把昨天那俩条sql语句的优化原因给大家补充一下,第一条效率极低,第二条优化后的,sql语句截图如下: 经过几个高手的评论和个人的分析: 第一条sql语句查询很慢是因为它首先使用了in关键字查询, ...

  3. 读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】

     不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...

  4. 阿里巴巴java开发手册学习记录,php版

    一.编程规约 (一)命名风格 1.目录使用小写+下划线 home,view,model,admin_view 2.类 UpperCamelCase PhpMailer方法 lowerCamelCase ...

  5. 阿里巴巴Java开发手册快速学习

    Java作为一门名副其实的工业级语言,语法友好,学习简单,大规模的应用给代码质量的管控带来了困难,特别是团队开发中,开发过程中的规范会直接影响最终项目的稳定性. 善医者“未有形而除之”,提高工程健壮性 ...

  6. 《阿里巴巴 Java开发手册》读后感

    前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦). 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了.回到家才发现当时618 ...

  7. 阿里巴巴Java开发手册(详尽版)-个人未注意到的知识点(转)

    转自 https://blog.csdn.net/u013039395/article/details/86528164 一.编程规约 (一) 命名风格 [强制]代码中的命名只可用英文方式 [强制]类 ...

  8. 阿里巴巴 JAVA 开发手册

    阿里巴巴 JAVA 开发手册 1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开 一. 编程规约(一) 命名规约1. [强制]所有编程相关命名均不能以下划线或美元符号开始, ...

  9. 304902阿里巴巴Java开发手册1.4.0

    转自官网 前言 <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者.现代软件行业的高速 ...

随机推荐

  1. Sql去重一些技巧

    下午的时候遇到点问题,Sql去重,简单的去重可以用 DISTINCT 关键字去重,不过,很多情况下用这个解决不了问题.重复的数据千变万化,例如:类似于qq.微信的最近联系人功能,读取这些数据肯定要和消 ...

  2. 练习:HPH 数据

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. PHP------数组的遍历

    echo current($attr); //取当前元素的value值 echo key($attr); //取当前元素的key next($attr); //将数组里面的指针指向下一个(向下移)pr ...

  4. java中io创建文件和读取文件

    简单了解IO流:https://www.cnblogs.com/weibanggang/p/10034325.html package com.wbg.iodemo1128; import java. ...

  5. PAT——1010. 一元多项式求导

    设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与 ...

  6. P2894 [USACO08FEB]酒店Hotel

    P2894 [USACO08FEB]酒店Hotel 简单的线段树维护区间信息. 维护三个值,一个是从左端点能拓展的长度,一个是从右端点能脱产的的长度.另一个是整个区间内的最大连续零一长度. 记录这三个 ...

  7. [转载] iOS应用程序的生命周期

    iOS应用程序的生命周期 2015-06-23 iOS大全 (点击上方蓝字,快速关注我们) iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些 ...

  8. 【Node.js】新建一个NodeJS 4.X项目

    前提工作 1.安装Node.js 各种下一步就好 2.安装NPM(node package manager) 安装好Node.js之后,打开cmd,输入npm install npm -g,程序会自动 ...

  9. Entity Framework中DbContext结合TransactionScope提交事务的正确方式

    问: I would like know what is the best possible way to implement transactions with DBContext. In part ...

  10. 搭建 github.io 博客站点

    前言 很多人都有搭建博客或知识库站点的想法,可自己买云服务器太不划算,部署管理也是个问题:基于免费又热门的 GitHub Pages 来搭建博客站点倒是省钱省力省事的好办法,于是上网一搜,满屏都是关于 ...