资讯专栏INFORMATION COLUMN

实录分享&视频 | 微软Visual Studio Code是这样支持Docker的

leoperfect / 2660人阅读

摘要:分享嘉宾是来自微软云计算事业部的高级软件开发工程师刘鹏。是微软开源的一款开发工具,它针对做了许多编译和命令上的支持。今天主要向大家介绍一下微软去年推出的一个,以及对的一些支持。年他加入微软,从事开发的工作。

本文是数人云“分布式架构的开源组件大选”Meetup的实录分享。分享嘉宾是来自微软云计算事业部的高级软件开发工程师刘鹏。
Visual Studio Code是微软开源的一款开发工具,它针对Docker做了许多编译和命令上的支持。

今天主要向大家介绍一下微软去年推出的一个Visual Studio Code,以及Visual Studio Code对Docker的一些支持。欢迎大家相互交流下如何更好的用Visual Studio Code在本地做Docker相关的开发和测试工作。

从VSCode的作者说起

首先想问大家一个问题,你理想中的开发工具是一个什么样子?基于不同的技术栈,有各种各样的开发工具,但是对于速度、性能、高亮、快捷键等诉求是相同的。一些人希望开发工具像擎天柱一样无所不能,对速度没有要求,安装SSD或者更多memory就可以;但另一些人更关注速度,要求秒级打开大量文件;而完美主义希望既快又占用资源少还要外观漂亮……

基于这些理念,微软去年推出了Visual Studio Code这样一款跨平台的开发工具。先介绍一下它的作者,这是去年作者来中国访问的时候一个朋友拿到的签名,这个人很有自信,他就是Erich Gamma。

Erich Gamma之前开发了Junit,相当于JAVA的unit test的一个库,以及主导研发了Eclipse。当然最出名的还是他与另外三个人合伙,号称Gang of Four四人帮,写了一个很经典的书《设计模式》。2011年他加入微软,从事IT开发的工作。

Visual Studio family的新成员——VSCode的定位

Visual Studio Code定位是想为大家提供一个能够跨平台的新选择,主要偏向editor,让用户既能享受editor速度的情况下,又能享受IDE提供debug的便利性。它可以支持Linux,Mac平台,不再局限于Windows平台。另外VSCode本身是一个开源项目,在GitHub上大家可以看它的源码,在本地编译。


editor和IDE的定位是相对不同的,editor更像之前说的摩托车,要求系统占有率更低,性能更好,速度更快,支持很多语言。而IDE,它有强大的Debug分析功能,可以针对一些CI/CD进行集成,与语言绑定得比较紧密。VSCode定位则在中间这个位置,相对偏向IDE,既有editor性能方面的优势,同时集成了一部分IDE的Debug功能,比较灵活,对于Geek来说它是一个keyboard centered的IDE。

它的主要特点:第一是免费,随时可以download这样一个开发工具;第二是跨平台,核心技术基于Electron;第三是可定制化,包括UI、快捷键,很多用户行为都可以通过一个简单的配置文件去做配置。VSCode设计之初的理念就是速度。此外它是开源的,开发计划很透明,在GitHub上可以看到下个月发布的主要功能和下一阶段的计划。另外VSCode支持可扩展,大家都可以在这上面写插件,根据需求提供了更丰富的功能。


原来传统的Visual Studio family是Visual Studio加上Team Service,现在又补充进了Visual Studio Code,这样为大家提供一道从编辑器到IDE、到后台CI/CD完整的一套的流程。

罗马不是一天建成的——VSCode的历史

2011年, Erich Gamma加入微软时有一个任务,要创建一个基于浏览器的开发环境,但是要让用户使用的时候忘记在用浏览器,他们在瑞士成立了一个研发团队,这几年做了很多工作,比如在OneDrive上提供语言的代码编辑的工作,以及TypeScript学习的网站,在左边写TypeScript,右边会实时显示相应的javaScript,可以同时去学习这两种语言,比较它们之间的异同。

他们也做为IE浏览器里的开发者工具提供了很多功能,比如在bing的搜索结果里显示类似于开发环境的代码。最重要的是在Visual Studio Online提供一个叫“Monaca”的项目,真正把开发环境集成到了一个浏览器的环境。现在Visual Studio Code的代码还有大量基于Monaca的code,这是它的雏形,比如提供比较、语法高亮、智能提示等功能。

