Page 1 of 1

什么是结对编程?礼仪、好处以及如何结对编程

Posted: Tue Dec 03, 2024 10:20 am
by shahriya668
在 Agile 和 XP 软件开发中,结对编程(也称为对等编程)是一种让两名开发人员在同一台计算机上并肩工作的技术。这并不意味着两个人同时尝试使用同一个键盘和鼠标。它意味着两名开发人员在同一台计算机上作为一个团队一起工作。

基本上,一个人在键盘上输入代码(驱动程序)。另一个人专注于编程的方向(导航器)。两位开发人员一起努力解决同一个问题,以便他们使用他们能找到的最佳和最有效的路径实现相同的目标。

结对编程如何进行?
然而,结对编程不仅仅是两名开发人员在同一台计算机上工作。它不只是一个开发人员坐在那里看着另一个开发人员。它的理念是让两位开发人员积极沟通和协作,以开发高质量的软件代码。

驾驶员和领航员
两位开发人员组成一个团队,各自扮演不同的角色,即司机或导航员。司机的工作是亲自输入代码。导航员的工作是通过审查代码、提出问题并在适当的情况下提出建议来支持司机,以帮助您编写更简洁的代码。司机专注于输入代码,导航员则可以专注于接下来的几个步骤和工作的整体方向。

这就是为什么结对编程团队在编写代码时进行沟通很重要。他们每个人都需要知道对方在想什么。这样更容易达成共识,从而找到编写代码的最佳和最有效方法。

四眼原则
你可能听过有人说“我需要另一双眼睛”。这个想法是,如果别人审阅 印度尼西亚电话号码库 你的作品,他们可以帮助你找到你错过的错误。例如,编辑可能会发现作者错过的拼写错误。作者之所以错过这些拼写错误,可能是因为他的大脑“看到”了他想要写的单词或短语。

这基本上就是四眼原则。在结对编程团队中工作时,四眼原则可确保至少有两个人正在审查和批准代码编写活动。最终,您编写的代码将具有更高的质量,并且对客户更有价值。

确定如何继续
接到任务后,您的开发团队需要决定如何进行。他们可能想讨论使用哪些技术、谁来驱动、谁来导航、他们可能面临哪些挑战等等。

不要犯下被困在驾驶员或领航员角色的错误。一定要轮流担任这些角色。这有助于每个开发人员保持头脑清醒和警觉,并帮助他们在工作过程中更容易检查彼此的工作。切换角色没有规定的时间间隔。由开发人员决定轮换频率。只需确保每个团队成员在每个角色上获得相同的时间即可。

结对编程有什么好处?
两个开发人员在同一台计算机上一起工作可以提高工作效率,这听起来似乎有悖常理。他们似乎会互相妨碍。

但是,如果您愿意尝试结对编程,您可能会享受以下一些好处:

更敏捷:结对编程可以使软件开发更加敏捷。两个开发人员一起工作,可以比一个工程师单独工作更容易地调整目标和优先级。

代码质量更好:由于程序员之间不断沟通,他们对自己想要做什么以及想要实现的目标有了更清晰的认识。这种清晰的认识可以降低出错的风险(以及修复错误所需的时间)。

培训和入职:尽早向新员工介绍结对编程可以减少新员工上手所需的时间。将新开发人员与高级开发人员结对可以帮助新员工更快地学习架构、公司标准和所使用的工具。

知识分配:您不想将机构知识仅限制在几名员工身上。如果他们离开,他们会带走这些知识。两人一组的工作方式可以让您将知识传播给其他人,这样更容易填补缺勤或离职员工的空缺。

更快地开发可运行的软件:当开发人员独自工作时遇到问题时,他们可能会在尝试找出解决方案时有一些停顿时间。他们不必暂时离开问题来理清思绪,而是可以与配对伙伴交谈,讨论想法和可能的解决方案。这可以帮助他们更快地重新编写高质量的代码。

增强团队合作:由于开发人员之间不断沟通,有助于建立具有更高化学反应、信任、责任感和主人翁精神的团队文化。更强大的团队活力可以提高员工满意度。
结对编程礼仪
虽然结对编程可以带来回报和益处,但实施起来却充满挑战。有些人可能不太愿意与其他人如此密切地合作。而你的员工可能在单独工作时表现得非常出色。

以下是一些行为或规则,可以帮助你在结对编程工作中取得成功。

确定工作地点:这听起来可能微不足道,但团队在工作时需要感到舒适。一位开发人员可能喜欢站着写代码,而另一位开发人员则喜欢坐着写代码。而且每位程序员都更习惯自己电脑的桌面布局、颜色、字体等。您需要找到一个让双方都感到舒适的物理环境。

保持专注和投入:作为导航员,您需要注意驾驶员的动向,以便提供建议、提出问题并帮助确保项目顺利进行。驾驶员需要克制住检查屏幕上弹出的每一封电子邮件或即时通讯通知的冲动。

大声编程:继续互相交谈并分享您的想法。解释您正在做什么以及为什么要这样做。对队友的建议和评论持开放态度。

Image

引导,而不是指挥:作为引导员,您无法控制司机。避免告诉司机该做什么。没有人喜欢后座司机。在告诉司机该做什么之前,给司机一个提问或寻求帮助的机会。

经常更换编程搭档:编程搭档一起工作几天后,将其中一名团队成员调到另一个团队。这有助于您更快地传播知识,并为团队成员提供相互学习的机会。

清晰明确:如果您提出建议,请确保您的合作伙伴了解您在说什么。解释时要简洁。如果您谈论的是具体代码,请参考行号和文件名。

要有耐心,乐于接受新想法:您可能不会与技能与您相当的人搭档。要有耐心,让他们按照自己的节奏工作。如果您不喜欢您的搭档的工作方式,请给他们的方法一个机会。您可能会学到一些新东西。指出错误或潜在问题时要敏感。
远程结对编程
如今,越来越多的人选择远程工作,公司也采用了混合工作环境。幸运的是,您仍然可以在不在同一物理位置的情况下进行结对编程。为此,您需要一个屏幕共享解决方案,例如 Zoom 或 Microsoft Teams。在深入编辑器之前,拥有一个共享的可视化工作区(如Lucid Visual Collaboration Platform)来绘制复杂的代码结构图以及创建易于理解的文档

也很有用。

这些应用程序不仅能让您看到其他人的计算机,还能控制它们。它们还能让您互相交谈,这样您就可以保持持续的口头交流。所有这些意味着,无论您身在何处,您都可以根据需求轻松切换角色,并协作编写优质代码。