代码之美:设计的长期效益与Linux内核驱动模型
1. 代码之美的标准
在代码的世界里,美不仅仅是表面的简洁,更体现在多个关键维度上。
1.1 简洁之美
简洁的代码往往具有更高的可读性和可维护性。以SGBSV例程为例,它以快速验证输入参数的一致性开始,然后通过两次调用逻辑上遵循数学算法的操作来解决问题。从第一眼就能清晰看出代码的功能:先使用SGBTRF例程进行LU分解,再使用SGBTRS例程求解系统。这种代码易于阅读,无需花费大量时间研究数百行代码来理解其功能。
代码复用是简洁代码的重要体现。SGBSV例程中的子系统例程在不同的“驱动”例程中被复用,形成了一个分层系统,鼓励代码复用。代码复用显著减少了代码开发、测试和维护所需的工作量,提高了开发人员的生产力,降低了压力。然而,当前很多代码在这方面存在不足。许多代码采用继承结构,本意是使代码更清晰,但实际情况是,开发者花费大量时间也难以理解代码的意图。如果通过命名约定和几行代码无法判断代码的功能,那么代码就过于复杂了。
1.2 节俭之美
美丽的代码会充分考虑计算机的实际限制,如有限的速度、对浮点数或整数的不同处理能力以及有限的内存。以LU分解子例程SGBTRF为例,它首先进行参数验证,然后进行优化检查,根据问题大小决定是在“缓存”数组WORK13和WORK31中解决问题,还是将其发送到更低级别进行更复杂的操作。这种设计充分考虑了计算机的内存限制,对于较小的问题可以避免可能的分页带来的性能损失。
SUBROUTINE SGBTRF( M, N, KL, KU, AB, LDAB, IP
超级会员免费看
订阅专栏 解锁全文

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



