写点什么

“完成”宣言

  • 2010-03-20
  • 本文字数:1267 字

    阅读完需:约 4 分钟

Alixx Skevington 贴出一篇“完成宣言”以引发讨论,其中谈到团队成员针对各自的工作质量向彼此做出的承诺,并清晰表明了他们对于使用代码交付业务价值的承诺。

他的“完成”条件列表包括:

  • 我会确保我的代码可用。我的代码是为了供他人使用、与他人交互的,我所写的一切都要保证这是令人愉快的过程,而且应该降低工作量,而不是增加。
  • 我会确保我的代码风格服从团队一致同意的风格。未来会是别人,而不是我,来维护和修补我的代码。所以虽然我可以灵活设计并利用任何技术来构建我的解决方案,我还是会遵循标准,以便于其他人将来维护我的代码。
  • 我同意将我的方法保持在合理的大小。大方法难以查看与调试。我会尽量把我的方法保持在合理的大小,以降低复杂度。
  • 我会注释所有的代码。不管是创建新代码还是变更现有代码,我都会写下简明扼要的注释,说明我做了什么。这样其他人在阅读代码时,就能理解我做了什么以及代码试图实现的目的。
  • 我同意对我的代码做单元测试。我同意让这些测试可以重用、足够健壮。我会确保测试说明它测试的对象及其原因。这样其他人在重构或修复 bug 时,不仅可以运行我的测试,还能了解我的代码试图达到的效果。
  • 我同意维护现有代码的单元测试。当我改变或添加现有代码的新功能时,我会确保所有的测试都可以通过,而且新功能也有对应测试。
  • 我同意努力让我的代码的测试覆盖率达到 80%。检查完代码覆盖率,我就可以确保所写的一切代码都有价值,不存在会在未来产生问题的“惊奇代码”。我会努力让覆盖率更高。
  • 我同意正确检查代码的集成状况。当我写完我的代码后,我会和其他开发人员一起检查我的代码,确保与他人的代码可以一起正确工作,交付客户请求的功能。

这个帖子在 LinkedIn 的讨论组中引发了一些评论,人们建议加入更多列表项,比如:

我会加入“我会在签入代码前重新运行单元测试”。原因在于:看起来不相关的代码可能导致另一处的代码及其测试运行失败。这在我上一个工作中多次发生。(来自 David Kramer

再说说单元测试。实际上,我会将其变为“我愿意在编写代码前先编写单元测试”,因为我笃信 TDD。另一点关于测试的是:它们都是生产代码,要以同等态度对待。(来自 Scott Ames

Scott Mcphee 不同意代码注释那一条:

对于代码注释这一条,我坚决持反对意见。注释常常都是谎言,或者不过是引出明显的东西而已(比如: /* 设置 x 等于 y */ x=y;),而且常常增加负担,人们必须要让其与实际代码保持一致。设计清晰、实现清晰的代码不需要“简明扼要的注释说明我做了什么”,从代码就能明显看出它做了什么,而且配置管理提交的注释和代码中的版本差异应该说明写代码的原因。如果做不到的话,就要重构,以做到这一点。API 文档是完全不同的东东,但其主要是给公开方法的用户看的,而不是代码文件的读者,API 文档也是发布交付物的一部分。

Jay Packlick 加入了他认为至关重要的一点:

“完成”最重要的定义是隐含的,但是最值得留意,我愿意把它放在列表的第一条:所有关于“完成”某个功能的验收条件都要以测试表述,而且都要通过。

您愿意对这个列表做出哪些补充或改变?

查看英文原文: A Manifesto of Done

2010-03-20 00:022278
用户头像

发布了 479 篇内容, 共 180.9 次阅读, 收获喜欢 53 次。

关注

评论

发布
暂无评论
发现更多内容

结项报告完整版 | Apache SeaTunnel支持metalake开发

白鲸开源

大数据 开源 开发者 Seatunnel Metalake

故障发现提速 80%,运维成本降 40%:魔方文娱的可观测升级之路

阿里巴巴云原生

阿里云 云原生 可观测

Chromium扩展策略绕过漏洞CVE-2025-12436安全分析

qife122

网络安全 漏洞分析

佳木斯市二级等保测评避坑指南:四大阶段核心注意事项

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

实战干货:Apache DolphinScheduler 参数使用与优化总结

白鲸开源

大数据 开源 参数 Apache DolphinScheduler 任务调度

高效赋能 B2B 贸易:区域化智能订货配送系统全方位解析

微擎应用市场

AI炒股实验大揭秘:金融神手还是神经菜鸟?

EasyLink_ai

人工智能 金融科技 AI投资 AI炒股

速卖通商品列表API文档

Datafox(数据狐)

速卖通API 速卖通数据采集 速卖通数据接口 速卖通商品列表API

企业海外营销的四阶段模型

Wolink

企业出海 海外社媒营销 海外营销推广 品牌出海 海外红人营销

Apache DolphinScheduler 新增 gRPC 任务插件 | 开源之夏成果总结

白鲸开源

大数据 开源 gRPC Apache DolphinScheduler 插件化

不止按钮和表格!TinyVue 偷偷上线 Space 组件,直接搞定「弹性+间距」布局

OpenTiny社区

开源 前端 组件库

什么是MRP?MRP逻辑是怎样的?为何你公司的MRP始终用不起来?

优秀

ERP mrp 物料需求计划

10个值得借鉴的海外营销成功案例与底层逻辑拆解

Wolink

跨境电商 出海 海外社媒营销 海外营销推广 海外红人营销

内容即品牌:如何通过故事进行品牌推广让用户主动传播?

Wolink

跨境电商 品牌营销 海外营销推广 品牌出海 品牌推广

齐齐哈尔市三级等保测评材料指南:核心清单与准备要点

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

什么是端到端测试?

禅道项目管理

测试 自动化测试 测试用例 禅道项目管理软件

预算有限?中小品牌玩转海外红人营销的实战手册

Wolink

跨境电商 出海企业 海外社媒营销 海外营销推广 海外红人营销

如何与海外红人高效沟通与合作进行海外红人营销?

Wolink

跨境电商 海外社媒营销 海外营销推广 海外红人营销

AI 英语口语 APP 开发流程

北京木奇移动技术有限公司

AI教育 软件外包公司 AI口语 AI英语

WordPress Flickr Show插件存储型XSS漏洞分析

qife122

网络安全 WordPress安全

众托帮:用互助力量守护家庭健康

科技汇

海外舆情监测服务:是成本还是战略投资?算清这笔品牌安全账

沃观Wovision

舆情监测 舆情监测系统 海外舆情监测 舆情监测服务

量体裁衣:为行业定制的海外舆情监控服务解决方案

沃观Wovision

舆情监控 海外舆情监控 境外舆情监控

拥抱AI,助力你职业成功 | AI for Scrum Masters课程

ShineScrum

开盖扫码领红包小程序系统:实体商家的营销增长利器

微擎应用市场

大庆市三级等保测评费用指南:区间、构成与优化方案

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

速卖通商品详情API文档

Datafox(数据狐)

速卖通商品数据采集 速卖通API 速卖通数据采集 速卖通商品详情API

IT服务器设备运维实施技术方案

金陵老街

运维 实施

海报积分商城小程序:高效吸粉与礼品兑换的全能解决方案

微擎应用市场

出入门禁管理应用:智能高效的出入口管控解决方案

微擎应用市场

从“实时分账”到“智能问数”:汇付天下以“Data Agent”重塑支付业务决策效率

字节跳动数据平台

“完成”宣言_研发效能_Shane Hastie_InfoQ精选文章