QCon 2022·上海站 | 学习笔记6: 前后端分离的架构 在 VS Code 中的应用

简介: QCon 2022·上海站 | 学习笔记6: 前后端分离的架构 在 VS Code 中的应用

前后端分离的架构 在 VS Code 中的应用

韩骏

自我介绍

  • 高级软件工程师 @ 微软开发平台事业部
  • 《Visual Studio Code 权威指南》作者
  • 20 多款 VS Code 插件(比如 Code Runner)
  • “玩转VS Code”知乎专栏 & 微信公众号
  • VS Code 中文社区创始人
  • https://github.com/formulahendry/955.WLB
  • 内推 100+ 人拿到微软 offer
  • Speaker @ PyCon、JSConf、.NET Conf、Microsoft
    Tech Summit、Google Developer Group、COSCon ...
  • 公众号“HJ说”

VS Code 的核心技术 前后端分离的基础

核心技术与重要组件

  • 生于前端:MonacoEditor
  • 成于前端:Electron
  • LSP(LanguageServerProtocol)
  • DAP(DebugAdapterProtocol)
  • Xterm.js
  • 进程隔离的架构与插件模型

生于前端:Monaco Editor

  • GitHub: https://github.com/Microsoft/monaco-editor
  • 始于 2011 年
  • 基于浏览器的代码编辑器:IntelliSense,代码验证,语法 高亮,文件比较 ...
  • 支持主流浏览器:Edge, Chrome, Firefox, Safari 和 Opera
  • 使用者:Gitee Web IDE, Cloud Studio, Eclipse Che, Eclipse Theia, Azure DevOps, OneDrive, Edge Dev Tools ...

成于前端:Electron (原名 Atom Shell)

  • GitHub: https://github.com/electron/electron
  • 始于 2013 年
  • 基于 Node.js(作为后端)和 Chromium(作为前端)
  • 使用 HTML, CSS 和 JavaScript 开发跨平台桌面 GUI 应用程序
  • 使用者:Atom, Skype, GitHub Desktop, Slack, Microsoft Teams ...
  • Chromium 负责页面 UI 渲染
  • Node.js 负责业务逻辑
  • Native API 提供原生能力和跨平台

Electron 架构


Language Server Protocol

  • GitHub: https://github.com/Microsoft/la nguage-server-protocol
  • IDE 与语言服务器之间的一种协议, 可以让不同的 IDE 方便嵌入各种程 序语言。
  • 支持 LSP 的开发工具: Eclipse IDE, Eclipse Theia, Atom, Sublime Text, Emacs 等

Debug Adapter Protocol

  • GitHub: https://github.com/Microsoft/debug-adapter-protocol
  • DAP 与 LSP 的目的类似,DAP 把 IDE 与 不同语言的 debugger 解耦,极大地方便了 IDE 与其他 Debugger 的集成。
  • 支持 DAP 的开发工具: Eclipse IDE, Eclipse Theia, Emacs, Vim 等

Xterm.js

  • Xterm.js 是一个由 TypeScript 编写开发的前端组件,它把完 整的终端功能带入浏览器。
  • Xterm.js 支持业界主流的浏览 器,包括 Chrome, Edge, Firefox 和 Safari。

  • 进程隔离的插件模型
  • Extensions: No DOM Access!
  • 进程隔离的架构

多种开发模式及其架构

四种开发模式

  • 本地的前端+本地的后端:VSCodeDesktop
  • 本地的前端+"远程"的后端:VSCodeRemote
  • 远程的前端+远程的后端:GitHubCodespaces
  • 远程的前端+"本地"的后端:VSCodeServer

  • 本地的前端 + "远程"的后端 VS Code Remote
  • VS Code Remote - SSH
  • VS Code Remote – Dev Container
  • VS Code Remote - WSL
  • 远程的前端 + 远程的后端(SaaS)
  • GitHub Codespaces
  • 远程的前端 + “本地”的后端(BYO)
  • VS Code Server (private preview)

未来

未来可期

  • DevContainer-可定制化的开发容器成为统一的“后端”
  • github.dev&vscode.dev-不止前端
  • WebAssembly-“前后端”都在浏览器中,带来无限可能

Not just editing code in Web

  • Run code directly in Web
  • Debug code directly in Web

Code Runner for Web

  • Run Code (Python) in vscode.dev, github.dev and VS Code Desktop
  • Fast: Zero toolchain setup, without installing Python interpreter
  • Free: No backend needed, all in browser environment

WebAssembly is the future!

目录
相关文章
|
12天前
|
机器学习/深度学习 API 语音技术
|
1月前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【2月更文挑战第31天】 随着数字化转型的加速,云原生技术已经成为推动企业IT架构现代化的关键力量。本文深入探讨了云原生架构的核心组件、实施策略以及面临的主要挑战。通过分析容器化、微服务、DevOps和持续集成/持续部署(CI/CD)等关键技术,揭示了如何利用这些技术实现敏捷性、可扩展性和弹性。同时,文章还讨论了企业在采纳云原生实践中可能遇到的安全性、复杂性和文化适应性问题,并提供了解决这些问题的策略和建议。
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
90 0
|
7天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
43 0
|
11天前
|
运维 监控 自动驾驶
构建可扩展的应用程序:Apollo与微服务架构的完美结合
构建可扩展的应用程序:Apollo与微服务架构的完美结合
32 10
|
12天前
|
机器学习/深度学习 PyTorch API
|
12天前
|
机器学习/深度学习 语音技术 算法框架/工具
|
13天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第10天】 随着数字化转型的不断深入,企业对信息技术基础设施的要求日益提高。云原生架构作为一种新兴的设计理念和技术集合,以其灵活性、可扩展性和容错性,正在成为推动企业技术革新的关键力量。本文将探讨云原生技术的核心组件、实施策略以及面临的主要挑战,并分析如何通过采纳云原生架构来优化业务流程和提升服务效率。
|
22天前
|
移动开发 前端开发 数据管理
构建高效Android应用:采用MVVM架构与LiveData的全面指南
在移动开发领域,构建一个既快速又可靠的应用对于开发者来说至关重要。随着Android Jetpack组件的推出,MVVM(Model-View-ViewModel)架构和LiveData已成为实现响应式、可测试且易于维护应用的首选解决方案。本文将深入探讨如何在Android应用中实施MVVM模式,以及如何利用LiveData来优化UI组件的数据更新流程,确保用户界面与业务逻辑之间的高度解耦和流畅交互。
18 4
|
1月前
|
Cloud Native 安全 Devops
构建未来:云原生架构在现代企业中的应用与挑战
【2月更文挑战第30天】 随着数字化转型的深入,企业正迅速采纳云原生技术以适应不断变化的市场环境。本文探讨了云原生架构的关键组成部分,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps实践,并分析了它们如何促进企业的敏捷性和可扩展性。同时,文章也识别了企业在采用云原生技术时面临的安全、文化和技术挑战,并提出了相应的解决策略,以帮助企业在云时代保持竞争力。