一、文档与代码都是写给人看的
一份放在别处、从不再维护的设计文档,半年后就与代码脱节,比没有文档更危险。临沂物联网应用公司在物联网应用项目中坚持文档即代码:文档放仓库里、随代码一起评审、一起版本管理。改代码忘了改文档,评审时立刻就会被发现。
软件文档是分读者的:需求文档写给产品、开发、测试与客户;设计文档写给后来的开发者与维护者;运维文档写给值班排障的人;用户手册写给最终使用者。不同读者要的东西完全不同,用一份笼统的说明书打发所有人,结果是谁都找不到自己要的信息。
文档最大的敌人是过时。一份项目初期写完、之后再不维护的设计文档,很快与真实代码脱节,反而比没有文档更危险。应对办法是文档即代码:文档放在代码仓库里、用纯文本书写、随代码修改一起评审、一起版本管理。改代码时顺手改文档,评审时自然就会发现文档有没有落后。
二、规范怎么真正落地
规范落地靠的是机制而不是自觉。格式化与静态检查工具接入提交流程,不符合规范的代码根本提交不上去;代码评审清单固定几项检查点,每次合并都过一遍;新成员入职第一天拿到团队规范文档。靠嘴上要求大家注意规范,三个月后就会回到原样。
好的文档要有结构:一句话摘要让人三秒判断要不要读,背景说明为什么做这件事,方案讲核心设计,权衡记录当初为什么这样选。其中权衡一节尤其有价值——半年后有人想推翻这个设计时,先看到当初的理由,就不必把争论重新演一遍。
三、评审清单的作用
术语一致性是文档规范的第一条铁律。同一个概念在文档里一会儿叫用户、一会儿叫客户、一会儿叫会员,读文档的人就会无所适从。团队应当维护一份术语表,核心概念唯一定义,文档、代码、界面用词全部对齐,这是成本最低的规范化动作。
规范需要随团队成熟度演进。三五人的小团队定一本几十页的规范手册,没人会读完;规范应当从最痛的几条开始,例如命名规则、提交信息格式、评审必查项,跑顺了再慢慢补充。规范的生命力在于被执行,而不在于写得多全。
文档与代码同命运,才不会腐化。
对企业来说,选择有规范的开发伙伴同样值得关注。一个交付时连部署手册、接口文档都不齐的团队,后续维护会让企业非常被动;而交付物附带完整文档、代码规范清晰的合作方,企业接手与二次开发都轻松得多。规范水平,本身就是服务商专业度的试金石。
一个项目长期的总成本,不在于第一次把代码写出来,而在于之后无数次有人要读懂它、修改它。代码规范与文档规范就是为这个目的服务的:统一命名、统一格式、统一结构,让任何人拿到陌生代码都能快速看懂,让后来者不必猜测当初的决策理由。它们不是锦上添花的风格问题,而是决定软件寿命与团队效率的工程问题。
备注:文档随代码同仓评审,是保持鲜活的关键。