《代码大全2》观后感(二):需求分析——代码质量的“源头防线”
“为什么明明按需求写的代码,最后还是要推翻重写?”这是我过去常有的困惑,直到读了《代码大全2》中“需求分析”的章节,才找到答案:很多时候,我们不是“没按需求写”,而是“从一开始就理解错了需求”。书中用“盖房子先画图纸”作类比,说“模糊的需求就像没有图纸的房子,再精湛的施工也会造出危房”,这句话让我瞬间想起自己踩过的坑。
去年我参与开发一个校园社团管理APP,其中有个“活动报名”功能,需求文档里只写了“支持用户报名活动”。我当时没多想,直接设计了“选择活动-填写姓名-提交”的流程,代码写完测试时才发现,社团负责人需要“审核报名名单”,普通用户需要“查看报名状态”,而这些细节全被我忽略了。最后不得不重构数据库表结构,修改核心逻辑,原本计划3天完成的功能,硬生生拖了一周。这正应了书中的观点:“需求的漏洞,最终都会变成代码的bug”。
书中提出的“需求可视化”方法,让我后来的开发少走了很多弯路。比如用流程图画出用户操作步骤,用表格列出“正常场景”和“异常场景”(比如报名人数满了怎么办、用户重复报名怎么办),再和产品经理、用户代表逐一确认。有一次做“图书借阅”功能,我通过流程图发现“逾期还书扣费”的规则没明确——是按天扣还是按次扣?扣费上限是多少?提前确认这些问题后,代码一次通过测试,没有返工。我才意识到,需求分析不是“被动接收”,而是“主动澄清”,它像一道“源头防线”,把问题拦在编码之前,比事后修改要高效得多。