2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

“完成”宣言

  • 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:022262
用户头像

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

关注

评论

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

千亿级数据量,毫秒级读写,深度剖析探探LSM Tree存储引擎

童子龙

分布式架构 存储引擎

Gartner:生成式AI分析市场正向DataScience Agent进化

AI数据云Relyt

Data 智能数据湖 analytics #数据分析 datascience

DeepSeek风起时,读懂天翼云的国云担当

脑极体

AI

提高TikTok运营效率的七大工具推荐

Ogcloud

TikTok 海外云手机 tiktok运营 TikTok矩阵运营 tiktok运营工具

低代码可视化编辑器,简化范式化流程以及重复性工作

伤感汤姆布利柏

场景题:有40亿个QQ号如何去重?仅1GB内存

卷福同学

Java 面试 社招

VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途

sysin

Workstation

Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性

阿里巴巴云原生

阿里云 微服务 云原生

双良集团与用友达成企业AI战略合作

用友BIP

智能体 数智化 用友BIP 企业AI

10 分钟搞定优惠券营销活动!飞算 JavaAI 教你快速实现增删改查与领券功能

飞算JavaAI开发助手

首创!中国华电“智能+”人才市场信息平台完成部署!

用友BIP

数智化 用友BIP 智能+ 人才市场

VMware ESXi 7.0 U3s 发布下载 - 领先的裸机 Hypervisor

sysin

esxi

VMware ESXi 8.0U3d 发布下载 - 领先的裸机 Hypervisor

sysin

esxi

云原生低代码平台架构演进:某跨国企业DevOps效能提升背后的分层可视化设计模式

不在线第一只蜗牛

云原生 低代码

文献解读-Chromosome-Scale Genome of Masked Palm Civet (Paguma larvata) Shows Genomic Signatures of Its Biological

INSVAST

基因检测 Sentieon 变异检测 生物信息分析服务 分子机制

RH Timer Pro for Mac:精准计时,高效生活

小玖_苹果Mac软件

Log/Trace/Metric 完成 APIServer 可观测覆盖

阿里巴巴云原生

阿里云 云原生

技术大V分享:这个国产开发助手让我从996加班中解放出来

飞算JavaAI开发助手

AI会带给我们一个什么样的未来

葛飞

AI DeepSeek

Multitouch for Mac:让操作更智能、更高效

小玖_苹果Mac软件

你还只会用AI来写Java冒泡排序算法吗?

飞算JavaAI开发助手

Cookie for Mac:你的隐私管理助手

小玖_苹果Mac软件

1688快递费用API 接口(1688API系列指南)

tbapi

1688API 1688快递费用接口 1688运费接口

Gemini AI 升级视频提问和屏幕共享功能;Voice+Visual Agent Demo:语音对话与视觉互动元素结合丨日报

声网

致程序员的一封信:如何持续获得AI编码进阶技术

飞算JavaAI开发助手

无代码工具怎么选?23 款热门工具对比 + 选型指南(2025)

NocoBase

开源 低代码 开发工具 无代码 选择指南

VMware Fusion 13.6.3 发布下载,现在完全免费无论个人还是商业用途

sysin

fusion

04 高效HarmonyOS NEXT编程:ArkTS数据结构优化与属性访问最佳实践

全栈若城

HarmonyOS NEXT

工作流调度必看!2025年这四大核心趋势你不能不懂

白鲸开源

大数据 开源 Apache DolphinScheduler 工作流调度系统

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