Robots vs. Programmers

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

发布ChatGPT 3.5后,对我们程序员来说一切都发生了变化。尽管我们大多数人(包括我自己)不理解它的工作原理,但我们中的一些人使用它的频率超过了Stack Overflow、Google和IDE内置功能。我相信这只是个开始。虽然只有Microsoft知道接下来会发生什么,我也试着做出一个谦虚的预测。下面,我列出了我认为未来机器人(搭载生成式人工智能)将会做的事情。未来越远,排名越低。我试着不重复GitHubNext已经说过的内容。

报告错误。他们将浏览代码库,分析代码,甚至尝试运行一些测试,然后在问题明显时提交错误报告。当他们发现难以理解、文档不完整、没有自动化测试覆盖或存在安全漏洞的代码时,他们也会提交错误报告。此外,他们还会报告代码未遵循规范或最佳实践的情况。他们会写得非常好,并提供许多技术细节和补充链接,以至于程序员们更喜欢来自机器人的报告而不是来自人类的报告。

审核拉取请求。他们将审查提交到代码库的拉取请求(无论是人还是机器人),并通过在特定代码行上发表评论来对其进行审查,无论是批评代码质量还是提出更好的替代方案。他们会跟踪之前提出的建议,并在必要时坚持。最终,拉取请求的作者甚至不会知道是谁在审核他们的请求:是人还是机器人。

重构。从众多众所周知的微重构中,他们将选择当前最重要的几个,并提交包含这些更改的拉取请求。他们不会改变代码的功能或进行大规模修改。相反,他们将通过小的增量改进代码质量,使我们人类能够轻松地合并他们建议的更改。他们不会改变太多,所以我们不会感觉被机器人管理,但事实上我们确实会。在慢慢而渐进地改进代码库的过程中,使其更易读、易维护,更容易被其他机器人理解。

排队优先级。他们将根据历史数据、当前团队速度和其他相关指标,将任务和工单按照适当的里程碑进行排序,确定哪些更重要。他们会决定首先修复哪个错误和哪个功能请求比其他请求更重要。他们将创建一个与短期目标和长期目标都相符的优先级排队,以此来排列工作。

完善错误报告。他们将检查已经报告的错误,并对其进行完善,提供补充信息,解释与错误相关的代码,并建议可能复现错误的代码片段。他们会做大多数程序员懒得做的工作:正确解释错误,以帮助修复这些错误。

文档源代码。他们将找到代码中难以理解的地方,例如复杂的函数、大型类和大型数据结构。他们将生成文档块,然后提交拉取请求。人们将很乐意接受这些请求,因为为别人的代码编写文档是工作中枯燥乏味的部分。此外,将文档与源代码保持同步是我们人类疏忽最明显的领域之一。

修复错误。根据他们已经看到的代码和问题报告中的错误列表,他们将生成一些修复并将其作为新的拉取请求提交。他们将解释修复的内容,为什么以这种或那种方式进行改进,修复的重要性如何,还会提出可能的替代方案。我们只需将它们合并。

规范化需求。他们将检查代码库和我们讨论代码的评论,然后推导出我们实现的需求的正式定义。然后,他们将使用用例图、需求矩阵,甚至是类似README或Wiki这样的非正式文本文档来形成需求。他们将在整个代码库的生命周期中始终更新这些文档,而这正是我们人类经常偷懒不做的事情。

入职指导:他们将协助新开发人员的入职过程,引导他们了解代码库、解释架构决策,并提供个性化教程。他们还将通过提供交互式指导来帮助我们理解某些代码块。

分析技术债务。他们可以分析代码库,确定技术债务积累的区域,并提出在问题变得严重之前缓解技术债务的步骤。他们将提交工单,标识出最大的债务领域并提出改进建议。

清理文档。他们将重新格式化我们人类为类和方法编写的文档块,然后提交拉取请求进行更改。正确格式化文档,使用HTML、Markdown、Doxia和许多其他格式,是我们人类不擅长的乏味工作。

建议新功能。他们将检查已经实现的功能,并提出额外的功能建议,提交工单。他们将解释这些新功能请求背后的原因,找到适当的理由,并提供用户如何与新功能交互的示例。

文档架构。他们将观察代码库,然后更新有关实现的架构文档。这是程序员通常会忘记做,或者根本不知道如何做正确的事情。机器人将使用UML或者可能不太正式的工具来记录架构,从而使整个产品更易于维护。

评估。他们将观察每个程序员的活动,并评估他们的工作效率。结果将直接发布到GitHub工单,或者通过电子邮件发送给项目经理。最终,他们将决定我们中的哪些人对他们的项目更有价值。

我感谢ChatGPT帮助我建立这个列表。

你认为我们漏掉了什么?

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-16 at 15:50

sixnines availability badge   GitHub stars