一编程规约

(一)命名风格

某些时候在命名常量的时候,会觉得太长而减少长度导致命名不清。

抽象类及测试类写得比较少。

这一点值得注意,在开发中,布尔变量我都是使用is开始。

关于包名和类名的单数和复数形式,主要集中在util这里,有时候傻傻分不清楚。看到公司很多项目的帮助类包名都为com.xxx.utils.

有时候嫌变量太长,会搞一些缩写。

开发中不会在接口里定义变量。但会在接口的方法里访问修饰符,公司很多代码接口里都有访问修饰符。

领域模型命名命名基本上没有按照阿里巴巴的规约,当然阿里巴巴也注明了这只是参考,而不是强制。与数据库打交道的数据对象,多半在com.xxx.model包下,命名比较随意,没有加上DO后辍。

一个WEB工程的数据类通常分为三大类:

持久类 包括与数据每张表完全对应的实体类(属性与表字段一一对应),包括实体接收查询结果类(属性与表字段部份对应,比如只需要一个表的部份字段,比如多表联合查询,将多张表的字段组合成一个实体类,以便于接收查询结果)。统一以DO结尾。

响应类 以DTO结尾。如果是JSP可能会直接传回一个实体对象,如果是AJAX的话,直接会加一个json数组。

业务类 比如纯粹传参,包括从控制类传到业务类,控制类接受前端参数类等。比如临时数据传输类,包括从数据库中得到一个列表,需要二次排序,使用一个实体来中间转换。 统一以VO结尾。

(二)常量定义

有时候一个值只在代码中出现1次,会偷懒不去定义变量。

这个问题偶尔会犯。

开发中常量会是一个类,但是里面会根据业务分成许多内部类。

(三)代码格式

这个平时开发中不会出现这种情况,但没有形成严格的禁令。

这个值得注意,开发中确实在犯这种错误。

关于开发中一行代码过长的换行,一般比较随意,比如缩进

sb.appeng("zi").appeng("xin")...
.append("huang")...//为了美观,多半以对齐换行,没有以四个字符换行

而且并于什么时候换行,是以120个为临界点,但有时候是以当前编辑器显示大小来权衡,并没有严格执行。

这个没有形成禁令,有时候能做到,有时候忘记。

(三)OOP规约

这点做得不是很好。

对Integer类型,我都会使用intValue来进行比较。

1),2)没有问题,3)并没有注意。不过这也只是推荐。

这块做得不好。

这条只是推荐。

这条也只是推荐。但是自己在开发过程中对于修饰符的使用相对比较随意。值得思考 。

(七)控制语句

刚开始写Java时有炫技的心态,喜欢这样写,后来就不会了。不过scala表示不服。

开发中会这样去做,但也要权衡具体情况。

这一点也要权衡具体情况吧,”复杂的语句“,怎样才算是复杂呢?

(八)注释规约

方法,类基本都能做到,但类属性上有时候做得不好。确实,在别处调用时,如果看不到注释会非常不方便。同理,常量类,枚举等也应该使用/***/注释,而不是//.

二异常日志

(二)日志规约

五MySQL数据库

(一)建表规约

一是字段命名,一是数据类型

数据库表字段名使用驼峰命名。

对于一些表习惯使用联合主表,摒弃自增主键。

(二)索引规约

通过只在需要通过索引执行查询,使用insert into on dumpcate key update语法时才会去创建唯一索引。可以使用唯一索引做一些数据校验。

前辍索引的缺点是不能进行group by 和order by.

对于mysql来说,limit是个好东西。前提是表数据量在千万级以内,一旦超过这个值,性能急剧下降。很多时候,都要想到这一点。

所有SQL语句都应该使用explain看下执行结果,进行优化。

(四)ORM映射

很多时候为了方便习惯直接使用集合类做为返回类型。

一般情况下都是使用#{},某些特殊情况下也只能使用${}

