结对编程已经存在了 一段时间了。全球范围内远程工作的兴起使得这个概念对开发者来说更加有趣,因为它允许他们无论在哪里都能同时进行编码。然而,许多人仍然认为它就像 "两个人使用一台电脑编码 "一样简单。然而,它并不那么简单,而且好处也不是立即就能看到的。它在中长期内会带来更多优势。例如,结对编程对于合作的团队工作和开发高质量的软件产品至关重要。
什么是结对编程?
结对编程是一种敏捷方法,两个或更多的开发者在一个工作站上共同完成同一任务。结对编程至少需要两个开发人员,我们可以看到那里有两个角色: 驾驶员和 导航员。驱动者是做编码和实施的人。导航员是 在驱动者打字的时候,通过审查每一行代码来寻找语法错误、错误和打字错误的人。
开发人员通过频繁地转换角色来继续工作。结对编程是一种富有成效的、高效的软件开发方式,开发人员可以相互传递他们的知识和经验。领先的公司使用这种方法来提高他们的生产力和代码质量。

来源:reddit
结对编程的好处
结对编程可以对软件开发产生重大影响。有几个强有力的理由可以说明为什么你应该考虑这种方法。
分享知识
每个开发者都有自己的优势和劣势。假设一个是新加入的工程师,他是某个编码堆栈的专家,比如MERN,有三年多的经验。另一个开发人员是在该组织工作的工程师,在产品领域有三年的经验。他知道执行的代码、服务、数据库表结构、调试过程和主要工作流程。
他们可以得到即时的反馈和建议,分享关于软件产品的知识,并通过一起工作的代码与他们的同行分享编程技巧。在这种情况下,结对编程将是他们填补一些潜在的知识空白并直接向对方学习的绝佳方式。分享知识也有利于指导,特别是当其中一个开发者更有经验时。
提高代码的准确性
程序员在编码时常犯错误,如实施死代码、低效代码块、错误、漏洞、语法错误和错字。然而,在结对编程中,另一个开发人员正在看着你,并分享他在最佳编码实践方面的知识,所以代码可能会有更少的错误和漏洞。
提高生产力
通过结对编程获得的最重要的好处是提高生产力。如果由一个程序员来实现一个解决方案,他们有时会在代码中挣扎,所以可能会比预计的时间更长。因此,使用两个开发人员是更有成效的,因为一个人可以监督另一个人,并在挣扎的地方帮助他。
此外,开发人员可以在早期阶段识别潜在的错误和性能问题。因为解决方案是在实施之前而不是在已经实施和部署之后被评估的,所以开发人员可以避免在最后一刻浪费时间来改变代码。
加强关系
结对编程使你能够向你的同事学习并分享经验。让资历较深的开发人员与初级开发人员结对,也可以帮助他们更好地融入团队。在同一个项目上一起工作的时间会加强他们的关系,而一个团结的、有动力的团队永远是成功的关键。

来源。MartinFowler
在VS Code上进行结对编程的4种方法
微软 的Visual Studio Code 是现在最流行的IDE,开发人员可以在VS Code上使用各种工具来执行结对编程。
远程共享工具
一个开发者打开代码,并使用远程共享工具与另一个开发者共享屏幕,如Teamviewer、GitDuck、Anydesk、Codenvy和Microsoft Teams。 然后,开发者可以申请使用其他开发者的桌面并编写代码的权限。
远程共享工具很容易设置。然而,有一些缺点需要牢记。因为两个开发人员不能同时使用同一个桌面进行开发,一个人必须等待另一个人完成他的任务。协作并不像开发者希望的那样无缝和实用。另外,他们可能需要更长的时间来编码,他们必须不断地等待对方。
Visual Studio Live Share
Visual Studio Live Share是另一个工具,你可以用它来进行结对编程,而不需要在你的代码上克隆或安装依赖性。在这里,你创建一个协作会话并与你的伙伴分享。你的伙伴通过提供的邀请链接加入,在他们的代码编辑器中看到你的工作区。然后你的伙伴就可以访问你的代码库。他可以浏览和编辑代码或在代码库中进行任何修改。当你编辑同一个文件时,你可以看到你的伙伴的光标和他正在输入的内容。

来源。VisualStudioLiveShare
你需要从VS代码扩展市场下载Live Share扩展包,以便将Live Share与Visual Studio代码集成。之后,你需要登录。有两个登录选项:用微软或GitHub账户登录。点击底部状态栏中带有人物图标的登录按钮进行登录。登录后,你可以创建一个会话,与他人分享。首先点击底部状态栏中的用户名,从可用选项中选择开始协作会话。
你也可以打开命令调色板(Windows上为CTRL+SHIFT+P,Mac上为CMD+SHIFT+P),然后输入开始协作会话。然后你会得到一个通知,你的邀请链接已经被复制到剪贴板上了。你必须与你的伙伴分享这个链接,并邀请他们参加你的会议。在底部状态栏中点击你的用户名,从加入的角度选择加入协作会议,接受邀请。在提示时输入邀请者发给你的协作会话链接。
这种方法有一定的限制。VS代码实时共享被锁定为5个并发用户,而且只有在两个开发者都使用同一个文本编辑器时才能使用。
结对编程工具
除了上面提到的两个平台之外,还有一些专门为结对编程建立的工具,开发者可以考虑。 结对编程工具提供了许多优势。
- 你可以立即与你的伙伴或团队联系并分享知识,无论你的伙伴在哪里。
- 它们很容易设置,而且大多数工具都支持音频和视频以及聊天。
- 可以轻松地与GitHub、Bitbucket、GitLab集成。
- 大多数结对编程工具要么是开源的,要么是免费提供的。
然而,也有一些缺点。
- 很难加快你的编码速度,以提高开发和交付时间。
- 会有太多的代码审查回合。
- 这些工具中的大多数都局限于特定的文本编辑器。
你可以使用AI辅助编程工具来解决这些问题。让我们在下一节中检查如何使用Tabnine来做。
AI辅助的编程工具
进行配对编程的另一种方法是使用AI辅助编程工具。基于人工智能的工具有助于加快软件开发的速度,同时确保代码的准确性。Tabnine是一个神奇的自动完成工具,可以为开发者带来巨大的价值。它是一个免费的插件,可以索引你的代码并发现统计模式,根据你在IDE上写代码的方式创建定制的指示/建议。

源于此。Tabnine
你可以通过搜索 "Tabnine AI Autocomplete"在VS代码市场上轻松下载它。 除此之外,Tabnine还为你提供以下优势。
- 很容易和安全地将代码库整合到远程仓库,如GitHub、GitLab和bitbucket,并有AI助手访问。
- 允许在不同国家和时区分享知识。
- Tabnine会学习你的代码模式,并在任何时候为每个团队成员提供专家指导。
- 有助于减少代码审查的迭代和努力。
总结
任何开发者的目标都是更快地编写代码,并尽可能地减少错误,这将导致最终获得更高质量的产品。无论他们选择什么样的工具,结对编程和人工智能辅助编程都可以支持开发人员,使他们能够提高工作效率。
The post4 Ways to Perform Pair Programming on VS Codeappeared first onThe Official Tabnine Blog.