【Code With SOLO】用 SOLO 8小时完成网盘集成OnlyOffice,达成第一个里程碑

1.摘要

使用TRAE SOLO在完全不了解网盘代码的情况下,解决了集成OnlyOffice的问题,使网盘支持了在线协同编辑功能,完成项目的第一个里程碑。

2.背景

我是一名研发,在一个项目中,要先完成一个在开源网盘中集成OnlyOffice的需求,项目采用的网盘是个开源项目,采用的是前后端分离技术,前端使用react,后端使用的go语言。

我面临的问题是:

1、前端对于react架构不了解

2、后端对go语言属于初学

3、网盘的整体架构、代码都不熟悉

4、项目时间有限,第一步的成败十分关键。

基于上述问题,希望用SOLO提升效率,加快项目进度。

3.实践过程

这个需求任务我拆解成了几个步骤

1、在网盘中新增菜单项,在选中文档,点击菜单项的时候,新弹出浏览器页面,集成OnlyOffice打开选中文档进行编辑

2、处理OnlyOffice的回调函数,对于经过编辑的文档更新保存

3、网盘中新增系统配置项,用于配置OnlyOffice的地址

4、网盘中新增用户的字体设置项,设置的参数会传递给OnlyOffice用于字体选择

接下来我让SOLO先对整个项目做了一个分析,并形成了一份报告,让我对整个网盘项目有了一个初步的认知:

第二步,我让SOLO完成了在文档选中后的菜单中增加了一个菜单项“打开编辑”,点击菜单项后,会弹出一个新的浏览器窗口,调用OnlyOffice打开选中的文档。SOLO在工程中精准定位到要添加代码的位置,并新建了router,以及对应的实现,在没有告知OnlyOffice集成参数的情况下,按照最简原则实现了对OnlyOffice的基本集成

                    (新增的菜单项)

                  (点击后,打开测试文档的效果)

第三步,我让SOLO实现从OnlyOffice下载文档,实现编辑后文档的保存

实现后,当OnlyOffice关闭文档后,调用了网盘的callback,会根据文档状态,调用文档保存的函数。

第四步,网盘中增加OnlyOffice地址的系统配置项及字体的用户配置项,作为调用OnlyOffice的参数使用

实现了配置OnlyOffice和字体的功能

整体完成后,打开文档呈现的效果如下:

到此,整体项目的第一个里程碑顺利达成,然后我让SOLO对整个修改以及达到的效果做了个总结,并形成了文档

4.遇到的问题

1、在打开文档的时候,给OnlyOffice的参数,有一个文件ID,做为网盘的文件标识,在编辑完成后用于文件的更新。这个ID在本身是整型的,在打开文档时,做了编码作为字符串进行了传递,在更新文件的时候,需要解码转回整型,才能找到对应的网盘文件。开始的时候SOLO没有在这进行解码操作,后来,在SOLO的帮助下,不断调试,最终确定了问题所在,完成了文件的更新。

2、在给网盘增加Onlyoffice地址设置的时候,界面功能完成后,无法将用户的输入保存下来,填写完数据,刷新页面数据就会丢失。在SOLO的帮助下,分别对填写、保存、读取过程进行分析,最终发现是在保存阶段,数据库中对于新的字段并不更新,只更新已有字段,造成了数据丢失的结果,SOLO据此对网盘原有代码进行改写,发现新字段时直接新建一个字段,并达到了预期效果。

5.整体效果

在不超过八小时的有限时间内,成功地完成了这项需求,相较于原本计划的五十小时,效率得到了极大的提升;同时,在熟悉原始代码、学习Go语言及React架构的过程中,也节省了大量的时间精力。同时,在文档输出方面也提供了很好的参考,减少了文档输出的时间成本,且项目的整体实施效果达到了预期目标

总之,通过使用SOLO在编码和文档输出的过程中,给我提供了很好的帮助,大大减少了时间成本,同时我也发现,在给SOLO做任务拆解的时候,对于比较通用类的需求,有个大框架就可以达到基本预期,对于一些个性化的问题,指令越详细,越全面准确率越高。

我也是调用onlyoffice时,问题出现下载失败,不知道是什么原因

1 个赞