编程的原则

                                                     编程的原则

     阅读了《数据结构与程序设计---c++语言描述》这本教材的第一章,觉得受益匪浅,虽然里面有好多不认识的单词,而且好多专业名称还不是很熟悉,查找了一下翻译,基本知道了文章的意思,以下是我的总结,望批评和改正。

 

一.编写的每个程序、函数和方法要包含准确的前置条件和后置条件。

程序说明的第三部分是它所使用的类和函数的列表,每个程序、函数或方法都应包含一个类似的列表。

二.最审慎地选择类、变量和函数的名称,并予以详尽的解释。

C++在这条技术规则的实施方面有相当的发展,它要求变量声明,而且给予我们几乎无限制的自由来标识名称。在不同的地方使用的常量应赋予名称,不同的数据类型也应如此,所以编译器能够捕获那些本来难以发现的错误。

我们会发现类型和类C++程序中起着根本的作用,并且特别重要的是,他们应该被突出呈现给程序的阅读者。因此我们采用一种大写约定,这一点在life程序中应用:我们对任何类型或程序设计员定义的类型标示符的起始字母使用大写。相反,对函数、变量或常量的标识符则使用小写字母。

名称的审慎选择在阐明程序和避免打印与常见错误方面大有帮助,指导原则如下:

1.特别审慎地选择在程序的不同部分中使用的类、函数、常量和所有全局变量的名称。这些名称应该是有意义的,并且应该能够明确地指示这个类、函数、变量等的目的。

2.对仅是暂时、局部使用的变量,保持其名称简单。数学家通常使用单个字母代表一个变量,因此有时候当我们编写数学程序时,有可能对数学变量使用单个字母的名称。然而,即使是对控制for循环的变量,也经常有可能找到一个个比较短但却有意义的单词,他能更好的描述此变量的用途。

3.使用通用的前缀或后缀来关联同一常规类别的名称。

4.避免采用故意的误拼和无意义的后缀来获得不同的名称。

5.避免选择那些本身意义与问题毫无关系或只有很少关系的漂亮的名称。

6.避免选择拼写互相接近或者其他方面易于混淆的名称。

7.应小心使用字母“l”、“o”和0。在词或数中,通常可以根据上下文区分出它们而不会带来问题,但“l”和“O”绝不应被单独用作名称。

三.保持文档简练但具有描述作用。

文档的风格同所有的书写风格一样,是高度个人化的,许多不同的风格都证明是有效的。尽管如此,还是遵守一些普通接受的指导原则:

1.      在每个函数的开始处放上序言,包括:

(1)    身份证明(程序设计院的名称、日期和版本号)。

(2)    所有函数和算法的目的的说明。

(3)    函数所做的修改及其所使用的数据。

(4)    对程序外部更多文档的引用。

2.      当定义每个变量、常量或类时,解释清楚它是什么及如何使用。如果从名称上就能明显看出这些信息则更好。

3.      对程序的每个重要的片段(段落或函数),用一句注释简要说明他的目的和动作。

4.      如果每个重要片段的结束不明显,则加以指示。

5.      避免机械模仿代码功能的

6.      对任何使用了技巧或意义不清楚的语句加以解释,如果能避免使用这样的语句则更好。

7.      代码本身应解释程序是如何工作的。文档应解释它为什么工作及它做什么。

8.      无论何时修改一个程序,确信文档得到了相应的修改。

四.阅读程序的时间比编写程序的时间多得多。使阅读更容易。

1.      程序中的空格、空白行和缩排是一种重要的文档形式。它们使程序易于阅读,使我们能一眼看出程序的哪些部分彼此相关、哪里出现了主要中断以及每个循环中或者条件语句的每个选择分支当中分别包含哪些语句。有许多系统(有些是自动的)可用于缩排和调整空格,它们的目的都是为了更容易地确定程序的结构。

2.      Prettyprinter是一个系统实用程序,它读入一个C++程序,在行间移动文本并调整空行,以此改进程序的外观并使其结构更清晰。如果在你的系统中有Prettyprinter的话,你可以用它做实验,看看它是否有助于改进程序的外观。

3.      由于程序的良好格式的重要性,需要为空格和缩排设置一些合理的规则并在所书写的所有程序中一致地使用这些规则。如果要使格式化系统在阅读程序中有用,则一致性是必要的。

五.不要只见树木不见森林。

这条原理称为自顶向下的细化,是编写能运行的大型程序的真正关键。这一原理隐含着着详细的考虑可以延迟,但精确性和严格并不能延迟。

六.使用类来模拟程序的基本概念。

七.每个函数应该仅仅完成一项任务,但要很好地完成。

也就是说,我们应该能够简洁的描述一个函数的目的。

八.每个类或函数应该隐藏某些东西。

