编程基础
完成条件
概述
程序质量描述了程序源代码和可执行代码的基本属性,包括可靠性、健壮性、可用性、可移植性、可维护性、效率和可读性。
讨论
无论采用何种开发方法,完成的程序应在以下属性中表现良好:
- 可靠性:程序结果正确的频率。这取决于算法的概念正确性,以及编程错误的最小化,例如资源管理中的错误(如缓冲区溢出和竞争条件)和逻辑错误(如除以零或越界错误)。
- 健壮性:程序应对错误(非BUG)的预见能力。这包括处理不正确、不适当或损坏的数据、所需资源(如内存、操作系统服务、网络连接)的不可用、用户错误和意外的电力中断等情况。
- 可用性:程序的人机工程学:用户能多容易地使用程序来完成其预定目的,或在某些情况下,甚至是未预见的目的。此类问题往往决定了程序的成功与否,而不论其他因素。这涉及一系列文本、图形和有时甚至硬件元素,旨在提高程序用户界面的清晰度、直观性、一致性和完整性。
- 可移植性:程序源代码能够在多大范围的计算机硬件和操作系统平台上进行编译/解释并运行。这取决于不同平台提供的编程设施,包括硬件和操作系统资源、硬件和操作系统的预期行为,以及针对源代码语言的特定平台编译器(有时还包括库)的可用性。
- 可维护性:程序被当前或未来的开发者修改的难易程度,以便进行改进或定制,修复BUG和安全漏洞,或将其适应新的环境。初始开发过程中的良好实践对于这一点至关重要。这个属性可能对最终用户来说并不明显,但它能显著影响程序的长期发展。
- 效率/性能:程序消耗的系统资源(处理器时间、内存空间、慢速设备如磁盘、网络带宽,甚至在某种程度上,用户交互的时间)的衡量:越少越好。这还包括资源的精心管理,例如清理临时文件和消除内存泄漏。
- 可读性:人类读者理解源代码的目的、控制流和操作的难易程度。它影响上述质量的各个方面,包括可移植性、可用性和最重要的可维护性。可读性之所以重要,是因为程序员大部分时间是阅读、理解和修改现有的源代码,而不是编写新的源代码。不可读的代码往往会导致BUG、低效和重复的代码。
需要特别注意的是,没有哪个属性比其他属性更重要。最好将这些属性视为一个系统,每个属性都和其他属性同等重要。这些属性共同支持程序,如果其中一个属性较弱或失败,将影响整个程序。
关键术语
- 效率:程序消耗的系统资源的衡量。
- 可维护性:程序被当前或未来开发者修改的难易程度。
- 可移植性:程序源代码能够在多大范围的计算机硬件和操作系统平台上编译/解释并运行。
- 可读性:人类读者理解源代码的目的、控制流和操作的难易程度。
- 可靠性:程序结果正确的频率。
- 健壮性:程序预见到错误问题的能力。
- 可用性:用户使用程序的难易程度。
参考文献
- Wikipedia: 计算机编程
最后修改: 2025年01月10日 星期五 10:06