随笔分类 -  code complete

摘要:创建类和子程序通常都是一个迭代的过程。在创建子程序的过程中获得的认识常常会反过来影响类的设计。 编写好的伪代码需要使用易懂的英语,要避免使用特定编程语言中才有的特性,同时要在意图的层面上写伪代码(即描述该做什么,而不是要怎么做)。 伪代码编程过程是一个行之有效的做详细设计的工具,它同时让编码工作更容 阅读全文
posted @ 2017-01-10 08:41 逸风净天 阅读(865) 评论(0) 推荐(0)
摘要:最终产品代码中对错误的处理方式要比“垃圾进,垃圾出”复杂得多。 防御式编程技术可以让错误更容易发现、更容易修改,并减少错误对产品代码的破坏。 断言可以帮助人迟早发现错误,尤其是在大型系统和高可靠性的系统中,以及快速变化的代码中。 关于如何处理错误输入的决策是一项关键的错误处理决策,也是一项关键的高层 阅读全文
posted @ 2016-12-06 09:13 逸风净天 阅读(128) 评论(0) 推荐(0)
摘要:创建子程序最主要的目的是提高程序的可管理性,当然也有其他一些好的理由。其中,节省代码空间只是一个次要原因;提高可读性、可靠性和可修改性等原因都要更重要一些。 有时候,把一些简单的操作写成独立的子程序也非常有价值。 子程序可以按照其内聚性分为很多类,而你应该让大多数子程序具有功能上的内聚性,这是最佳的 阅读全文
posted @ 2016-11-18 09:11 逸风净天 阅读(176) 评论(0) 推荐(0)
摘要:类的接口应提供一致的抽象。很多问题都是由于违背该原则而引起的。 类的接口应隐藏一些信息--如某个系统接口、某项设计决策、或一些实现细节。 包含往往比继承更为可取--除非你要对“是一个/is a”的关系建模。 继承是一种有用的工具,但它却会增加复杂度,这有违于软件的首要技术使命--管理复杂度。 类是管 阅读全文
posted @ 2016-11-06 19:10 逸风净天 阅读(120) 评论(0) 推荐(0)
摘要:软件的首要技术使命就是管理复杂度。以简单性作为努力目标的设计方案对此最有帮助。 简单性可以通过两种方式来获取:一是减少在同一时间所关注的本质性复杂度的量,二是避免生成不必要的偶然的复杂度。 设计是一种启发式的过程。固执于某一种单一方法会损害创新能力,从而损害你的程序。 好的设计都是迭代的。你尝试设计 阅读全文
posted @ 2016-11-05 11:58 逸风净天 阅读(128) 评论(0) 推荐(0)
摘要:每种编程语言都有其优点和弱点。要知道你使用的语言的明确优点和弱点。 在开始编程之前,做好一些约定(convention)。“改变代码使之符合这些约定”是近乎不可能的。 “构建的实践方法”的种类比任何单个项目能用到的要多。有意识地选择最适合你的项目的实践方法。 问问你自己,你采用的编程实践是对你所用的 阅读全文
posted @ 2016-11-01 09:11 逸风净天 阅读(144) 评论(0) 推荐(0)
摘要:构建活动的准备工作的根本目标在于降低风险。要确认你的准备活动是在降低风险,而非增加风险。 如果你想开发高质量的软件,软件开发过程必须由始至终关注质量。在项目初期关注质量,对产品质量的正面影响比在项目末期关注质量的影响要大。 程序员的一部分工作是教育老板和合作者,告诉他们软件开发过程,包括在开始编程之 阅读全文
posted @ 2016-10-30 14:59 逸风净天 阅读(167) 评论(0) 推荐(0)
摘要:隐喻是启示而不是算法。因此它们往往有一点随意(sloppy)。 隐喻把软件开发过程与其他你熟悉的活动联系在一起,帮助你更好地理解。 有些隐喻比其他一些隐喻更贴切。 通过把软件的构建过程比作是房屋的建设过程,我们可以发现,仔细的准备是必要的,而大型项目和小型项目之间也是有差异的。 通过把软件开发中的实 阅读全文
posted @ 2016-10-22 14:57 逸风净天 阅读(225) 评论(0) 推荐(0)
摘要:软件构建是软件开发的核心活动;构建活动是每个项目中唯一一项必不可少的工作。 软件构建的主要活动包括:详细设计、编码、调试、集成、开发者测试(developer testing)(包括单元测试和集成测试)。 构建也常被称作“编码”和“编程”。 构建活动的质量对软件的质量有着实质性的影响。 阅读全文
posted @ 2016-10-22 14:48 逸风净天 阅读(103) 评论(0) 推荐(0)