软件设计与工程
用逐步变化的小程序比较抽象、契约与模块边界,再用测试、重构和持久化检查设计判断。
从这里开始
软件设计导读:怎样形成可检查的判断说明软件设计系列要解决的问题与待办事项主线,再从短小的版本查询练习区分程序行为、设计目的和判断依据。
推荐阅读路线
全部文章可以沿路线选读;需要逐章学习时,进入对应系列的完整目录。
先形成可检查的设计判断
沿着同一个待办程序,观察一层抽象、一个接口和一次模块划分怎样影响修改范围。
- 软件设计导读:怎样形成可检查的判断原创 · 6 分钟
- 抽象的收益与代价:封装何时降低复杂度原创 · 9 分钟
- 接口与契约:两段代码怎样可靠地配合工作原创 · 25 分钟
- 模块边界与信息隐藏:哪些代码应该放在一起原创 · 22 分钟
管理状态、失败与异步工作
明确谁能修改数据,操作失败后留下什么,以及等待怎样影响成功与错误的传递。
- 状态与副作用:谁能修改数据,失败后保留什么原创 · 23 分钟
- 错误传播与异步边界:需要等待时,成功和失败怎样交回来原创 · 22 分钟
用行为检查支持后续演化
从约定推导测试,在重构中保持行为,再把数据保存、重新读取和格式迁移接起来。
- 可测试性:怎样写出能发现问题的检查原创 · 20 分钟
- 重构中的行为保持:换一种实现,怎样确认功能没变原创 · 20 分钟
- 持久化与设计演化:任务保存后,怎样重新读回来原创 · 20 分钟
专题全部文章 30 篇
- 快速优化代码性能:从被动分析到主动优化译文
- 构建响应式网页布局译文
- 我们如何在两周内将 claude.ai 的速度提升至 3 倍译文
- 持久化与设计演化:任务保存后,怎样重新读回来原创
- 错误传播与异步边界:需要等待时,成功和失败怎样交回来原创
- 可测试性:怎样写出能发现问题的检查原创
- 模块边界与信息隐藏:哪些代码应该放在一起原创
- 重构中的行为保持:换一种实现,怎样确认功能没变原创
- 状态与副作用:谁能修改数据,失败后保留什么原创
- 抽象的收益与代价:封装何时降低复杂度原创
- 间接调用与依赖:程序怎样按名称选择要做的事原创
- 接口与契约:两段代码怎样可靠地配合工作原创
- 软件设计导读:怎样形成可检查的判断原创
- 智能体工程模式 01:什么是智能体工程?译文
- 智能体工程模式 02:如今,编写代码的成本已经很低译文
- 智能体工程模式 03:积累你已经掌握的实现方法译文
- 智能体工程模式 04:AI 应该帮助我们写出更好的代码译文
- 智能体工程模式 05:反模式——应该避免的做法译文
- 智能体工程模式 11:让智能体执行手动测试译文
- 智能体工程模式 12:按顺序讲解代码译文
- 智能体工程模式 14:使用 WebAssembly 和 Gifsicle 构建 GIF 优化工具译文
- 智能体工程模式 15:为博客转邮件简报工具添加新的内容类型译文
- 智能体工程模式 16:我使用的提示词译文
- 智能体工程模式·序言:写作计划译文
- 智能体工程模式 07:与编程智能体协作时如何使用 Git译文
- 智能体工程模式 08:子智能体译文
- 智能体工程模式 06:编程智能体如何工作译文
- 智能体工程模式 09:红灯/绿灯测试驱动开发译文
- 智能体工程模式 10:先运行测试译文
- 智能体工程模式 13:交互式讲解译文