阅读 75

阿里Java规范再次刷新代码规范认知,新增的16条设计规约你了解吗?

原文链接: click.aliyun.com

就在前不久,火热进行的 “向代码致敬,寻找你的第83行” 活动中参与人数众多,各位程序员纷纷晒出自己的规范代码,一绝高下,最终经过激烈角逐选出了两位高手盲人程序员蔡永斌和高中生青藤木子,然而这些代码的规范性评定标准就是《阿里巴巴Java开发手册》,它是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等,这是近万名阿里Java技术精英的经验总结。

2018年6月5日,《阿里巴巴Java开发手册》再次刷新代码规范认知,新增了16条设计规约!

何为16条?

设计规约是根据阿里巴巴实际项目架构经验提炼而成,共16条。设计规约主要从UML图和架构设计原则来规定比较基础的软件设计理念,并且明确了超过什么样的阈值需要以什么样的方式来呈现设计思维。根据阿里巴巴内部的反馈声音来看,对于数据底层结构、状态图、以及敏捷开发相关的三条,共鸣感最强,那么详细点评一下:

数据底层结构

底层数据结构属于大厦的地基工程,如果地基不稳,那么上层去修正难度是相当大的,甚至是无法修正。所以设计规约提倡,存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档。有缺陷的底层数据结构容易导致系统风险高,可扩展性差,重构成本因历史数据迁移、系统平滑过渡也会陡然增加,所以,存储方案和数据结构需要认真地进行设计和评审,生产环境提交执行后,需要进行double check。评审内容包括存储介质选型、表结构设计能否满足技术方案、存取性能和存储空间能否满足业务发展、表或字段之间的辩证关系、字段名称、字段类型、索引等;数据结构变更(如在原有表中新增字段)也需要进行评审通过后上线。

状态图

业务对象状态相关的编码错误是引起线上故障的一个重要导火索。多一个状态,少一个状态,如果没有历史设计文档沉淀,那么都是灾难性的。如果某个业务对象的状态超过3个,使用状态图来表达并且明确状态变化的各个触发条件。状态图的核心是对象状态,首先明确对象有多少种状态,然后明确两两状态之间是否存在直接转换关系,再明确触发状态转换的条件是什么。淘宝订单状态有已下单、待付款、已付款、待发货、已发货、已收货等。比如已下单与已收货这两种状态之间是不可能有直接转换关系的。

敏捷开发

敏捷开发是当下流行的一种开发模式,相比传统软件生产流程,更加快速地交付。但是,敏捷开发适合于信任度好、理解力强、技术水平相对一致的创业型团队。但是在很多公司敏捷成为一个抓进度的拔苗助长式的借口。所以避免如下误解:敏捷开发 = 讲故事 + 编码 + 发布。敏捷开发是快速交付迭代可用的系统,省略多余的设计方案,摒弃传统的审批流程,但核心关键点上的必要设计和文档沉淀是需要的。

传送门

《阿里巴巴Java开发手册》(详尽版)免费下载链接!

我们聊聊吧!

你了解过《阿里巴巴Java开发手册》吗?能否评价下。
你觉得《阿里巴巴Java开发手册》有哪条经验让你受益匪浅?
你觉得《阿里巴巴Java开发手册》还有哪些需要补充的吗?
你觉得Java编码规范存在的意义是什么?
文章分类
后端
文章标签