阿里巴巴Java开发手册与自己开发对照笔记的更多相关文章

  1. 《阿里巴巴Java工作手册》学习笔记

    最近浏览了一下阿里巴巴的Java开发手册,感觉内容确实非常的赞,发现了不少自己在编程中的误区,因此决定通过成文牢固掌握,文中将选取个人认为比较重要的部分进行描述与分析."愿站在巨人的肩膀上, ...

  2. 阿里巴巴Java开发手册评述

    2016年底的时候阿里巴巴公开了其在内部使用的Java编程规范.随后进行了几次版本修订,目前的版本为v1.0.2版.下载地址可以在其官方社区-云栖社区https://yq.aliyun.com/art ...

  3. 阿里巴巴Java开发手册评

    2016年底的时候阿里巴巴公开了其在内部使用的Java编程规范.随后进行了几次版本修订,目前的版本为v1.0.2版.下载地址可以在其官方社区-云栖社区https://yq.aliyun.com/art ...

  4. 阿里巴巴 Java 开发手册评述

    http://blog.jobbole.com/110427 阿里巴巴Java开发手册(终极版)https://pan.baidu.com/s/1c1UQM7Q 阿里巴巴Java开发规约插件p3cGi ...

  5. 码出高效,阿里巴巴JAVA开发手册1.4.0

    码出高效,阿里巴巴JAVA开发手册1.4.0阅读笔记 一.编程规约(三) 代码格式// 关键词if与括号之间必须有一个空格,括号内的f与左括号,0与右括号不需要空格 if (flag == 0) { ...

  6. 《阿里巴巴Java开发手册1.4.0》阅读总结与心得(五)

    笔者作为一名有数年工作经验的Java程序员,仔细研读了这份手册,觉得其是一份不可多得的好材料.阿里巴巴在发布时所说,“阿里巴巴集团推出的<阿里巴巴Java开发手册(正式版)>是阿里巴巴近万 ...

  7. 阿里巴巴Java开发手册———个人追加的见解和补充(一)

    先上干货,<阿里巴巴Java开发手册>的下载地址 https://yq.aliyun.com/articles/69327?spm=5176.100239.blogcont69327.15 ...

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

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

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

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

随机推荐

  1. 利用开源项目jadx反编译Android应用

    原文转自:http://bbs.itheima.com/thread-200475-1-1.html 利用开源项目jadx反编译Android应用 利用Github开源项目jadx可以直接对 .dex ...

  2. exactly-once和kafka

    Exactly-Once的概念是指"恰好一次",简单讲就是同一个数据只会被处理一次,应用有机质保证不会重复处理同一条数据(如果数据因为因为网络业务异常被发送多次):Exactly- ...

  3. C# datagridview大小跟随窗口动态改变(转)

    在C#中使用winform布局的时候,拖一个datagridview到窗体上面,将datagridview调整为适合窗体的大小. 但是运行之后,点击最大化按钮的时候,发现datagridview的大小 ...

  4. MySQL数据实时增量同步到Kafka - Flume

    转载自:https://www.cnblogs.com/yucy/p/7845105.html MySQL数据实时增量同步到Kafka - Flume   写在前面的话 需求,将MySQL里的数据实时 ...

  5. 小程序https请求,http网站升到https

    最近开发小程序,因为以前只写过小程序的前端没注意接口,现在才发现原来所有的接口都必须使用https协议了,马上研究了一波,顺便也想给自己的博客升成https的. 申请免费证书 哈哈没办法就是喜欢免费的 ...

  6. 使用docker查看jvm状态,在docker中使用jmap,jstat

    Docker中查看JVM的信息: 1.     列出docker容器:docker ps 2.     标准输入和关联终端:docker exec -it 容器ID  bash 3.     查找出j ...

  7. ZooKeeper和CAP理论及一致性原则

    一.CAP理论概述CAP理论告诉我们,一个分布式系统不可能同时满足以下三种 一致性(C:Consistency)可用性(A:Available)分区容错性(P:Partition Tolerance) ...

  8. Northwind数据库练习及参考答案

    --查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期.订单ID.客户ID和雇员ID等字段的值 Create View Orderquery as Select OrderDa ...

  9. 第二章 FFmpeg常用命令

    2.1 FFmpeg常见的命令大概分为6个部分 ffmpeg信息查询部分 公共操作参数部分 文件主要操作参数部分 视频操作参数部分 字幕操作参数部分 2.1.1 FFmpeg的封装转换 FFmpeg ...

  10. XSY contest1586 proB

    题目 现在一圈n个花坛, 每次随机往一个花盆里种花, 一个花盆可以种多颗花, 假如一个花盆两边的花盆都有花, 那么他也将被种上花 问期望种满所有花盆要种几次 首先定义f(i)为放置了i个物品后完全覆盖 ...