正确编写软件与机器学习代码的实践指南
1. 测试驱动开发(TDD)与软件编写
测试驱动开发(TDD)的理念简单直观:先编写测试来记录期望达成的目标,确保测试一开始是失败的,接着编写代码修复测试,待测试通过后,再依据 SOLID 准则优化代码。尽管有人认为这会延长开发周期,但它能显著减少代码中的缺陷,提升代码在生产环境中的稳定性。
以飞机飞行为例,飞机对故障的容忍度极低。飞行员在驾驶波音 787 前,会在飞行模拟器中花费大量时间了解和测试对飞机的操作知识。飞机起飞前会进行测试,飞行过程中也会持续测试。现代软件开发亦是如此,在部署代码前通过编写测试来检验对知识的掌握,部署后通过监控进行验证。
然而,单纯编写测试并不足以保证代码质量。盲目遵循 TDD 和 SOLID 原则可能会导致代码变得复杂。例如,将每一段代码都提取到不同的类中,或者编写只为了可测试而不可读的代码。这时,就需要引入重构这一关键环节。
2. 重构与技术债务
重构是一种难以向非程序员解释的编程实践,因为它涉及到代码底层的结构优化。就像乘坐飞机时,我们看到的只是飞机飞行所需元素的 20%,飞机内部有复杂的电气系统、管道和坚固的桁架等。软件重构也是如此,它对现有代码结构进行优化,就像清理杂乱的断路器,让代码结构清晰易懂。
软件与飞机不同,其变化迅速。许多公司会持续将软件部署到生产环境,这可能会导致技术债务的积累。技术债务,也称为设计债务或代码债务,是软件项目随着时间推移而出现的系统设计不佳的隐喻。技术债务会产生“利息”,最终阻碍未来的功能开发。
技术债务通常源于未编写测试或未遵循 SOLID 原则。虽然在某些情况下,为了业务扩展提前推出项目是
超级会员免费看
订阅专栏 解锁全文
4270

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



