编程中的实用主义:错误处理、资源平衡与断言运用
在编程的世界里,我们时常会遇到各种挑战和潜在的问题。从处理错误到平衡资源,再到运用断言确保程序的正确性,每一个环节都至关重要。
练习题与问题思考
首先,我们来看一些练习题。
练习题14
设计一个厨房搅拌机的接口。这台搅拌机最终会成为基于网络、支持物联网的设备,但目前我们只需要控制它的接口。它有十个速度设置(0 表示关闭),不能空转,且每次只能将速度改变一个单位(例如从 0 到 1,从 1 到 2,而不是从 0 到 2)。需要为以下方法添加适当的前置条件、后置条件和不变量:
int getSpeed() void setSpeed(int x) boolean isFull() void fill() void empty()练习题15
求数列 0, 5, 10, 15, …, 100 中有多少个数,答案是 24。
错误处理的实用主义
在编程过程中,我们常常会遇到各种错误。有时候,其他代码库或框架程序可能会先于我们发现问题。例如,传入了空值、空列表,哈希表中缺少键,或者原本以为是哈希表的值实际上是列表,又或者出现了未捕获的网络错误或文件系统错误,导致数据为空或损坏。
我们很容易陷入“这不可能发生”的思维定式。很多人编写代码时,没有检查文件是否成功关闭,或者跟踪语句是否按预期写入。但我们应该进行防御性编程,确保数据的正确性,检查生产环境中的代码是否与我们预期的一致,以及依赖项的版本是否正确加载。 </