倚楼听风雨
淡看江湖路

阿里巴巴Java开发手册第七章-设计规约(下)

《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断的完善,系统化地整理成册,回馈给广大开发者。老四购买了纸质版本,发现纸质书中多了一个章节,主要讲解软件设计过程中 UML(Unified Modeling Language:标准建模语言)设计准则以及基本的架构理念。鉴于阿里巴巴官方电子版本没有此类内容,所以老四精心整理,附上些许不成熟的、更多的示例和说明,希望对看到的人有所帮助。

11.[推荐] 在系统设计时,注意对扩展开放,对修改闭合。

说明:在极端情况下,交付的代码是不修改的,同一业务域内的需求变化,应通过模块或类的扩展来实现。

老四附言:

该条实际说明的是设计模式中的开放-封闭原则,详情可以戳《浅析设计模式第四章之开放-封闭原则》这篇文章参考。

12.[推荐] 在系统设计阶段,共性业务或公共行为抽取出来公共模块、公共配置、公共类、公共方法等,在系统中不应出现重复代码的情况。

说明:随着代码的重复次数不断增加,维护成本呈指数级上升。

老四附言:

玩 Java 的,知道面向对象的,都应该知道这条表达的意思吧?

13.[参考] 系统设计的主要目的是明确需求、理顺逻辑、后期维护,次要目的是用于指导编码。

说明:避免为了设计而设计,系统设计文档有助于后期的系统维护,所以设计结果需要进行分类归档保存。

老四附言:

一份完整的系统设计文档供你们参考。下载地址文末自助下载。

14.[参考] 设计的本质是识别和表达系统难点,并找到系统的变化点,并隔离变化点。

说明:世间众多设计模式其实就是一种设计模式,即隔离变化点的模式。

老四附言:

你是阿里专家,你说啥都对,我也决定那24个设计模式我也不学了。。。

15.[参考] 系统架构设计的目的:
  1. 确定系统边界。确定系统在技术层面上的做与不做。
  2. 确定系统内模块之间的关系。确定模块之间的依赖关系及模块的宏观输入与输出。
  3. 确定知道后续设计与演化的原则。使后续的子系统或模块设计在一个规定的框架内继续演化。
  4. 确定非功能性需求。非功能性需求是指安全性、可用性、可扩展性等。

老四附言:

总之在项目开始之前,系统设计文档必不可少,确定整体需求,在确定相对细化的需求,在对未来的扩展考虑到位在开发,要不然呢,你猜会怎么样?有几个公司给你加班费啊?

16.[参考] 避免发生如下误解:敏捷开发=讲故事+编码+发布。

说明:敏捷开发是快速交付迭代可用的系统,省略多余的设计方案,摒弃传统的审批流程,但需要关心关键点上的必要设计和文档沉淀。

老四附言:

关于敏捷开发,老四从实习开始用的就是这种工作模式,如果有时间的话,会写一些心和大家交流一下。现在推荐一本关于敏捷开发的书籍吧。Robert C. Martin的《敏捷软件开发:原则、模式与实践》。

更博不易,如果觉得文章对你有帮助并且有能力的老铁烦请捐赠盒烟钱,点我去赞助。或者扫描文章下面的微信/支付宝二维码打赏任意金额(点击「给你买杜蕾斯」),也可扫描小站放的支付宝领红包二维码,线下支付享受优惠的同时老四也可以获得对应赏金,老四这里抱拳谢谢诸位了。捐赠时请备注姓名或者昵称,因为您的署名会出现在赞赏列表页面,您的捐赠钱财也会被用于小站的服务器运维上面,再次抱拳感谢。

资源下载

隐藏内容:******,购买后可见!

下载价格:0 G币

您需要先后,才能购买资源

欢迎访问高老四博客(glorze.com),本站技术文章代码均为老四亲自编写或者借鉴整合,其余资源多为网络收集,如涉及版权问题请与站长联系。如非特殊说明,本站所有资源解压密码均为:glorze.com。

赞(6) 给你买杜蕾斯
本站原创文章受自媒体平台原创保护,未经允许不得转载高老四博客 » 阿里巴巴Java开发手册第七章-设计规约(下)

开始你的表演 抢沙发

觉得文章有用就打赏一下老四,鼓励我更好的创作

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册