学完《数据结构与程序设计》第一章,对编程原则总结如下几点:
1、编写的每个程序、函数 要包含准确地前置条件和后置条件。
2、程序说明的第三部分是它所使用的类和函数的列表,每个程序、函数或方法都应包含一个类似的列表。
3、保持文档简练但具有描述作用。由于程序的良好格式的重要性,需要为空格和缩排设置一些合理的规则并在所书写的所有程序中一致的使用这些规则。如果要使格式化系统在阅读程序中有用,则一致性是必要的。许多专业程序设计团体会选定一种统一的体系并坚持他们所编写的所有程序都符合它。一些班级或学生程序设计小组也同样这样做。这样,一个程序设计员就更容易阅读和理解别的程序设计员的作品。
4、阅读程序的时间比编写程序的时间多得多,使阅读更容易。
5、自顶向下的细化原则是编写能运行的大型程序的真正关键。这一原则隐含着详细的考虑可以延迟,但精确性和严格性并不能延迟。它不意味着主程序变成某种模糊的、满意描述任务的实体。相反,主程序会将几乎所有的工作分派给各种类、数据结构核函数、并且当我们编写主程序时,我们确切地知道工作是如何划分的,然后在后面开发某个特定的类或函数时,我们就能在开始之前确切的知道他们将来做什么。
6、通常很难准确地确定如何将工作划分为类和函数,而且有时候曾经做出的决定必须在以后修改。虽然如此,还是有一些指导原则能有助于决定如何划分一项工作:使用类来模拟程序的基本概念。
7、每个函数应该仅仅完成一项任务,但要很好地完成。也就是说,我们应该能够简洁的描述一个函数的目的。函数本身毫无疑问会包含很多细节,但这些细节应该直到下一阶段的细化时才出现。
8、每个类或函数应该隐藏某些东西。我们编写的类和函数应该实施信息隐藏。
9、保持连接简单。尽可能避免使用全局变量。只要能够避免,切勿引起副作用。如果必须使用全局变量作为输入,则详细地将他们写入文档。
10、将输入和输出作为独立的函数,使得他们易于修改并能定制修改以适应计算系统。
11、测试数据的质量比数量更重要,多次用同样的案例做同样的计算而进行的抽样运行,其测试结果并不比一次运行更加有效。程序测试可用于说明bug的存在,而不能说明其存在。对任何真正复杂的程序,做穷尽测试是不可能的,而测试数据的精心选择可以提供对程序的实质信息。
12、对一个大型且重要的程序,超过一半的工作是在他已经被完全调试、测试并投入使用后,来自于维护阶段。
13、确信你完全地理解了问题。如果必须改变其条件,则确切的解释所做的修改。由于程序测试只能说明错误的存在,而不能说明没有错误,因此我们需要其他的方法来不容置疑的证明程序的正确性。
14、最精心的设计用户接口,程序的成功很大程度上是靠它的吸引力和易用性。
15、除非必要,不要优化代码。在代码完善和正确之前,不要开始优化代码。大多数程序将90%的时间花在10%的指令上,找出这10%,集中精力提高他的效率。在程序开始优化前进行仔细思考的另一个原因是优化经常生成更复杂的代码,这种代码会更难于进行调试和必要的修改。
16、尽你所能保持算法简单。当犹豫不决时,选择简单的方式。
17、有时延缓问题会简化解决方案。
18、在需求说明准确和完善前不要进行编码。
19、匆匆行动,慢慢后悔。匆匆编程,常常调试。如果我们随后发现程序设计中带有缺陷,则可以直接修改它,而不必在未用的低层次函数上付出过高的代价。同样的想法稍微表达的更准确一些就是重新开始经常比给一个旧程序打补丁更简单。
20、总是计划建立原型并丢弃它,不管是否计划都不许这样做。