九.保持连接简单。尽可能避免使用全局变量。

十.只要能够避免,切勿引起副作用。如果必须使用全局变量作为输入,则详细地将它们写入文档。

十一.    将输入和输出作为独立的函数,使得它们易于修改并能定制修改以适应计算系统。

十二.    测试数据的质量比数量更重要。

十三.    程序测试可用于说明bug的存在,而不能说明不存在。

十四.    对一个大型且重要的程序,超过一半的工作是在它已被完全调试、测试并投入使用后,来自于维护阶段。

十五.    确信你完全地理解了问题。如果必须改变其条件,则确切地解释所做的修改。

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

十七.    除非必要,不要优化代码。大多数程序将90%的时间花在10%的指令上,找出这10%,集中精力提高它的效率。

十八.    尽你所能保持算法简单。当犹豫不决时,选择简单的方式。

十九.    有时延缓问题会简化解决方案。

二十.    重新开始经常比给一个旧程序打补丁更简单。

二十一.          总是计划建设原型丢弃它,不管是否计划都必须这样做。

 

 

 

 

已经博主授权,源码转载自 https://pan.quark.cn/s/053f1da40351 在计算机科学领域,MIPS(Microprocessor without Interlocked Pipeline Stages)被视作一种精简指令集计算机(RISC)的架构,其应用广泛存在于教学实践和嵌入式系统设计中。 本篇内容将深入阐释MIPS汇编语言中涉及数组处理的核心概念与实用操作技巧。 数组作为一种常见的数据结构,在编程中能够以有序化的形式储存及访问具有相同类型的数据元素集合。 在MIPS汇编语言环境下,数组通常借助内存地址与索引进行操作。 以下列举了运用MIPS汇编处理数组的关键要素:1. **数据存储**: - MIPS汇编架构采用32位地址系统,从而能够访问高达4GB的内存容量。 - 数组元素一般以连续方式存放在内存之中,且每个元素占据固定大小的字节空间。 例如,针对32位的整型数组,其每个元素将占用4字节的存储空间。 - 数组首元素的地址被称为基地址,而数组任一元素的地址可通过基地址加上元素索引乘以元素尺寸的方式计算得出。 2. **寄存器运用**: - MIPS汇编系统配备了32个通用寄存器,包括$zero, $t0, $s0等。 其中,$zero寄存器通常用于表示恒定的零值,$t0-$t9寄存器用于暂存临时数据,而$s0-$s7寄存器则用于保存子程序的静态变量或参数。 - 在数组处理过程中,基地址常被保存在$s0或$s1寄存器内,索引则存储在$t0或$t1寄存器中,运算结果通常保存在$v0或$v1寄存器。 3. **数组操作指令**: - **Load/Store指令**:这些指令用于在内存与寄存器之间进行数据传输,例如`lw`指令用于加载32位数据至寄存器,`sw`指令...
根据原作 https://pan.quark.cn/s/cb681ec34bd2 的源码改编 基于Python编程语言完成的飞机大战项目,作为一项期末学习任务,主要呈现了游戏开发的基本概念和技术方法。 该项目整体构成约500行代码,涵盖了游戏的核心运作机制、图形用户界面以及用户互动等关键构成部分。 该项目配套提供了完整的源代码文件、相关技术文档、项目介绍演示文稿以及运行效果展示视频,为学习者构建了一个实用的参考范例,有助于加深对Python在游戏开发领域实际应用的认识。 我们进一步研究Python编程技术在游戏开发中的具体运用。 Python作为一门高级编程语言,因其语法结构清晰易懂和拥有丰富的库函数支持,在开发者群体中获得了广泛的认可和使用。 在游戏开发过程中,Python经常与Pygame库协同工作,Pygame是Python语言下的一款开源工具包,它提供了构建2D游戏所需的基础功能模块,包括窗口系统管理、事件响应机制、图形渲染处理、音频播放控制等。 在"飞机大战"这一具体游戏实例中,开发者可能运用了以下核心知识点:1. **Pygame基础操作**:掌握如何初始化Pygame环境,设定窗口显示尺寸,加载图像和音频资源,以及如何启动和结束游戏的主循环流程。 2. **面向对象编程**:游戏中的飞机、子弹、敌人等游戏元素通常通过类的设计来实现,利用实例化机制来生成具体的游戏对象。 每个类都定义了自身的属性(例如位置坐标、移动速度、生命值状态)和方法(比如移动行为、碰撞响应、状态更新)。 3. **事件响应机制**:Pygame能够捕获键盘输入和鼠标操作事件,使得玩家可以通过按键指令来控制飞机的移动和射击行为。 游戏会根据这些事件的发生来实时更新游戏场景状态。 4. **图形显示与刷新**:...
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值