摘要:熟悉和遵守阿里巴巴开发手册的编程风格,那只是标,而代码可读性的本可以追溯到软件设计阶段。何为条设计规约是根据阿里巴巴实际项目架构经验提炼而成,共条。本次新增的不单是条新的设计规约,还是千万阿里人的技术之心。
摘要:2018年6月,《阿里巴巴Java开发手册》再次刷新代码规范认知,我们新增了16条设计规约!现免费开放下载,不可错过!
《阿里巴巴Java开发手册》是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等,这是近万名阿里Java技术精英的经验总结,并经历了多次大规模一线实战检验及完善。这是阿里回馈给Java社区的一份礼物,希望能够帮助企业开发团队在Java开发上更高效、容错、有协作性,提高代码质量,降低项目维护成本。
2018年6月5日,《阿里巴巴Java开发手册》再次刷新代码规范认知,我们新增了16条设计规约!
点此免费下载《阿里巴巴Java开发手册》(详尽版)!
为何要新增设计规约?
脍炙人口的唐诗“两个黄鹂鸣翠柳,一行白鹭上青天”,清爽直接,简明易懂。可读性好的代码也是让人陶醉的,那么如何写出可读性的代码?
代码的可读性是指代码让人容易阅读、理解、调试、可预料的程度。提高代码的可读性可以为代码阅读者节约时间和精力,提升团队协作效率。熟悉和遵守《阿里巴巴JAVA开发手册》的编程风格,那只是“标”,而代码可读性的“本”可以追溯到软件设计阶段。试想一下如果发型师没有设计好,不用指望能剪出一个“可读性”比较好的你。
设计是一种梦想和追求,谁都喜欢有气质的女神,谁都会欣赏有设计感的代码。你可能会问,什么是设计感?就像烧饭这件事,村姑和御厨都会烧,都能吃饱,但是菜品的美感、口感,有本质的区别。代码到艺术层面上,能够体现出来非常好的扩展性、解耦性。代码就象积木一样,换一个搭法,也是OK的,结构清晰,不用担心拔出萝卜带出泥。
何为16条?
设计规约是根据阿里巴巴实际项目架构经验提炼而成,共16条。设计规约主要从UML图和架构设计原则来规定比较基础的软件设计理念,并且明确了超过什么样的阈值需要以什么样的方式来呈现设计思维。根据阿里巴巴内部的反馈声音来看,对于数据底层结构、状态图、以及敏捷开发相关的三条,共鸣感最强,那么详细点评一下:
数据底层结构
底层数据结构属于大厦的地基工程,如果地基不稳,那么上层去修正难度是相当大的,甚至是无法修正。所以设计规约提倡,存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档。有缺陷的底层数据结构容易导致系统风险高,可扩展性差,重构成本因历史数据迁移、系统平滑过渡也会陡然增加,所以,存储方案和数据结构需要认真地进行设计和评审,生产环境提交执行后,需要进行double check。评审内容包括存储介质选型、表结构设计能否满足技术方案、存取性能和存储空间能否满足业务发展、表或字段之间的辩证关系、字段名称、字段类型、索引等;数据结构变更(如在原有表中新增字段)也需要进行评审通过后上线。
状态图
业务对象状态相关的编码错误是引起线上故障的一个重要导火索。多一个状态,少一个状态,如果没有历史设计文档沉淀,那么都是灾难性的。如果某个业务对象的状态超过3个,使用状态图来表达并且明确状态变化的各个触发条件。状态图的核心是对象状态,首先明确对象有多少种状态,然后明确两两状态之间是否存在直接转换关系,再明确触发状态转换的条件是什么。淘宝订单状态有已下单、待付款、已付款、待发货、已发货、已收货等。比如已下单与已收货这两种状态之间是不可能有直接转换关系的。
敏捷开发
敏捷开发是当下流行的一种开发模式,相比传统软件生产流程,更加快速地交付。但是,敏捷开发适合于信任度好、理解力强、技术水平相对一致的创业型团队。但是在很多公司敏捷成为一个抓进度的拔苗助长式的借口。所以避免如下误解:敏捷开发 = 讲故事 + 编码 + 发布。敏捷开发是快速交付迭代可用的系统,省略多余的设计方案,摒弃传统的审批流程,但核心关键点上的必要设计和文档沉淀是需要的。
写在最后
我们相信技术之心生生不息,也相信好的规约值得被传播和应用。
本次新增的不单是16条新的设计规约,还是千万阿里人的技术之心。
我们也期待大家的意见,持续完善,
那么说说大家眼里的软件设计中遇到的坑吧。
本文作者:孤尽
原文链接
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/69685.html
摘要:年月底,阿里巴巴集团发布了阿里巴巴开发手册终极版,年月日,在杭州云栖大会上,代码规约插件全球首发,插件支持以上版本和以上版本。阿里巴巴代码规约插件安装阿里代码规约插件有插件和插件。 2017年9月底,阿里巴巴集团发布了《阿里巴巴Java开发手册》PDF终极版,2017年10月14日,在2017杭州云栖大会上,Java代码规约插件全球首发,p3c-pmd插件支持Eclipse4.2以上版...
摘要:强制存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档。正例淘宝订单状态有已下单待付款已付款待发货已发货已收货等。确定指导后续设计与演化的原则。 showImg(https://segmentfault.com/img/remote/1460000016159838?w=1215&h=642); 1、【强制】存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档。 说...
摘要:说明这篇文章是我第一次认真阅读阿里巴巴开发手册终极版的笔记。说明本手册明确防止是调用者的责任。一年半载后,那么单元测试几乎处于废弃状态。好的单元测试能够最大限度地规避线上故障。 说明 这篇文章是我第一次(认真)阅读《阿里巴巴 Java 开发手册(终极版)》的笔记。手册本身对规范的讲解已经非常详细了,如果你已经有一定的开发经验并且有良好的编码习惯和意识,会发现大部分规范是符合常识的。所以...
摘要:的类型均为类型,前者现在时表示主动创建,后者过去分词表示被动更新。推荐单表行数超过万行或者单表容量超过,才推荐进行分库分表。超过三个表禁止。防止因字段类型不同造成的隐式转换,导致索引失效。说明会统计值为的行,而列名不会统计此列为值的行。 一.编程规约 (一)命名风格 1.目录使用小写+下划线 home,view,model,admin_view 2.类 UpperCamelCa...
阅读 1597·2021-11-04 16:11
阅读 3308·2021-09-09 11:33
阅读 1558·2019-08-30 15:54
阅读 619·2019-08-30 15:44
阅读 3173·2019-08-30 15:43
阅读 2553·2019-08-30 13:06
阅读 1697·2019-08-29 17:00
阅读 894·2019-08-29 15:33