上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: Kent Beck的简单设计四条规则 1、运行所有测试 2、不可重复 3、表达了程序员的意图 4、尽可能减少类和方法的数量 简单设计规则1:运行所有测试 遵循有关编写测试并持续运行测试的简单、明确的规则,系统就会更贴近OO低耦合度、高内聚度的目标。编写测试引致更好的设计。 简单设计规则2~4:重构 阅读全文
posted @ 2018-11-29 09:43 TanSea 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 无论是设计系统或单独的模块,使用大概可工作的最简单方案。 将系统的构造与使用分开 1、分解main 将构造与使用分开的方法之一是将全部构造过程搬迁到main或被称之为main的模块中。 2、工厂 有时应用程序也要负责确定何时创建对象。 3、依赖注入 有一种强大的机制可以实现分离构造与使用,那就是依赖 阅读全文
posted @ 2018-11-27 16:17 TanSea 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 类应该短小 1、单一权责原则(SRP) 系统应该由许多短小的类而不是少量巨大的类组成。 每个小类封装一个权责,只有一个修改的原因,并与少数其他类一起协同达成期望的系统行为。 2、内聚 类应该只有少量实体变量。类中的每个方法都应该操作一个或多个这种变量。 3、保持内聚性就会得到许多短小的类 为了修改而 阅读全文
posted @ 2018-11-27 16:05 TanSea 阅读(162) 评论(0) 推荐(0) 编辑
摘要: TDD三定律 定律一 在编写不能通过的单元测试前,不可编写生产代码。 定律二 只可编写刚好无法通过的单元测试,不能编译也算不通过。 定律三 只可编写刚好以通过当前失败测试的生产代码。 保持测试整洁 测试代码和生产代码一样重要。它需要被思考、被设计和被照料。它该像生产代码一般保持整洁。 整洁的测试 在 阅读全文
posted @ 2018-11-26 16:49 TanSea 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 1、使用第三方代码,把边界接口保留在类或近亲类中。避免从公共API中返回边界接口,或将边界接口作为参数传递给公共API。 2、浏览和学习边界,不要在生产代码中试验新东西,而是编写测试来遍览和理解第三方代码。Jim Newkirk把这个叫做学习性测试。 3、学习性测试的好处不只是免费,能帮助我们增进对 阅读全文
posted @ 2018-11-22 11:30 TanSea 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 1、使用异常而非返回码 2、先写Try-Catch-Finally语句 3、使用不可控异常,可控异常的代价是违反开放/闭合原则 4、给出异常发生的环境说明,抛出的每个异常,都应当提供足够的环境说明,以便判断错误的来源和处所 5、依调用者需要定义异常类 6、定义常规流程,使用特例模式。创建一个类或配置 阅读全文
posted @ 2018-11-20 14:21 TanSea 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 数据结构、对象的反对称性 对象(对象式代码)曝露行为,隐藏数据。便于添加新对象类型而无需修改既有行为,同时也难以在既有对象中添加新行为。 数据结构(过程式代码)曝露数据,没有明显的行为。便于向既有数据结构添加新行为,同时也难以向既有函数添加新数据结构。 在任何系统中,我们有时会希望能够灵活地添加新数 阅读全文
posted @ 2018-11-19 17:08 TanSea 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 垂直格式 1、推荐单文件200行代码左右,最长不超过500行。 2、每一组思路完整的代码,中间用空白行区隔。 3、紧密相关的代码应该互相靠近。 4、本地变量和实体变量应该在类的顶部声明。 5、概念相关的代码应该放在一起,相关性越强,距离越短。 6、自上向下展示函数调用依赖顺序。被调用的函数应该放在执 阅读全文
posted @ 2018-11-19 10:44 TanSea 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 只有代码能告诉你它做的事,那是唯一真正准确的信息来源。 注释是弥补在用代码表达意图时遭遇的失败。 尽管有时也需要注释,我们也该多花心思尽量减少注释量。 好注释 有些注释是必须的,也是有利的。不过要记住,唯一真正好的注释是想办法不去写的注释 1、法律信息 公司代码规范要求编写与法律有关的注释。 2、提 阅读全文
posted @ 2018-11-15 16:13 TanSea 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 短小 函数的第一规则是要短小。第二条规则是还要更短小。 函数20行封顶最佳。 if语句、else语句、while语句等,其中的代码块应该只有一行,而且,块内调用的函数拥有较具说明性的名称,还能起到文档的作用。 只做一件事 函数应该做一件事。做好这件事。只做这一件事。 每个函数一个抽象层级 自顶向下读 阅读全文
posted @ 2018-11-13 17:13 TanSea 阅读(296) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页