【问题标题】:Pair programming tools that are not remote配对非远程编程工具
【发布时间】:2010-03-27 05:08:18
【问题描述】:

我目前的工作是在 Windows 机器上练习认真的结对编程。我们都有一组键盘、鼠标和两个显示器,这对于切换谁是驱动程序非常有效,但是在会话中有些点我想在我的配对开始编写测试的同时开始编写测试正在编写实现。

我想知道是否有任何程序可以让我有效地将两个光标和键盘焦点放在同一台计算机上。如果它们不存在,那么我愿意尝试我自己的解决方案,但我想了解如何最好地实现这一点。我最熟悉.Net 3.5技术,但我也懂Java,愿意学习C++来解决这个问题。

如果我自己创建解决方案,我会走上能够获取一个硬件设备(即安装的特定鼠标)输入的道路,并阻止 Windows 移动指针,而是移动我自己的程序指针独立。

【问题讨论】:

  • 听起来你把事情复杂化了。当您不想配对时,为什么不直接为您的鼠标/键盘使用 KVM 切换器并将其中一个显示器/键盘鼠标切换到另一台机器?
  • 这种情况,为了进一步解释,是我们有台式机,并且每周至少切换一次配对,将计算机移到其他开发人员机器旁边是不可行的。跨度>
  • 如果您在同一个系统上,我希望存在最后一个小功能。我希望这不涉及源代码控制。类似于 Google Wave 之类的东西,例如在客户端之间为您编辑的文件进行编辑。我们的签入很少,并且由于持续集成,我们不喜欢提交损坏的代码(由于未完成的重构而经常发生)

标签: c# windows multiple-monitors pair-programming


【解决方案1】:

我曾经做过的事情:

取两张桌子,将它们面对面放置,这样当每个开发人员坐在一张桌子上时,他们都面对另一个开发人员。

每个开发人员都有两台显示器,其中一台连接到其他开发人员的计算机上。

每台计算机都设置为将其屏幕镜像/克隆到另一台显示器。这意味着每个开发人员都面对面,但每个开发人员都可以看到对方在她的计算机上正在做什么。

然后,每个开发人员在她的计算机上安装名为“Synergy2”(http://synergy2.sourceforge.net/) 的免费软件并对其进行配置,以便当开发人员将鼠标光标移过屏幕边缘朝另一台显示器所在的一侧移动时可见,开发者随后可以与其他开发者的界面进行交互。

这样,你们既可以随时看到对方在做什么,也可以根据情况需要从驾驶到骑霰弹枪流畅地移动。

有时这最终会像经典方法一样工作,即一个开发人员总是开车,另一个人总是骑着猎枪,但它至少提供了独立工作和一起工作的机会。

其实我想我会建议在星期一和我现在的同事一起试试这个!

【讨论】:

  • 现在这是我喜欢听到的那种开明的态度。这听起来真的很好,我们已经成功了一半。我真的很喜欢这个想法,即使它不是纯粹的“一台机器”修复,它仍然可以完成我想要做的事情。我认为这个想法也适用于远程团队。
  • 效果很好。我以这种方式与另一位开发人员在前任雇主合作了几个月,我们一起工作得很好。
【解决方案2】:

查看您的 cmets 后,您似乎拥有一台带有多个键盘的计算机,并且希望两个人使用同一台计算机,但输入不同的程序。我编写了一个程序来执行此操作,但它只适用于自定义应用程序。

如果您愿意支付 100 美元左右,您可以尝试几种可能的方案:

以上所有程序都设计用于单台计算机和多台显示器/键盘/鼠标。

顺便说一句,具有多个显示器的单台计算机的术语是多头;具有多个显示器和键盘的单台计算机的术语是multi-seat

【讨论】:

  • 但是多席位给出了错误的想法,因为我不想多次登录(即 BeTwin 和 SoftXpand 提供的内容)我想与其他用户共享同一个桌面。但我会检查你提到的其他程序。谢谢
  • 我只是查看了这些解决方案,但没有一个适合我的情况,尽管它们看起来对扩展资源很有用。
  • 如果您从其中一个工作站运行 VNC,您可以复制另一个工作站的桌面。这就是你想要的吗?
  • 绝对是一个选择。我有点喜欢将其作为一种解决方案,因为它混合了上述其他解决方案,而无需在工作站上安装第二台计算机。
【解决方案3】:

经典的结对编程是 2 个程序员坐在 PC 上,但只有一个程序员编写代码。

【讨论】:

  • 是的,但是让我们自己尝试新事物并发展这个伟大的想法,以便更多的可能来自它。如果您总是为了传统而陷入传统,您将永远不会发现更好的东西。我很想尝试我提出的建议,看看情况是否有所改善。如果不是,那我不在乎,实验很有趣。
  • 无论如何,我不敢相信同时编辑一个文件是个好主意。让我们想象一下,您正在尝试编译源代码,但您的同事编写了一些错误的代码。那你会怎么做?如果您正在处理不同的事情 - 那么我的方法是使用 SCM + 合并。
【解决方案4】:

我使用 VNC,但 RDP 可能也可以工作。我连接到我伙伴的 VNC 服务器,我可以看到他的桌面、在他的屏幕上打字、移动他的光标等。但是,当我想查找 API 或自己进行一些编码时,我可以最小化窗口,将其移动到另一个显示器,或者只是将我的浏览器/编辑器放在它上面。

【讨论】:

    【解决方案5】:

    您可能还想看看MultiMouse

    【讨论】:

      【解决方案6】:

      我不知道你在处理它时是否进行任何测试,但总是有一个廉价的低预算组合的解决方案,你可以只为单个类编写代码,然后将其发送并导入完成后。

      示例情况: 您正在为某事制作表单应用程序,并且希望在其中使用自定义时钟来显示经过的时间。当一个人在主机上(如果需要,有更多的测试能力?)制作表格并为此编写代码,第二个人在一台廉价的计算机上为经过的时钟编写类..所以可以导入然后变量可以由“Namespace.Class.Variable”调用。这将是另一个允许两个人同时工作的选项,如果你们都坐在彼此旁边,因为我假设您仍然可以看到对方在做什么,并且仍然可以在其他人的作品上打字工作的。这可能比两台各有 2 个屏幕的电脑更好;P

      【讨论】:

        猜你喜欢
        • 2010-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-10
        相关资源
        最近更新 更多