V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
monsterooo
V2EX  ›  程序员

一个基于浏览器的编程工具 (Coderlane)

  •  4
     
  •   monsterooo · 2019-11-19 11:08:16 +08:00 · 5693 次点击
    这是一个创建于 1867 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简单介绍

    Coderlane是一款在线编程工具,您可以在浏览器中通过简单的点击 5 秒内创建一个编程语言环境。

    项目初心

    缘起于一个朋友的在线面试体验。面试官给他发了一个牛客网的链接,面试题目很简单:字符串去重并且在对应字符后面跟一个字符重复的数量。给定的时间是 30 分钟,但是我的朋友整整花了 15 分钟才研究明白他们的工具怎么使用。

    最终虽然他完成了面试题目,但是由于时间紧迫算法做的不算优化。最终导致没有得到二面的机会。

    所以我就开始构思做一个更好用的在线编程工具,使用起来无障碍且足够简单。

    第一版(3 月)

    3 月份第一版出来了实现了最最基础的代码执行功能和跑测试用例。原理就是服务器跑一个 docker 去执行客户端的代码,拿到结果后返回给客户端

    虽然基础的功能出来了但是还是有许多不满足的地方,第一个就是界面不够简洁。

    第二版(6 月)

    针对第一版的界面做了新的调整,界面更加美观并且我去掉了测试用例功能。

    第二版虽完成了,但是我并不太满足。主要原因有如下:

    1. 代码同步太 low 没有考虑冲突解决方案
    2. 动态语言没有实现和客户端的 REPl 连接,只能返回结果
    3. 没有音视频沟通功能

    第三版(9 月)

    针对第二版的问题,我进行了功能的完善。解决方案如下:

    1. 使用 Operational Transformation 算法解决多客户端编辑冲突问题
    2. 使用伪终端代理打通 REPL,这样客户端可实时调试
    3. 增加音视频服务功能这个要感谢 Agora 提供的服务
    4. 增加编辑器的代码提示、自动补全、显示文档
    5. 增加在编辑时实时显示用户正在编辑的位置
    6. 增加了代码回放

    我非常希望看到Coderlane作为一个在线编程工具给大家带来更便捷的体验,并且我打算永久免费,直到无法负担运营成本为止。

    最后说一下我的感受:做一个项目不容易,做好更是需要付出很多努力和工作。希望大家多多提意见我们共同来完善Coderlane

    感谢阅读和使用

    46 条回复    2019-11-21 16:39:39 +08:00
    justin2018
        1
    justin2018  
       2019-11-19 11:13:15 +08:00
    楼主 会有补全功能吗~?
    monsterooo
        2
    monsterooo  
    OP
       2019-11-19 11:21:48 +08:00
    @justin2018 目前有补全功能在设置里面有快捷键提示,目前支持的语言较少(browser、chai、jquery、ecma、jquery、react、underscore)。后期会再增加。
    yamedie
        3
    yamedie  
       2019-11-19 11:26:57 +08:00   ❤️ 1
    https://sm.ms/image/oz4OCFpjT1sL2PG

    好像没有对楼主的 docker 造成什么破坏, 但 rm 命令一直在执行着...
    monsterooo
        4
    monsterooo  
    OP
       2019-11-19 11:30:25 +08:00
    @yamedie 🤪Happy Hacker。反正你退出 docker 就释放了
    yamedie
        5
    yamedie  
       2019-11-19 11:35:34 +08:00
    https://i.loli.net/2019/11/19/RpESGJ2MdxkugD8.png

    如果执行一个很大的 for 循环, 会影响其他 docker 的性能吗?
    monsterooo
        6
    monsterooo  
    OP
       2019-11-19 11:38:29 +08:00
    @yamedie 理论上不会影响太多,因为有内存和 cpu 限制
    Vegetable
        7
    Vegetable  
       2019-11-19 11:45:12 +08:00   ❤️ 3
    https://www.v2ex.com/t/612201 这位大哥的 https://www.showmebug.com/ 在做一样的事呢,不过他是当一个创业项目在做,你这个是公益项目啦
    monsterooo
        8
    monsterooo  
    OP
       2019-11-19 11:45:47 +08:00
    @Vegetable 亚飞我认识呀,我们做的事情差不多哈
    monsterooo
        9
    monsterooo  
    OP
       2019-11-19 11:47:05 +08:00
    @Vegetable 不能说公益吧,我是基于兴趣出发。出发点不是为了商业
    strugglexiang
        10
    strugglexiang  
       2019-11-19 11:53:58 +08:00
    挺厉害的,收藏一下
    gaopinsong
        11
    gaopinsong  
       2019-11-19 11:56:53 +08:00
    很 nice 啊。这个功能!膜拜大佬!
    Jhonson
        12
    Jhonson  
       2019-11-19 13:12:55 +08:00
    视频功能怎么用 0 0~
    chennqqi
        13
    chennqqi  
       2019-11-19 13:33:39 +08:00
    虚拟机可以 docker,docker 也可以提权获取宿主机全新啊,去年 docker 就有这个漏洞
    monsterooo
        14
    monsterooo  
    OP
       2019-11-19 13:49:52 +08:00
    @Jhonson 你好,在登录之后进入控制台,创建一个面试邀请。然后进入,在左下角就有视频了
    monsterooo
        15
    monsterooo  
    OP
       2019-11-19 13:51:29 +08:00
    @chennqqi 那个漏洞我还记得,印象是需要触发某些特殊条件才可以提权到宿主机
    Mtianmin
        16
    Mtianmin  
       2019-11-19 13:56:12 +08:00   ❤️ 1
    问题来了.那个小姐姐是谁
    kayv
        17
    kayv  
       2019-11-19 14:04:01 +08:00
    厉害,视频功能用什么技术实现的
    monsterooo
        18
    monsterooo  
    OP
       2019-11-19 14:04:11 +08:00
    @Mtianmin 😏团队成员之一,我们团队一共 4 人。其中包括两只小猫咪
    monsterooo
        19
    monsterooo  
    OP
       2019-11-19 14:05:04 +08:00
    @kayv 视频我使用的是 Agroa 的服务,他们前 10000 分钟免费相对的 nice
    BIAOXYZ
        20
    BIAOXYZ  
       2019-11-19 14:05:08 +08:00
    前排支持,可以开源出来更多人参与进去啊楼主~
    ppyer
        21
    ppyer  
       2019-11-19 14:10:08 +08:00
    支持
    zeropercenthappy
        22
    zeropercenthappy  
       2019-11-19 14:24:52 +08:00
    期待支持 Kotlin
    kisshere
        23
    kisshere  
       2019-11-19 14:25:53 +08:00
    有开源的,用你这个搞啥?

    https://runjs.cn/

    貌似这个 runjs 以前跟你这个项目一样,后来估计做不下去了直接给开源代码了。。。
    lhx2008
        24
    lhx2008  
       2019-11-19 14:26:14 +08:00 via Android
    8g 内存的虚拟机[滑稽]
    monsterooo
        25
    monsterooo  
    OP
       2019-11-19 14:35:35 +08:00
    @zeropercenthappy 这周末肯定能上 Kotlin。哈哈 周末可以回来看看
    monsterooo
        26
    monsterooo  
    OP
       2019-11-19 14:35:57 +08:00
    @lhx2008 😂滑稽 + 1
    monsterooo
        27
    monsterooo  
    OP
       2019-11-19 14:37:17 +08:00
    @kisshere runjs.cn 我以前也是忠实用户,毕竟我也是做前端的。 😏
    monsterooo
        28
    monsterooo  
    OP
       2019-11-19 14:37:51 +08:00
    @kisshere runjs 我以前也是忠实用户,毕竟我也是做前端的。 😏
    crella
        29
    crella  
       2019-11-19 14:45:36 +08:00
    Tianyan
        30
    Tianyan  
       2019-11-19 14:46:13 +08:00
    厉害
    monsterooo
        31
    monsterooo  
    OP
       2019-11-19 14:48:21 +08:00
    @crella 你是最会完的一个 🤪
    Mtianmin
        32
    Mtianmin  
       2019-11-19 15:54:13 +08:00
    @monsterooo 在? 你们要人吗,工不工资的无所谓,主要想做点贡献
    dengshen
        33
    dengshen  
       2019-11-19 16:16:21 +08:00
    感觉很危险的样子... 一些关键命令建议过滤一下
    xiongshengyao
        34
    xiongshengyao  
       2019-11-19 17:39:43 +08:00
    考虑加个运行时间限制吗?不然很容易被人写死循环占用资源
    justyy
        35
    justyy  
       2019-11-19 17:45:20 +08:00
    不错, 不过市面上已经有很多这样的平台工具了。
    f1ren2es
        36
    f1ren2es  
       2019-11-19 18:19:47 +08:00
    资瓷,希望能推广,有的在线笔试不能调试不能运行,几乎与白板写代码无益,蓝瘦
    duanxiaoyu
        37
    duanxiaoyu  
       2019-11-19 18:49:59 +08:00   ❤️ 1
    我推荐:showmebug.com 🤪🤪🤪
    SpiderXiantang
        38
    SpiderXiantang  
       2019-11-19 18:58:07 +08:00
    支持
    jinliming2
        39
    jinliming2  
       2019-11-19 19:08:53 +08:00 via iPhone
    趁着 Native Filesystem API 出来,看看能不能直接打开本地的项目并把代码保存到本地😉
    zoumouse
        40
    zoumouse  
       2019-11-19 19:15:45 +08:00
    支持
    GoLand
        41
    GoLand  
       2019-11-19 19:23:34 +08:00
    小姐姐好看
    monsterooo
        42
    monsterooo  
    OP
       2019-11-19 20:21:57 +08:00
    @duanxiaoyu 😀没问题
    monsterooo
        43
    monsterooo  
    OP
       2019-11-19 20:22:41 +08:00
    @f1ren2es 就是为了解决白板问题,还有远程面试效率问题
    able
        44
    able  
       2019-11-19 20:38:40 +08:00
    很有意思的项目
    standbymeX
        45
    standbymeX  
       2019-11-20 17:45:43 +08:00
    很不错诶,收藏了
    zj
        46
    zj  
       2019-11-21 16:39:39 +08:00
    收藏了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:01 · PVG 03:01 · LAX 11:01 · JFK 14:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.