摘要: 第三部分:理论五 命名 1、命名多长最合适? 长的命名可以包含更多的信息,更能准确直观地表达意图,但最好不要长到两行的程度,影响代码的可读性。 在足够表达其含义的情况下,命名当然是越短越好。对于一些默认的、大家都比较熟知的词,我比较推荐用缩写。 对于作用域比较小的变量,我们可以使用相对短的命名,比如 阅读全文
posted @ 2021-10-04 21:04 起床睡觉 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 第三部分:理论四 “解耦”为何如此重要? 软件设计与开发最重要的工作之一就是应对复杂性。 如果说重构是保证代码质量不至于腐化到无可救药地步的有效手段,那么利用解耦的方法对代码重构,就是保证代码不至于复杂到无法控制的有效手段。 “高内聚、松耦合”是一个比较通用的设计思想,不仅可以指导细粒度的类和类之间 阅读全文
posted @ 2021-10-04 20:58 起床睡觉 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 第三部分:理论三 编写可测试代码案例实战 测试类 Transaction 是经过抽象简化之后的一个电商系统的交易类,用来记录每笔订单交易的情况。 execute() 函数负责执行转账操作,将钱从买家的钱包转到卖家的钱包中。 在execute() 中,真正的转账操作是通过调用 WalletRpcSer 阅读全文
posted @ 2021-10-04 20:56 起床睡觉 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 第三部分:理论二 如何保证重构不出错呢? 需要熟练掌握各种设计原则、思想、模式,还需要对所重构的业务和代码有足够的了解。 除了这些个人能力因素之外,最可落地执行、最有效的保证重构不出错的手段应该就是单元测试(Unit Testing)了。 什么是单元测试? 文中举例,测试 Text 类中的 toNu 阅读全文
posted @ 2021-10-04 20:11 起床睡觉 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 第三部分:理论一 关于重构安排了六节课,主要包含一下几个方面: 对重构概括性的介绍,包括重构的目的(why)、对象(what)、时机(when)、方法(how) 保证重构不出错的手段,这里我会重点讲解单元测试和代码的可测试性 不同规模的重构,重点讲解大规模高层次重构(比如系统、模块、代码结构、类与类 阅读全文
posted @ 2021-10-04 20:01 起床睡觉 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 第二部分:实战二 实战二(上) 项目背景 文中举例,设计开发一个小的框架,能够获取接口调用的各种统计信息,并且支持将统计结果以各种显示格式输出到各种终端,以方便查看。 需求分析 性能计数器作为一个跟业务无关的功能,我们完全可以把它开发成一个独立的框架或者类库,集成到很多业务系统中。 作为可被复用的框 阅读全文
posted @ 2021-10-04 19:55 起床睡觉 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 第二部分:实战一 实战一(上) 需求分析 文中举例,一个积分兑换系统的开发实战,技术人员应该更多地参与到产品设计中。 作为技术人,我该怎么做产品设计呢?首先,一定不要自己一个人闷头想。一方面,这样做很难想全面。另一方面,从零开始设计也比较浪费时间。所以,我们要学会“借鉴”。 除了“借鉴”的思路,还可 阅读全文
posted @ 2021-10-04 15:46 起床睡觉 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 第二部分:理论八 理论八 何为“高内聚、松耦合”? “高内聚、松耦合”是一个非常重要的设计思想,能够有效地提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。 “高内聚”用来指导类本身的设计,“松耦合”用来指导类与类之间依赖关系的设计。 那到底什么是“高内聚”呢? 所谓高内聚,就是指相近的功 阅读全文
posted @ 2021-10-04 15:40 起床睡觉 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 第二部分:理论七 理论七 DRY 原则(Don’t Repeat Yourself) DRY 原则,英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。 三种典型的代码重复情况,它们分别是:实现逻辑重复、功能语义重复和代码 阅读全文
posted @ 2021-10-04 13:15 起床睡觉 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 第二部分:理论五 理论五 控制反转(IOC) 控制反转的英文翻译是 Inversion OfControl,缩写为 IOC。 文中举例,测试类 UserServiceTest 中一个测试方法 doTest(),程序员可以在业务代码的任何地方调用 doTest() 方法,所有的流程都由程序员来控制。 阅读全文
posted @ 2021-10-04 13:04 起床睡觉 阅读(35) 评论(0) 推荐(0) 编辑