站在巨人的肩膀上——VSCode背后的技术

Visual Studio Code并不是从头开始做的,Visual Studio Code最早是基于JavaScript,基于Electron的内核,然后基于Chrom的内核,加上node.js。最初的时候它的语言是用JavaScript,现在已经百分之百的切换成了TypeScript。

Electron是GitHub推出的为node.js开发者提供一个跨平台的桌面程序的框架,核心基于Chrom内核, VSCode team在2014年的时候看到了它,决定把整个内核迁到上面。Electron类似于在桌面实现了一个小的浏览器的功能,会有一个主线程,在每个窗口下有一个显示的进程,每个进程里会有不同的Service,负责绘制不同部位的UI。


其中一个比较特别的Service叫Extension Host,它负责与插件、调试服务或者一些代码检查服务进行交互,所有第三方插件都需要在Extension Host里面注册,比如什么时间去激活这个插件,然后什么时间和server进行通讯。在设计的时候特别采用了每个插件独立起一个进程的模式。

其它IDE或者编辑器安装很多插件的时候,一个插件的性能会破坏其它的插件性能,安装的插件越来越多,在打开文件或者进行操作的时候整个编辑器会变得越来越卡,但是通过Extension Host service注册所有的插件,每个插件运行在自己独立的进程里面,通过post Message进行异步交互,这样一个插件的进程卡掉了不会影响其它的进程,从而保证了编辑器的打开和交互用户的速度。


现在市场上有很多插件,针对不同的语言甚至不同的静态代码检查工具,这里只是其中一部分。在Visual Studio Code官网上有很详细的教程,大家可以按照它的教程写几个简单的,像词频的计算或是简单的语言插件。

视频演示:利用VSCode远程调试Docker中的 Node js程序

下面给大家演示一下Visual Studio Code针对Docker提供的编译或者命令上的支持。

https://v.qq.com/x/page/b0357...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27980.html

相关文章

  • Visual Studio Code 远程开发探秘

    摘要: IDE新时代! 作者:SHUHARI 的博客 原文:Visual Studio Code 远程开发探秘 Fundebug按照原文要求转载,版权归原作者所有。 在以前的文章 有趣的项目 - 在浏览器中运行 Visual Studio Code, 我介绍过 Coder 开发团队将 Visual Studio Code 搬到浏览器里的尝试。这是一个有趣的项目,不过没有想到的是,这之后不久...

    phodal 评论0 收藏0
  • TOP100分享实录 | Microsoft Annie Wang:Building an Incl

    摘要:本文内容节选自由主办的第七届,分享的实录。据美国纽约时报报道,人工智能的测试会根据肤色种族,出现不同的错误率。微软在美国工时比较长,而在欧洲工作时间有严格的要求,我们需要花费时间磨合并找到共同的时间。 showImg(https://segmentfault.com/img/bVbm2f7?w=1080&h=720); 本文内容节选自由msup主办的第七届TOP100summit,Mi...

    madthumb 评论0 收藏0
  • 为什么我选择使用 VS Code进行前端开发?

    摘要:我们团队有大部分人已经在用了,所以这周五在组内做了一个小分享,来发掘一些提高开发效率的小技巧。为什么选择在刚出来的时候,我就开始使用了如何评价理由很简单开源,免费,颜值高微软出品,实力保证。 showImg(https://segmentfault.com/img/remote/1460000010750652); 没错,我就是来给大家安利 VS Code 的。 对前端来说,这是一款性...

    liaosilzu2007 评论0 收藏0
  • (译 & 转载) 2016 JavaScript 后起之秀

    摘要:在年成为最大赢家,赢得了实现的风暴之战。和他的竞争者位列第二没有前端开发者可以忽视和它的生态系统。他的杀手级特性是探测功能,通过检查任何用户的功能,以直观的方式让开发人员检查所有端点。 2016 JavaScript 后起之秀 本文转载自:众成翻译译者:zxhycxq链接:http://www.zcfy.cc/article/2410原文:https://risingstars2016...

    darry 评论0 收藏0
  • 一个程序员正版清单

    摘要:有部分前端人员使用的是盗版的。非编程相关其它一些我使用的,但与编程关系不大的正版工具。尊重别人,更是尊重自己做为一个程序员,使用正版,我认为这不是自做清高的事情,这是对自己职业的一种基本尊重。 ...

    wudengzan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<