第一章 程序设计原理 总结

来源:互联网 发布:电商和微商的区别 知乎 编辑:程序博客网 时间:2024/05/22 00:29

1.1 简介

       大型程序的问题:因为程序的规模大,这些程序比用来示范初级程序设计特征复杂的多,用复杂的方法解决解决大型程序问题会出现很多错误,因此我们首先必须采用一种一致的,统一的和逻辑的方法,也必须遵循程序设计的重要原理,这些原理有时候在斌写小程序是会被忽略,但对大型程序来说,忽略它们的错误后果是不可估量的。
    数据结构的选择:即使对非常大的项目,解决问题的困难 不在于未能找到一种解决方案,而是在于有多重选择方案是选择不佳,导致程序设计困难,或者运行效率低。算法中可变性丰富,在于储存数据的办法:
       ~数据如何被安排。
       ~哪些数据板寸到内存中
       ~哪些在需要时被计算
       ~哪些保存在文件中,这些文件呢又如何安排
简介中还简单介绍 了算分析、测试盒检验、程序正确性、维护、以及在C++中数据结构的重要特性。

1.2 life 游戏

    本节通过一个模拟的游戏,类比成单元的一种特定状态为配置,通过具体单元格的状态来说明配置所具有的一些特性: 稳定性、交替性 、多样性、流行性。
解决方案:算法中最核心的问题是Life 的配置。通过C++中类和对象的方法,对成员进行运算,同时也介绍了说明和信息和隐藏的策略。

1.3 程序设计风格 

1.3.1 名称 :为了使程序完善运行,最重要的是确切的知道每个类和变量代表什么,以及每个函数做什么,因此,一般应该包含对类。变量和函数进行解释的文档。我们应该审慎 的选择类、变量和函数的名称,一明确,简介的识别他们的意义。
技术性原则:最慎重的选择类、变量、和函数的名称、并予以详尽的解释。
指导原则:、
1.对于暂时和局部变量,保持名称简单,更便于可读性,便捷。对一些变量适当使用字母和短语,是描述的更形象。
2使用通用的前缀或后缀来关联同一类常规类别的名称。
3避免采用故意的误拼和无意义的后缀来命名不同的名称。
4避免选择那些本身意义与问题毫无关系的或者有些花哨不正是的名称。
5避免选择拼写互相接近或者其他方面易于混淆的名称。
6注意数字与字母中的某些外形相似,导致视觉上无法区分,而带来的问题;如0和O l和1等  不能单独作为名称 。
1.3.2 文档和格式
程序设计的关于文档的 技术规则:保持文档简洁精炼且有描述作用。
1.对文档在每个函数的开始放上序言,包括:
、身份证明。
、使用函数和算法的目的的说明。
、函数所做的修改及其使用的数据。
、对程序外部更多文档的引用。
2当定义每个变量,常量或类时,解释清楚它是什么及如何使用,如果从名称上就能明显看出这些信息则更好。、
3.对每个程序的重要片段,用一句注释简要说明它的目的。
4避免机械模仿代码功能的注释。
5如果某个重要片段结束不明显,则加以指示。
6.对任何使用了技巧或意义不清楚的语句加以解释,最好能避免使用这样的语句。
7.代码本身应解释程序是如何工作的。文档应解释它为什么工作,及做什么。
8无论何时修改一个程序,确认文档得到了相应的修改。
1.3.3细化和模块化
计算机的程序需要对工作进行深度的划分,有顺序有机质的逐层解决问题。
决定划分工作的指导原则:
1使用类来模拟程序的使用概念。
2每个函数应该仅完成一项任务,但要很好的完成。
3每个类或函数应该隐藏某些东西。
4保持连接简单,尽可能避免使用全局变量。
5只要能避免,切勿引起副作用,如果必须使用全局变量作为输入,则详细的将他们写入文档。

1.4 编码、测试和进一步细化

1.4.1占位函数:是每个函数位置上稍微做一些工作,是它执行较小的功能。编写时,必须约束它们的相关参数和返回类型。
1.4.2 类life的定义。设计公有性和私有性
1.4.3对邻居的计数。考虑网格的整体布局

1.4.5输入和输出
程序设计性原则:将输入和输出作为独立的函数,使得它们易于修改并能定制修改以适应计算系统。


1.4.8程序测试原理
 程序设计技术规则:
1 测试数据的质量比数量更重要。
2 程序测设可用于说明漏洞的存在,而不能证明它不存在。
测试方法:至少有三种通用的思想可以选择测试数据:
1黑盒子方法:数据选择所遵循规则
简易值、典型的逼真的值、极值、非法值。
2玻璃盒子方法:该方法包含几个思路,有路径测试、模块测试、比较、接口错误。
3Ticking-Box方法,该方法思路广泛。也有极端性。

1.5 程序维护

对一个大型且重要的程序,在它被 完全调试、测试并投入使用后,有超过一半的工作用于维护它。

  1.5.2复查程序

1确信自己完全了解问题。如果必须改变其条件,则确切的解释所做的修改。

2最精心的设计用户接口,程序的成功很大程度上 是靠它吸引力和易用性的。

3在代码完善和正确之前,不要优化代码。

1.6 软件工程

其中包含需求说明和编码性原则的一些整体性内容,在以后的学习中深入研究。



原创粉丝点击