《实现轻协同IDE的技术选型经验_李亚飞.pdf》由会员分享,可在线阅读,更多相关《实现轻协同IDE的技术选型经验_李亚飞.pdf(27页珍藏版)》请在三个皮匠报告上搜索。
1、实现轻协同IDE的技术选型经验李亚飞个人介绍李亚飞,ShowMeBug CEO兼首席架构师连续创业者,14年开始创业,9年创业经验2009年毕业于吉林大学计算机系Ruby 社区核心贡献者,RubyConf China 三届讲师前深信服资深架构师,自动化产品线主管&技术负责人2015年,通过个人 Github 获得某前沿科技公司前端架构师职位2021年科创中国深圳企业家 U30 上榜成员ShowMeBug 连续获得奇绩、盈动、变量、真格、红杉、高瓴六家近亿元融资分享内容轻协同IDE引擎的开发动机与要求选择 PaaS 方案,提供 NPM 包的 SDK选择 React+zustand 作为前端 SD
2、K 组件选型 socketio协同层:NestJS+socketio后端交互:MQ 消息队列,容器化机制今天我们一起看看,NodeJS 全栈能支撑多大能力的业务?轻协同IDE的前世今生轻量级(简单,易用,免安装)协同性(用于Coding面试、学习指导等场景)零秒启动(极快的启动速度、所有包依赖提前准备)零秒切换(秒换不同编程环境)零秒延迟(所有操作实时进行,包括Shell、Console、文件树)需要完全自主可控(排除 VSCode 定制方案)需要超出预期的协同体验需要超强自定义:答题区、隐藏锁定答案、测试用例解析等等结论:排除 VSCode 等IDE定制方案,完全从零开发接下来一起来进行架构
3、之旅PaaS 模式因为轻协同IDE拥有很多应用场景:技术测评、在线面试、编程学习,为了支持不同的业务,所以采用 PaaS 化的架构。NPM 是必然的采用的打包方案。MonoRepopnpm 提供更快的安装速度demo:提供演示和测试能力client:SDK核心代码server:Node层负责长连接协同React+zustandDaoStore.tsx状态管理非常复杂自行实现状态机共享全局数据异步事件编程SocketIOChannel 与服务端进行异步事件,基于状态驱动的封装与管理组件的无依赖状态设计离线上下线交互Node后端职责与架构选型后端技术栈选型与 SocketIO 通信极为便捷高并发支
4、撑异步事件编程支持良好对 OT 协同算法支持良好,抽象性好后端技术选型结论NestJS(充分利用 Inject 注入技术,简化复杂依赖)SocketIO 中间件高性能支撑部分复用前端状态Mongodb(高性能支撑,每秒2万QPS)后端与Java中台交互选型MQ 消息队列(RabbitMQ NestJS中间件)容器化管理机制容器环境 Golang Agents 注册架构总结单链路 1万同时在线加载速度不超过1s切换环境速度不超过1s完美支撑业务侧灵活定制页面与接口感兴趣可以来试试前端中级以上工程师,Vue&React 有一个掌握即可构建自己的编程环境你可以用 1024PaaS 实现自己的在线编程环境,通过跟我对接来体验 SDK可以完整自定义各个页面结构应用场景举例:在线教育、互动培训、公司内训学习QA环节欢迎与我交流架构、前端、创业相关的话题欢迎使用 ShowMeBug 进行技术测评欢迎使用 1024PaaS 开发自己的IDE应用微信号:lyfi2003