7、软件开发中的测试与架构优化

软件开发中的测试与架构优化

1. 测试相关要点

在软件开发中,测试是确保代码质量的重要环节。过度使用模拟对象(mocks)的测试会被大量的设置代码所淹没,从而掩盖了我们真正关心的测试故事。Steve Freeman 在其“Test - Driven Development”演讲中给出了过度使用模拟对象测试的例子。同时,Ed Jung 的“Mocking and Patching Pitfalls”演讲以及 Brandon Rhodes 的“Hoisting Your I/O”演讲也值得一看,它们都涉及到了测试及相关替代方案等内容。

我们应该尽量用单元测试来替代端到端(E2E)测试,但这并不意味着完全不使用 E2E 测试。理想的测试结构是有尽可能多的单元测试,同时使用最少数量的 E2E 测试来保证我们对代码的信心。

此外,在简化业务逻辑和复杂 I/O 之间的接口时,有助于让系统更易于测试和维护。以下是一些寻找合适抽象的启发式问题:
- 能否选择一个熟悉的 Python 数据结构来表示复杂系统的状态,并设想一个能返回该状态的单一函数?
- 如何在系统之间划分界限,以便插入抽象层?
- 怎样合理地将系统划分为具有不同职责的组件,哪些隐含概念可以明确化?
- 系统的依赖项有哪些,核心业务逻辑是什么?

2. 项目实战:Flask API 与服务层

我们以一个分配项目为例,来详细介绍如何构建和优化系统。

2.1 项目计划

为了将应用与现实世界连接起来,我们制定了以下计划:
1. 使用 Flask 在分配领域服务前设置一个 API 端点,连接数据库会话和存储库,并使用端到端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值