更值得其他语言开发者看的《阿里Java开发手册》

今年早些时候,阿里分享了其官方的 Java 开发手册,宣称是阿里长期以来的经验总结,大概翻看了一遍确实很有参价值。

如果每个团队开发在开发之初订立这样的一份开发准则,先不说 review 和对接时间会大大减少,效率提高。至少看风格统一的项目心情都要好上不少。

阿里对外发布这样一份开发手册,看起来是不满足于规范团队,而是想为了增强社区代码规范性作贡献。

个人看法

其实刚开始对于阿里公开开发手册,我是比较惊讶的。

因为公开这种开发手册不像是开源一个组件,这种手册更多的是说日常开发中的一些习惯和良好建议的总结。

但是毕竟不同的项目情况不一样,虽然阿里是站在一个通用的角度上提建议,但是因为阅读开发手册比阅读开源组件源码门槛要低得多,而且一不小心就会被很多本来有自己项目规范的团队无脑搬来当做新的准则,对项目重新整改 …

这时候就免不了不少喷子来喷: “我们项目就是怎么这么干的,照样很好… ”

我对此的反应没有愤青这么激进,除了惊讶之余我的第一反应是:难道最近阿里开源项目收到的 PR 规范性不好?

但其实这不太可能,通常优秀的开源项目都会有相应 PR 规定,来明示项目开发准则。而且能给阿里开源组件提 PR 的通常都是读透了源码,肯定不会栽在这种规范问题上。

网上看了其他网友对此事的看法,有一类对阿里发布开发手册的初衷猜想是说:阿里每年都要大量招聘 Java 开发,对新员工有几十个小时的工时分配是阅读此类开发手册,现在将开发手册公开,默认来应聘 Java 的人都是熟悉阿里 Java 开发手册,以此来压缩培训工时… 这小脑洞还挺有意思。

不过话说回来,为什么我说这次阿里发布的 Java 开发手册更值得其他语言开发者看,比如 Python 开发者。

因为其他语言更缺少类似的规范建议,众所周知 Java 具有很强的规范性,加上各种优秀框架的模板加持,基本上新手写的 Java 代码和老鸟写的 Java 代码不会相差太远(不考虑对设计模式运用、算法和数据结构的选择,就单纯从实现一个普通方法而言)。

而 Python 正因为其动态性,加之每个人对 pythonic 这种哲学问题的理解程度不一样,真正研究过 PEP 8 并严格执行的人寥若晨星。

导致了基本上很难通过单纯通过一个 Python 方法签名搞清楚用法,甚至有时候需要大概看一下文档或者实现才能确定传递的参数类型 …

搞清楚了传递的参数,想好好看看实现,但是实现里面的每个方法你都需要你像搞清楚本方法那样弄清楚传参和实现 …

最终还是将整个方法当做黑盒直接使用 … 嗯,这很真的 Python。

所以相比于目前已经很多“不成文规范”的 Java 开发者来说,多一本《阿里Java开发手册》只能说锦上添花,而对于动态语言开发者来说每一本权威的《动态语言开发手册》才是雪中送炭。

但是现状就是没有这样的动态语言手册,怎么办?只能从别的语言那里学一点,比如这次的《阿里Java开发手册》就有不少值得 Python 甚至 OC 参考的通用规范,如此一本《阿里Java开发手册》确实建议所有开发者一读。

最后盲猜一下阿里或者其他大厂还会发布其他语言的开发手册吧。如 Python 开发手册?

我觉得不太会,因为哪怕是本身已经有那么多不成文规范的 Java ,阿里作为总结人角色都是用了【强制】【推荐】【参考】等字眼来严谨说明,可谓如履薄冰。

如果出版 Python 语言开发手册,估计能被不少“开发者”一句“没觉得有多 pythonic ”就能喷得一无是处。

所以各位 Python 开发者还是共勉,多看优秀框架源码来自己总结吧。

Java 对象详解 深入了解 MyBatis :动态 SQL

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×