[T.2] C4996团队项目:FellowEd

BUAA_C4996 2024-04-03 08:01:11

代码实时协同编辑平台

Need

随机采访

我们在校园中随机进行采访,最终对计算机专业中曾使用过相应代码协同编辑平台的几名同学进行了相关使用采访,下面是整理后的采访总结:

问题受访人A受访人B采访摘要项目需求
代码协同编辑软件在项目开发中的使用体验如何?便于团队协作,但有时遇到冲突处理繁琐实时同步功能强大,但需要更高的网络稳定性代码协同编辑软件支持实时代码同步和团队协作,但在冲突解决和网络需求上存在挑战优化冲突解决机制和提高网络适应性
在代码协同编辑中,哪些功能对您来说最为重要?实时代码同步和版本控制代码审查和注释功能用户重视实时代码同步、版本控制以及代码审查和注释等功能,以提高开发效率和代码质量加强代码审查和注释功能,提升协作效率
您认为代码协同编辑软件中存在哪些改进空间?用户界面有时复杂难用,新手上手困难文档管理和整理功能不够强大用户反映代码协同编辑软件在用户友好性和文档管理方面有待提高,特别是对新手友好性和文档的整理功能简化用户界面设计,增强文档管理功能
代码协同编辑软件在处理大型项目时的性能如何?处理大型文件时响应变慢,影响编辑效率性能下降,加载和同步时间长面对大型项目时,代码协同编辑软件在性能上存在挑战,如响应速度变慢和同步延迟优化性能,提升大型项目的处理能力和响应速度
您希望代码协同编辑软件未来添加哪些新功能或改进?加入更智能的代码提示和补全功能引入代码质量检测和安全扫描功能用户期望代码协同编辑软件未来能够添加更多辅助开发的功能,如智能代码提示、代码质量检测和安全扫描等,以提升开发效率和代码安全性引入先进的辅助开发功能,提高代码质量和安全性

以下是一段采访原文:

Q: 同学您好,我们软工课程需要进行关于代码协同编辑平台的相应调查,请问你曾使用过代码协同编辑平台吗?

A:之前参加冯如杯的时候用过vscode的live share进行协同开发,这应该算是一个代码协同编辑平台。

Q: 好的,那你在使用过程中,有遇到什么软件方面的问题,或者是有什么觉得可以改进的地方吗?

A: 让我想下,live share最大的一个问题就是很容易断开连接,尽管vscode很好用,但是这方面还是有些难以忍受。

Q: 那还有别的吗?

A: 还有的话可能就是 Live share 在我们使用的时候是不支持智能补全的,这有可能是软件配置的问题,我们只好把他当成普通的编辑器来使用。我们一开始其实并不打算使用代码协同编辑平台,因为多人协作加上一个上手困难的软件是很麻烦的。

Q: 好的,除了这些使用不太方便的地方,你觉得还有什么可以改进的吗?

A: 我觉得多人协同编辑最好是能够给代码进行相应的评注,这样不同的人看同一段代码,才能在最短的时间内看懂并且使用。

Q: 好的,谢谢您。

问卷调查

我们总共收集到了154份答卷,以下是部分问题展示:

  • 你有过要和他人共同实时编辑代码的需要吗?

image-20240327220954040

  • 你认为代码协同编辑软件是必要的吗?

image-20240327221124377

  • 你是基于线上还是线下进行代码协同编辑?

image-20240327221205406

  • 在使用git进行协作开发时,你是否遇到过以下问题?

image-20240327221236719

  • 你最希望实时协作IDE/插件提供哪些功能或改进?

image-20240327221313653

  • 在使用其他协作IDE或插件时,您是否遇到过以下问题?

image-20240327221345359

需求调研总结

​ 首先,我们的项目是一款代码多人实时协同编辑平台,这是我们的大方向。我们在经过了随机采访和问卷调查该领域的需求和竞品后得出了如下结果:

  • 线上连接不稳定:我们决定首先推出在局域网中实现代码协同编辑的功能,以此来提高用户连接的稳定性,这在市场中还没有软件做到。
  • 无法进行代码审查,代码注释等功能:不少问卷用户反馈 多人编辑时,有时很难理解为什么别人要这么修改这段代码,在代码改动后注释很难维护和阅读,所以我们决定推出以行为单位的代码注释和审查功能,并且支持注释的追踪。
  • 缺少历史记录和回退机制: 尽管git等代码管理软件能够追踪用户对文件的修改,但是不少用户反馈git的记录往往并不直观,可视化的软件很少,并且回退只能够从一个comment回退到其他comment,我们决定推出以行为单位的用户修改记录和回退功能,这也将是我们软件的一大特色。
  • 跨平台问题与智能补全:由于人力资源有限,我们目前只能做到单一平台,后续可能会开发其他平台,来实现多平台兼容。而对于智能补全功能,我们或许能够利用AI与LSP结合的方式来实现。

