摘要: 阿里巴巴集团推出的《阿里巴巴 Java 开发手册(正式版)》是阿里巴巴近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让 Java 开发者能够提升协作效率、提高代码质量。
|  |      1abellee      2017-02-10 15:00:57 +08:00 看着好的学习一下 that's it | 
|      2antowa      2017-02-10 15:03:01 +08:00 感觉是重复。 JAVA 材料已经不少了吧? | 
|      3donyee      2017-02-10 15:06:47 +08:00 是不是要登陆阿里云才能下载? | 
|  |      4stevenkang OP @donyee 我传到网盘上面吧,确实要登录 | 
|  |      5stevenkang OP  8 下载的话,用网盘的吧,阿里上面那个需要注册账号 链接: http://pan.baidu.com/s/1gfLuXcn 密码: vt3t | 
|      6zgqq      2017-02-10 15:11:59 +08:00 via Android 就一些代码规范,而且很多都是共识了 | 
|  |      7Ouyangan      2017-02-10 15:14:31 +08:00 结合 effective java 可以看看 | 
|      8donyee      2017-02-10 15:14:57 +08:00 @stevenkang 已经下载,多谢 | 
|  |      9winglight2016      2017-02-10 15:19:49 +08:00 这种东西,自己公司订的规范文档都不会看,就更不用说外部的了 | 
|  |      10hellommd      2017-02-10 15:24:36 +08:00 感觉挺好,公司规范用这一套就好了;-) | 
|  |      12jakes      2017-02-10 15:38:37 +08:00 还是有很多干货的,推荐看一下。 | 
|      13lynx      2017-02-10 15:47:38 +08:00 看到他的集合处理的第 10 条,说 keySet 是遍历了两次,但是他内部的实现是套了一层迭代器,并不是遍历两次,实际只遍历了一次 | 
|      14saberpowermo      2017-02-10 15:52:57 +08:00 感觉还是非常不错的。。 之前在 1 个程序员群里 因为代码规范 跟人对喷过 就是关于 = == 左右两边加不加空格的问题, 我说这种是基本规范把 还是加上的好, 然后被一帮人 用 "我 不加空格 这程序能不能跑? " 的角度 一个劲怼。 最后想明白了 还是自己 too young.... | 
|  |      15zeroten      2017-02-10 16:01:14 +08:00 | 
|  |      16ThomasAnderson      2017-02-10 16:02:44 +08:00 @stevenkang xiexie | 
|  |      17vozon      2017-02-10 16:09:16 +08:00 现在的公司不强调统一的编码风格, 导致强迫症真的很难忍... | 
|  |      18murmur      2017-02-10 16:10:50 +08:00  1  [强制] 不要使用 count(列名)或 count(常量)来替代 count(*), count(*)就是 SQL92 定义 的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。 看到这行快哭出来了。。 count(*)、 count(1)、 count(列)哪个更快估计现在还可以吵几个小时,都快成玄学了 | 
|  |      19sorcerer      2017-02-10 16:15:09 +08:00 via iPhone 学习了 | 
|      21acoder2013      2017-02-10 16:29:14 +08:00 写的不错,有很多干活 | 
|  |      22lalalafq      2017-02-10 16:46:54 +08:00 我比较期待对应的代码检查脚本。 | 
|      23ptyfork      2017-02-10 16:58:47 +08:00 当你们都在争论代码格式的时候,我们 gophers 一个 gofmt 命令就全部搞定了。。 | 
|  |      24chairuosen      2017-02-10 17:01:40 +08:00 @stevenkang 。。。发现百度网盘一个 BUG ,未登录状态,输入密码进入文件下载页,点一下保存到网盘,会弹登录框,关掉,再点一下右上角登录,弹出的登录对话框里面有两套登录 form 。。。 | 
|  |      25lxlgod      2017-02-10 17:16:11 +08:00 @zeroten 链接: http://pan.baidu.com/s/1gfbtOt1 密码: wqgq | 
|  |      27mgcnrx11      2017-02-10 17:33:38 +08:00 有没有说判断时要 null == instance 还是 instance == null 😂😂 | 
|      28dz8235462      2017-02-10 17:50:07 +08:00 更多的差异是在逻辑使用上,我个人一直使用异常来帮助跳出方法以及提供错误提示。但至今还没见过其他同事使用这种方式。所以基本每个人写的代码都是完全不同的,逻辑方式也不一样。我大部分情况都避免超过两层的循环和 if ,然而其他人并不这么搞。 | 
|  |      30Mogugugugu      2017-02-10 18:01:29 +08:00 之前看 Google Java 编程风格规范,现在阿里也出了,怎么说呢,灵活应对吧。一般的常识性的规范,写代码的时候也都下意识的遵守了。不必强制,灵活就好。 | 
|  |      31deweixu      2017-02-10 18:04:24 +08:00 今天下午看了一下,发现自己的 Java 基础知识太烂了,准备补补 | 
|  |      32linghutf      2017-02-10 18:10:22 +08:00 下载正在看,这种可以体现别人的意图,怎么避免坑 | 
|  |      33acrisliu      2017-02-10 18:15:20 +08:00 via Android 学习一下 | 
|  |      34300      2017-02-10 18:16:34 +08:00 我记得前两天还有人讨论了来着╮( ̄▽ ̄")╭ 8. [强制] POJO 类中布尔类型的变量,都不要加 is ,否则部分框架解析会引起序列化错误。 反例:定义为基本数据类型 boolean isSuccess ;的属性,它的方法也是 isSuccess(), RPC 框架在反向解析的时候,“以为”对应的属性名称是 success ,导致属性获取不到,进而抛出异 常。 | 
|  |      35watzds      2017-02-10 18:27:11 +08:00 via Android  3 学好了再去阿里,阿里就减少培训成本了 | 
|  |      37caixiexin      2017-02-10 18:57:31 +08:00  1 @zhiyuan91 null == instance 还是 instance == null  这种要求,记得在 C 和 C++里面是要注意的,因为很多人写 if( instance == null ) 时容易少打一个等号,导致 instance 被赋值,程序员又没发现,所以写这种 if 条件时常量必须放前面,比如 null == instance  。但是 java 里面 if(instance=null)是编译不过的,应该也不用要求了。 | 
|  |      39hrong      2017-02-10 19:02:35 +08:00 via Android 这个文档体系感差了一点,不适合新手。 阿里的文档也就这水平。。。。 | 
|  |      41Antidictator      2017-02-10 19:34:12 +08:00 via Android @mgcnrx11 哈哈哈 | 
|  |      42wdlth      2017-02-10 19:44:47 +08:00 感觉很杂,像是东拼西凑出来的…… | 
|  |      43Shura      2017-02-10 20:08:55 +08:00 StringBuffer sb = new StringBuffer(); 这个变量名啊, navie | 
|      44xiaonengshou      2017-02-10 20:15:47 +08:00 还是需要这样的规约的,就像 airbnb 的规范。约束不是目的,而是统一、 | 
|  |      45smithtel      2017-02-10 20:29:52 +08:00 via Android 后面有干货,还是可以看看 | 
|  |      46aristotll      2017-02-10 21:03:08 +08:00 居然都覆盖 Java8 了 Java 果然兼容性好 导致升级压力下了啊 | 
|  |      48tt0411      2017-02-10 21:09:52 +08:00 干货挺多的. 代码规范必须配套代码分析工具, 工具比规范文档更重要, 希望阿里的同学能分享甚至开源他们的工具 | 
|      49zacard      2017-02-10 21:42:21 +08:00 有干货,很多规范非常实用。 | 
|      50ddou      2017-02-10 22:31:54 +08:00 编码规范,老鸟们早都烂熟于心了。作为新手指引,在公司内作为一个代码的基本要求规范,还是有点价值的。 | 
|  |      51gouchaoer      2017-02-10 22:40:55 +08:00 via Android 还行吧,都看完了 | 
|      52CYKun      2017-02-10 23:07:26 +08:00 via Android 请教一下各位,“对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别” 是什么意思? 我的理解里 Service 和 DAO 是在系统内部被调用完成业务逻辑的,并不会被暴露给外部系统,这里的 SOA 是什么意思? | 
|  |      56huanghaofu86      2017-02-11 09:50:19 +08:00 阿里用什么数据库? | 
|  |      58nashxk      2017-02-11 10:32:59 +08:00 如果自己没有一套合理的规范,学习一下也是很好的,提高协作效率,不用怎么评价。 | 
|  |      60kingcos      2017-02-11 11:38:02 +08:00 via iPhone 不错啊,如果好的话准备用到下面的项目里 | 
|      61zhx1991      2017-02-11 12:12:44 +08:00 里面关于使用 final 可以提升效率的说法是不严谨的 | 
|      62hjklb      2017-02-11 13:22:05 +08:00 via Android com.eg.android.AlipayGphone 支付宝的包名 2 个大写字母。还强制? | 
|      63hjklb      2017-02-11 13:23:14 +08:00 via Android 还有 eg 是什么鬼简写。 | 
|      64davinci      2017-02-11 23:23:30 +08:00 不明觉厉 | 
|      65mingyun      2017-02-11 23:48:55 +08:00 有对应 php 或 python 版吗 | 
|  |      66Miy4mori      2017-02-12 01:35:38 +08:00 要效仿使用的话为什么不用 google style guide ,反正阿里的东西总觉得是世界上有比它好的他却要自己造个有点问题的。。。 | 
|      671762628386      2017-02-12 11:56:14 +08:00 @CYKun 暴露出来的服务 一定要在接口文件中声明 | 
|      681762628386      2017-02-12 11:56:32 +08:00 . | 
|      69phx13ye      2017-02-13 16:53:44 +08:00 翻了一下当时下的支付宝即时到帐 sdk ,我可能下了假代码。。。。 /** * 生成文件摘要 * @param strFilePath 文件路径 * @param file_digest_type 摘要算法 * @return 文件摘要结果 */ public static String getAbstract(String strFilePath, String file_digest_type) throws IOException { PartSource file = new FilePartSource(new File(strFilePath)); if(file_digest_type.equals("MD5")){ return DigestUtils.md5Hex(file.createInputStream()); } else if(file_digest_type.equals("SHA")) { return DigestUtils.sha256Hex(file.createInputStream()); } else { return ""; } } | 
|  |      70stevenkang OP @phx13ye 可能在假的支付宝网站上面下载到了假的支付宝员工编写的假的代码。 | 
|      71dz8235462      2017-02-15 16:08:22 +08:00 @reeco 我并不相信写一个 if 并生成一个 map ,放进去几个值再返回,比用异常直接结束方法要方便。一个应该返回 int 的方法,不应该在需要报错的时候报错吗? | 
|  |      72stevenkang OP |