程序员必知的高效编程技巧与职业素养
1. 优先使用领域特定类型而非原始类型
1999 年 9 月 23 日,价值 3.276 亿美元的火星气候轨道器在进入火星轨道时失踪,原因是地球上的软件错误,即公制单位混淆。地面站软件使用磅为单位,而航天器期望的是牛顿,导致地面站低估了航天器推进器的功率 4.45 倍。
如果应用更强、更特定于领域的类型,这类软件故障本可以避免。这也是 Ada 语言许多特性背后的原理,Ada 语言的主要设计目标之一是实现嵌入式安全关键软件。它对原始类型和用户定义类型都有强大的静态类型检查,例如:
type Velocity_In_Knots is new Float range 0.0 .. 500.00;
type Distance_In_Nautical_Miles is new Float range 0.0 .. 3000.00;
Velocity: Velocity_In_Knots;
Distance: Distance_In_Nautical_Miles;
Some_Number: Float;
Some_Number:= Distance + Velocity; -- 编译器会捕获此类型错误
即使在要求不那么高的领域,开发者也能从使用领域特定类型中受益。在 Java、C++、Python 等现代语言中,抽象数据类型就是类。使用像 Velocity_In_Knots 和 Distance_In_Nautical_Miles 这样的类对代码质量有诸多提升:
- 代码更易读
超级会员免费看
订阅专栏 解锁全文
1446

被折叠的 条评论
为什么被折叠?



