还在上大学的时候,就曾看到过早期阿里的Java开发手册,那时候还对其中大部分的规约满是疑惑,知其然而不知其所以然。后面我参与实习,那时候公司也十分注重代码规范,带我的师傅让我先学习下阿里的Java开发手册,以后就照着这个规范来了。
随着后面经验的不断积累,我开始渐渐了解Java开发手册一些规约其中的深意。举个例子:对于一个设备在线、离线状态,我在应用层设计的时候是设计成基本类型boolean还是包装类Boolean呢,包装类的Boolean支持赋null值,基本类型boolean赋null会抛NPE,我的选择决定我后面对可能出现的null如何处理。那我数据库那边的字段要选择什么类型,才能最大程度上满足需求,又节省空间呢?我后续是否需要在该字段加索引呢?哦,不对,要是后面设备的状态,可能不止在线,离线,多了个"正忙"状态,我要是设计成布尔型,后期这改动就要命了呀,考虑到拓展性,我得考虑用其他基本类型代替,那是short好呢,还是int呢,还是long呢,那数据库那边对应的字段类型,是varchar呢,还是别的一些呢。
上面的问题,有很多种组合方式,对于没有经验的新手来说,要是他考虑到了这些问题,他要花费大量的时间去尝试各种可能,选出最优的方案。对于有经验的老手,也可能会直接用过往的经验去设计,倘若他的"过往经验"不是最优解呢?正因为程序开发有无限的可能,它才显得迷人,但是坑也很多。有了阿里的Java开发手册就好多了,大家把平常开发的一些坑,和好的设计,经过反复的推敲,提炼出来,总结一套可行的规范,让广大开发者受益,这,正是Java开发手册备受Java开发者推崇的主要因素。
手册也一直在更新迭代,一直在进步,如今敢起名五岳之巅--泰山版,也算不枉此名吧。