当前位置: 首页 > 知识库问答 >
问题:

与Java IDE的合作

谢哲瀚
2023-03-14

我们需要能够共享查看和编辑的一个Java编码项目,在IntelliJ启动。

我们需要能够从允许某人仅查看一个文件开始,并最终允许他们查看和编辑其他部分。

Intellij似乎并不直接支持这个场景,所以我们测试了在这两个工具中实现这个功能。

Visual Studio Community Edition IDE表示支持版本比较页上的协作,但似乎不支持Java vs_community__1095676677.1612398125.exe blob:https://visualstudio.microsoft.com/bfa14bfc-7573-43d5-81a8-eba84694b332

VSDode IDE支持Java,但不支持协作。vscodeusersetup-x64-1.54.3.exe https://az764295.vo.msecnd.net/stable/2b9aebd5354a3629c3aba0a5f5df49f43d6689f8/vscodeusersetup-x64-1.54.3.exe

非常感谢援助。

共有1个答案

逄皓轩
2023-03-14

有几种方法可以解决这个问题。对于底层想法(我想‘远程’配对程序!--我假设这就是您在这里想要的;可能用‘教练’或‘代码评审’替换‘配对程序’),通常的“kneejerk”反应是设置一个编辑器,使其成为一个服务器/客户机getup,在那里多个人可以连接到‘服务器',并且他们都可以看到同一个编辑器。想想‘谷歌文档',但在一个代码编辑器。

有一些技术可以实现这一点。Eclipse有Saros这样的插件,而intellij有GitLive这样的插件。

不过有个问题。听起来好像协作编辑满足了远程配对编程、远程教练等的需求,但实际上并不是很好地工作。编程所涉及的不仅仅是一个IDE。例如,大量的开发涉及编写web服务,而且IDE通常不包含完整的浏览器,而且肯定不包含基于浏览器的调试工具(右键单击:Inspect元素--这种调试)。协作还涉及到代码审查,并且通常可以方便地让一个团队暂时“分开”--两人一组工作时不再共享一个编辑器,而是各自处理自己的事情。当主管在git Commit中输入一些注释时,没有人喜欢无所事事地盯着屏幕看。

因此,您可能想要考虑人们如何实际编程,以及如何提出一个协作设置,让您在实际协作的同时保持实用,您会得到一个不同的答案:

基于源代码管理的协作,可选的语音/视频通话+全屏共享。

有很多工具可以进行基于源代码管理的协作,特别是基于Git的源代码管理。例如,一种工作流,其中有人进行提交(允许工作的创建者将一个更改捆绑为一个正常的原子单元,这通常不像“对单个文件所做的所有更改”那么简单,并允许他们添加关于他们做了什么和为什么做的注释(可以长到你想要的长度),然后进入审查队列,然后代码审查人员可以自动地将这些更改“拾取”到他们的本地回购副本中,审查它,并提交它,甚至“标记”是否需要另一个周期(其中注释和编辑返回到原始创建者),或者不需要--每个进行审查的人都可以添加签名。然后,CI系统通过拉入收集到足够签名的所有提交,自动更新(并在其上运行测试套件)生产版本。任何未“签核”的提交都不包含在配置项工具中。

我建议您使用这样一个系统,并且在很少的情况下(例如,在直接指导时需要真的按你的类型对编程),只需使用通用的屏幕共享工具--这也解决了当您需要切换到浏览器来进行一些javascript调试时的问题。

这也让您的问题中的“某人”能够最终查看和编辑大量文件,而不依赖于他们的主管,也不依赖于关系的定义:他们只是在自己的磁盘上拥有所有这些文件,通过Git获取。他们可以以他们喜欢的方式编辑任何他们想要的东西,并且在不干扰其他人的工作流程的情况下到处乱搞,有他们不知道如何解决的开放错误:他们将自己的工作捆绑在一个提交中,然后其他人可以在并且只有当他们准备好这样做的时候才接受。

通常情况下,源代码管理完成了“协作编程”所需的90%的工作:如果Jane已经完成了一系列工作,但有一些问题,那么Jane(她当然在自己的分支机构为这次更新工作)可以简单地将其推送到Aki的系统,在那里Aki可以审查更改,在需要时运行它,甚至进行更改--他们将使用一个适合于深入讨论和交换想法和经验的渠道:一个语音甚至视频通话,当他们两个都盯着自己系统中的相关源代码时运行,按照他们喜欢的方式配置。

请注意,试图通过以严格的方式指定系统使用来解决个人偏好的问题(每个人都必须使用这个版本的intellij和这些插件以及这些可视化设置!)不具有很强的包容性:有些人有相互排斥的可访问性需求。

这可能解释了为什么“使用git进行协作,只需共享一个屏幕,并在需要时启动(视频)调用”比“让所有人都在一个基于服务器的IDE,google-docs风格”模型上工作“流行得多。

但是,如果你真的想去试试GitLive。

 类似资料:
  • 我在vue的Symfony下配置merure时遇到了问题。在. env文件中,我将mercureurls更改为使用超文本传输协议,因为它导致我的证书错误(包括在symfony中)。 . env 当我通过在示例中打开symfony应用程序http://localhost:8000并在控制台中添加此脚本进行测试时: 它正在工作,我可以在其他选项卡中发布一些更改。但当我在位于上的vue应用程序中执行相同

  • 问题内容: 我试图理解这些术语的含义。我举了一些例子,例如: 汇总:Facebook 有一个 用户 组成:facebook 中的 每个用户 都有一个 会话。 协会:人们 使用 浏览器 但是我对 具有 和 使用我的 示例感到困惑。为什么不能是用户 使用 Facebook帐户或Facebook 使用 会话来认证用户? 就OOP而言,这是错误的吗?我在哪里想念这个概念? 问题答案: 该 使用 关系意味着

  • 我在读一篇关于OOP中的关系、关联、组合、聚合等的文章。有些事情令人困惑 因此,在PHP中,我们调用以下代码组合 在阅读了几篇关于作文的文章后 以下是组成示例: 因此,根据我的理解,聚合意味着A类的对象可以存在于B类之外,而组合意味着A类生命周期的对象取决于B类。 我正确理解了吗?

  • 我试图找出结合纯EJB web服务处理httpsession的最佳方法。我已经创建了一个实用程序类,我有一个控制器类。在controller类中实例化实用程序类的最佳位置是哪里?计划是每个访问/调用webservice(即第一次使用网站)的用户都应该为他们分配一个httpsession对象: 我已经学习了本教程http://docs.oracle.com/cd/e12839_01/web.1111

  • 本文向大家介绍Java中的集合与集合之间的区别,包括了Java中的集合与集合之间的区别的使用技巧和注意事项,需要的朋友参考一下 Java收集框架用于操纵对象的收集。收集框架包含多个包装器类,便利类,用于传统实现的类,例如vector和Hashtable,收集接口等。     集合是Java集合框架中的接口。它分为两部分- Java util集合-它包含诸如Set,queue,List等的类。 Ja

  • Map和Set都叫做集合,但是他们也有所不同。Set常被用来检查对象中是否存在某个键名,Map集合常被用来获取已存的信息。 Set Set是有序列表,含有相互独立的非重复值。 创建Set 既然我们现在不知道Set长什么样,有什么价值,那么何不创建一个Set集合看看呢? 创建一个Set集合,你可以这样做: let set = new Set(); console.log(set);