《實現輕協同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