V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moment082
V2EX  ›  程序员

一个月的时间,我们对开源的在线代码编辑器完成了一次大重构 🤗🤗🤗

  •  2
     
  •   moment082 · 107 天前 · 3037 次点击
    这是一个创建于 107 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在这个月月初的时候,我开始重新维护这个在线代码编辑器,和之前的不同的是,这次我是直接切换了一个分支来直接写,目前已经基本完成了第一版,这次所采用的技术栈主要有以下这些:

    1. 前端框架:NextJs

    2. 语言:Typescript

    3. 状态管理:Zustand

    4. css 方案:tailwindcss

    5. 代码编译方案:WebContainer

    考虑到使用这些技术的主要原因有两个方面,首先 NextJs 是 SEO 比较好,文件式的路由,不再像编写 react-router-dom 那些配置了,开箱即用。

    第二个方面,因为本人也有过两段 Remote 的经验,这些技术基本都是首选的方案,所以......也希望能给社区上一些想学习这些技术的同学提供一些 demo 来参考吧!

    image.png

    项目地址

    在线预览地址

    功能介绍

    接下来先来介绍一下我们现在所实现的一些功能把:

    image.png

    添加了流星动画效果,后续会添加更多好看的元素在首页,目前只是一个初版,还没有写完的(虽然是抄的,但是效果还是挺帅的)

    点击 Get Started 之后我们就可以进入到 dashboard 页面了:

    image.png

    在这里你可以选择一些我们已经提供好的模板进行编辑,也可以点击创建项目的按钮选择本地的代码进行开发:

    20240731210932

    点击之后就可以选择本地的文件了,然后选择就可以进入到编辑页面了:

    20240731211049

    进入到这个页面之后,需要等待一会,因为启动 WebContainer 需要一段时间,当这里出现文字的时候我们就可以启动终端了:

    20240731211326

    在这里,你也可以像是在 vscdoe 上面一样可以执行一些 NodeJs 的命令,如下,我们在终端里执行了 pnpm i 来安装依赖包。

    image.png

    你可以像是在 vscdoe 一样编写代码了,它可以拥有 vscode 上一些基本的功能,并且当你代码发生改变的时候它也可以实现热重载。

    剩下的就是一些基本操作了,看你们的操作了:

    20240731211706

    本来是想把 github 的一些操作也做了的,奈何跟 github 交互太慢了,提交一个文件或者从 github 里拉取一个文件都太慢了,就暂时没有去实现了。

    接下来我们要做什么功能

    接下来最重要的两个功能,一个是协同编辑,另外一个是支持多语言编译。协同编辑的话这边后端正在实现 ing ,并且在支持协同编辑的同时还会支持多人视频会议的功能,来支持远程面试,可以实现多人编写同一个文件等等。这个预计会在月中完成。

    这里采用的技术栈是有挺多的:

    1. WebRtc

    2. Socket

    3. NestJs

    这些技术都是目前比较火的,还有的话也会实现 AI 的功能,并且结合端侧大模型实现离线问答的功能。

    然后还有一个特别亮点的项目,我们社区目前有一位大佬正在做 Webassembly ,也就是说,在后面的版本当中,不仅仅是能在浏览器上执行 NodeJs 代码了,还可以在浏览器上面执行 CC++ 等后端代码,并且也会像 WebContainer 那样做一个开源包出来提供社区直接使用,这些是目前已经实现好了的功能,就差和前端这边交互了:

    20240731212228

    目前是不需要和任何后端交互的,是直接就能够在浏览器上执行一些 C++ 的代码的。

    如果是作为应届生的话,拿这个项目作为简历上的项目应该是非常不错的。而且这里采用的技术都是比较新的,作为学习项目应该能学到一点东西的。

    最后

    最后特别感谢所有参与贡献的朋友,真的是提交的代码比我都多:

    20240731212822

    如果你想参与进来开发或者想进群学习,可以添加我微信 yunmz777,后面还会有很多需求,等这个项目完成之后还会有很多新的并且很有趣的开源项目等着你。

    如果该项目对你有帮助或者对这个项目感兴趣,欢迎 Star⭐️⭐️⭐️

    最后再来提一些这两个开源项目,它们都是我们目前正在维护的开源项目:

    还有一个特别的项目,是闭源的,有可能赚到钱,目前是缺一个 java 或者 go 的后端,可能对技术要求高点,如果感兴趣的话也可以联系我 🐒🐒🐒

    12 条回复    2024-08-01 11:06:12 +08:00
    kele999
        1
    kele999  
       107 天前
    图片看不到
    moment082
        2
    moment082  
    OP
       107 天前
    @kele999 我这边是能看到的,方便截图看看嘛,或者去另外一个帖子上看吧 https://juejin.cn/post/7397622646630514697
    vfs
        3
    vfs  
       107 天前
    所有图片都显示不出来+1
    nzbin
        4
    nzbin  
       107 天前   ❤️ 1
    leinad59
        5
    leinad59  
       107 天前
    这些图 url 里带个 private ,打开 403 ,你可以试试无痕模式访问这个帖子。
    moment082
        8
    moment082  
    OP
       107 天前
    moment082
        9
    moment082  
    OP
       107 天前
    moment082
        10
    moment082  
    OP
       107 天前
    不好意思没发现这个问题,图片丢了的可以在这个链接上查看 https://juejin.cn/post/7397622646630514697
    matrix1010
        11
    matrix1010  
       107 天前
    不是哥们,你这又开源又大重构的,顺手加点儿单元测试吧. 建议参考一下你自己的 CONTRIBUTING.md 里面 4. Development Guidelines 这一条
    moment082
        12
    moment082  
    OP
       107 天前
    @matrix1010 后面再加吧,目前还是比较 care 功能实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2006 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:48 · PVG 08:48 · LAX 16:48 · JFK 19:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.