Approach

我们决定涉及一款名叫 FellowEd的代码实时多人协同编辑软件,我们将首先以vscode插件的形式进行开发,为用户提供开箱即用的服务。

功能设计

  • 协同编辑与实时同步
    • 利用Socket.IO等实时通信技术实现编辑的即时同步。
    • 通过版本控制机制自动记录每次编辑的详细信息,包括作者、时间和内容差异。
  • 权限管理与内容发布
    • 通过基于角色的访问控制策略,实现精细化权限分配。
    • 设计一个高效的内容发布流程,确保所有用户能够实时接收到最新更改。
  • 历史版本控制与操作回退
    • 维护一个全面的编辑历史记录数据库,方便任何时候查看或回退到之前的版本。
    • 提供直观的界面操作,支持快速内容回退和历史版本比较。
  • 增强的协作工具
    • 文件锁定功能防止编辑冲突,同时显示当前文档的所有活跃编辑者。
    • 代码评论和讨论功能紧密绑定代码版本,保证讨论的持续相关性。
  • 用户识别与安全保护
    • 结合IP地址和账户信息进行用户识别,确保正确的权限分配。
    • 采用加密技术保障数据传输和存储的安全性。

我们将使用vue作为前端框架,TS作为我们的编程语言。

产品形式

​ 如之前所说,我们通过vscode插件的形式进行开发,我们将首先推出我们的基础功能,在经过相应的测试和迭代后,继续完成其他额外功能。

​ 并且我们也会利用AI来为用户提供服务,如智能补全,知识查询分析等功能。

Benefit

  • 为用户提供稳定的服务:根据需求调查,我们的软件将首先基于局域网进行开发,为用户提供了更为稳定的代码编辑服务。
  • 更细粒度的开发流程:我们将会支持以行为单位的代码评注和审查。对于此前的同类软件,如果出现代码变动的话,此前的注释和评论就不能正常工作。我们提供更细力度的代码管理与代码开发,提高多人开发的效率。
  • 重视团队:我们将会支持以团队的视角,重视每一位成员的贡献。所有成员对文件的操作都会被保留,修改记录,用户权限和可回退的功能使得开发变得更简单。
  • 人性化的设计:针对用户使用的特定场景,提供相应人性化功能:如针对当前文件所使用语言的智能补全显示当前文件的编辑用户以及用户编辑所在行

Competitor

我们在市场上选取了几款比较著名的代码协同编辑软件:

  • JetBrains CodewithMe

image-20240328061448888

  • VsCode LiveShare

image-20240328054240426

  • Zed

image-20240328054123372

  • CodeSandBox

image-20240328054001836

下面是具体的内容分析:

软件名称开发商发布日期所支持编程语言实时协作功能功能
Code With Me(插件)JetBrains2015年基本所有语言支持提供了基本代码编辑功能,如语法高亮,智能补全;支持版本控制。
Zed(软件)Zed Industry2019基本所有语言插件支持提供了代码编译与项目管理,Copilot支持,支持实时协作功能和聊天室。
codesandbox(软件)codesandbox2017基本所有语言支持提供在线代码编辑器;支持实时预览和多人协作;支持代码托管。
Vscode Liveshare(插件)microsoft2018基本所有语言支持支持协作编辑;可以使用共享服务器映射本地端口;简单的聊天和注释

相对于上述产品,我们的产品有如下优势:

  • 基于局域网进行协同编辑,提供更为稳定的服务。
  • 更细力度的代码评注和代码审查,包括以行为级别的评论,标记以及任务分配等。
  • 完善的历史记录回放以及恢复机制,为团队开发保驾护航。
  • 更方便的本地文件访问和管理。
  • 人性化的设计,更好地展示来自同伴的代码变更,操作记录。

Delivery

项目前期:我们将会选择一批对本产品感兴趣的潜在用户进行追踪调查。

中期内测:我们将在社交平台和开源社区发布项目内测宣传,并且开放issue和mr。

产品发布: 制定宣传网站,宣传海报,吸引更多对该项目感兴趣的用户群体。

选题意义

代码实时协同编辑平台,不仅在技术上有所突破,在软工课程上同样有着不一般的意义。在课程中,我们可以利用该软件来随时随地进行团队开发,结队编程。不仅为了自己,也是为了软工课程。

软件发布渠道

我们在Alpha阶段将会在软工班级中进行测试服务,在Beta阶段将会将我们的软件推广到开源社区,一步步进行开发。

用户量

预计在Beta版发布后用户量达到400人左右,每日活跃用户60人。

...全文
38 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

70

社区成员

发帖
与我相关
我的任务
社区描述
2024年北航敏捷软件工程
软件工程团队开发结对编程 高校 北京·海淀区
社区管理员
  • clotho67
  • Yeyanhan
  • HJin_Gwok
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