我正在与招聘人员讨论使用配对编程的机会。
对我来说,有两个高级开发人员在一起工作的担忧,因为我希望我会在另一个工作的同时阅读。
但是,当我与这位招聘人员交谈时,我想到了一种配对编程可能有用的方法,如果有一个编辑器允许两个人同时对同一个文件进行更改,那么,一个人可能正在文件中发表评论,因为其他人正在努力实现该功能。这些注释可能有助于解释设计该功能时的思维模式,如果两个高级开发人员正在研究某些功能,那么它应该是一个足够复杂的问题,需要进一步解释。
我不知道任何允许这样做的编辑器,因为它可能必须是基于网络的,以便同时查看和修改同一个问题。
这样的事情会有用吗?
这样的工具还有什么其他用途我会丢失?
我不在乎讨论配对编程是否是一个好主意,我有自己的看法,但这个概念对我来说非常有趣。
答案 0 :(得分:12)
让2个人同时在同一个文件的不同方面工作似乎完全避免了对编程的全部内容。在结对编程中,据我所知,实际上只有一个人在任何给定时间进行修改。另一个人应该在同一个屏幕上,观察新代码是否有任何错误,提出更好的方法来实现相关代码,并提供第二个想法来反弹意见,以达到更有效的实施。所以不,我认为在这种情况下它不会有用。
答案 1 :(得分:6)
对于喜欢这类事物的人来说,有一个名为SubEthaEdit的有趣编辑器。
它允许您查看谁正在处理文档,以自己的颜色查看编辑区域,跟踪对文件进行更改的人员等等。
(来源:codingmonkeys.de)
答案 2 :(得分:2)
此类协作编辑已经存在 - Gobby是我使用过的,但还有其他一些。
我们上学期使用它来证明我们的报告 - 这是一个很好的工具,但是如果每个人都试图同时编辑同一个地方,可能会有一些混乱。
它会起作用吗?也许。它确实要求他们保持严格的职责划分,以保持对编程有益的优势 - 当只有一个键盘时,执行此操作会更容易一些。讨论实现细节可能有点困难 - 当你有一个白板并可以面对面交谈时,有些事情可以更容易解释。
另一方面,使用协作编辑器可以在不必将两个人聚集在同一个房间的情况下实践。这两个程序员甚至可以坐在世界的不同地方。
答案 3 :(得分:2)
Mozilla创造了BeSpin,如果我记得那就是 https://bespin.mozilla.com/
答案 4 :(得分:2)
我同意Kylotan的最初任何关于同一文件的不同方面的2个人正在避免为什么存在结对编程。我对结对编程的理解是,一起做出选择,并且在一致同意的代码中有一种类型,另一种是作为第二组眼睛来确保它是被理解的。因此,不只是一个人输入他们想要的任何东西,而是在达成协议并获得该协议可以解决某人最初想法中的许多细节,这可能最终成为一个好的解决方案,这要归功于一些反馈。
有时我们在计算机上使用了2个键盘和2个鼠标,但通常只需要一个键盘并轮流输入内容就更容易了。如果我们发现了一些咕噜咕噜的工作,我们可能会分手,所以每个人都要完成必须要完成的部分,这个部分并不困难或棘手,只是无聊而且几乎单调。
答案 5 :(得分:1)
结对编程主要是一个有键盘和鼠标,另一个提供反馈。您可以切换这些角色或将键盘设置为一个,将鼠标指向另一个,但是您将始终必须处理/考虑相同的代码片段才能进行配对编程。
我没有看到这样的编辑如何帮助解决这个问题,但我可以看出它是如何阻碍的。
答案 6 :(得分:1)
此类工具不必基于网络。以下是一些不是:
但实际上,如果人们并置(这是结对编程的最佳配置),我真的没有看到使用这些工具的重点。对于地理位置分散的人来说,他们可能会有所帮助,但它永远不会像坐在旁边那样好。
答案 7 :(得分:1)
您概述的情况我称之为“同步编辑”,而不是Pair Programming。正如其他人所指出的那样,存在很大差异,并且有一些工具旨在允许同时编辑。
答案 8 :(得分:0)
这可能有用,但大多数时候它与配对编程无关(我也很怀疑)。
对于分布式结对编程的情况,它可能有所帮助 - 不是真正编辑同一个文件,而是让一个程序员编辑文件,而其他注释对变化在屏幕上。对于那些进行编程并仍提供实时通信的人来说,这不那么令人不安。
我或多或少谦虚的意见。
答案 9 :(得分:0)
Etherpad是我过去使用的在线协作文本编辑器。根据我的经验,需要协作式文本编辑解决方案的问题很少见。