编写代码的「八荣八耻」(上篇)
产品命名:以简单有趣为荣,以冗长难记为耻。
静儿从19年元旦以来,新创建的4个产品:heimdal、carter、hydra、stark。分别对应漫威里的:海姆达尔(Heimdallr是彩虹桥的守护神,我们项目用的是heimdal 是个一个地名,与Heimdallr音译相同)、特工卡特、九头蛇、钢铁侠。
这样做的好处:
1>激发团队热情:
项目开发的时候,自己在打造一个「钢铁侠」要比打造一个「XX支付系统」、「XX管理系统」更激动人心,有木有?
2>精品意识:
自己做的每一个产品,将来都是可以做开源、可以对外宣传、让业界来学习的,这种产品从一开始就要定义一个可对外宣传用的名字。
3>命名规约需求:
《阿里巴巴Java开发手册》里写到,包名两个点之间仅能有一个自然语义的英语单词。Java编程规约要求开发人员在自己定义的包名前加上唯一的前缀,一般人采用自己公司在互联网的域名。不想让自己的包是由太多点号组成的。一个简练的产品名是个不错的选择。
单个方法:以短小精悍为荣,以冗长费神为耻。
代码尽量短小精悍,提高可读性。
静儿用了两周开发一个包含两个服务的新产品hydra,周四上线了。周五做Code Review的时候,刚开始心里有些许伤感,代码也就几千行。每个类、每个方法看起来都很短小。实际上却耗费了挺多精力。而且静儿确信这个交给其他人做要达到同样的质量要多耗费几倍的时间,但似乎在代码中表现不出来。
但是review结束后,团队里另一个代码也写的挺好同事马上发出感叹:「开发工作量巨大。」知音哪!且不说里面整体架构的优化,静儿的一行代码可能实现了更多的功能。所以描述自己产出的一个思路是尽量将自己实现的功能包括改进点说细说明白。现在没有公司绩效把代码行数作为考核项了吧?
举个实战的栗子