vscode java开发_VS Code 中文社区 Workshop 基础篇 —— First Step to VS Code

687fba13de5dca7fe83dea625ebe35ca.png

点击蓝字关注我们哦~

c5aed3bdb08f8ba62da97ee346806415.gif

点击“”,报名参加 4 月 11 日的 Workshop 进阶篇!

活动日期:2020年3月28日 会议主题:First Step to VS Code 主讲人:陈晟

Part 1 前言

98d6fa82e7865ce10e6257514395f952.png

主讲人简介

陈晟,Software Engineer @ Microsoft:

  • 现就职于微软,负责 VS Code Java 相关的开发;
  • 毕业于上海交通大学网络空间安全学院;
  • VS Code LeetCode 插件作者;
  • 《玩转 VS Code》知乎专栏作者;
  • GitHub:@jdneo

内容纲要

本次分析基础篇内容:

  • VS Code 简介;
  • 动手实验:VS Code 上手体验;
  • VS Code 的开源社区运营之道。

而在4月11日我们将讲解进阶篇内容:

  • VS Code 有哪些工程方面的亮点;
  • 动手实验:VS Code 插件开发体验;
  • VS Code Online, VS Code Remote & VS Code Live Share。

Part 2 正文

VS Code 简介

VS Code 前身

谈到 VS Code 不能不谈到 Erich Gamma :Eclipse JDT、 JUnit 、 设计模式 都与其有关。

Erich Gamma 于 2011 年加入微软,微软给了其一个很有趣的“任务”:"Envision new paradigms for online developer tooling that will beas successful as the IDE has been for the desktop."(定义一个能像 IDE 一样成功的在线开发工具)。

随后, Monaco Editor 诞生了,其有特点:

  • 面向浏览器的文本编辑器;
  • 典型应用有:TypeScript playgroundOnedrive, ...

Monaco Editor 便是 VS Code 的前身。

基于 Electron 框架,开发人员将 Monaco 移植到了桌面应用上来。

cb0ceff68ede95caf53b466d04236842.png

Electron 是 GitHub 在 Chromium 浏览器、npm包管理工具/生态等前提下,推出的框架。可以看出,Electron 集成并利用了 JavaScript 的重要特性。

使用 Electron 还意味着,有大量的 Monaco Editor 代码可以复用。

VS Code 发布
  • 2015.4 移植到桌面并发布预览版
  • 2015.11 开源
  • 2016.4 正式版发布

VS Code 的发展可谓非常迅猛。

a56f961844b899f10c9c2d8a687a1a15.png

从上图 Stack Overflow 的开发者调查报告可以看出, VS Code 已经是最受欢迎的浏览器。

为什么 VS Code 如此受欢迎?

  • 设计有独到的思考;
  • 尊重开发者的需求;
  • 明确的产品宗旨:「一切围绕 Code」
19459fe665f1c1734f73ab77104005f5.png

Erich Gamma 曾经在一次演讲中讨论了 VS Code 的定位,如上图。

作为编辑器,应专注于:

  • 键盘控制;
  • 轻量快捷;
  • 文件管理;
  • 多语言支持。

IDEs 应该专注于:

  • 项目管理;
  • 集成编译;
  • 智能补全、代码片段;
  • debug;
  • 模板;
  • 软件生命周期管理(Application lifecycle management)。

随着插件生态与 VS Code 的版本迭代, VS Code 生长得越来越集成上述二者的优点。

VS Code 学习资料

老师推荐了学习资料:

  • VS Code 官网是一个很好的选择 https://code.visualstudio.com/;
  • 知乎玩转 VS Code 专栏 https://zhuanlan.zhihu.com/vs-code;
  • VS Code 插件开发样例- GitHub 上的代码仓库 microsoft/vscode-extension-samples;
  • VS Code 中文社区微信公众号。

动手实验:VS Code 上手实验

初识 VS Code

菜单栏在上,侧边栏在左侧。

「在左下角“齿轮”按钮中:」

VS Code 的 settings 中,有不同的 scope 概念,如果 Workspace scope 中的值(要求是非省缺值)不同于 User scope ,则前者优先级高于后者。

如果是非省缺值,将以 json 形式,保存在 settings.json 中。

对于习惯了不同的编辑器/操作方式的人,可以通过选择 keymap ,下载对应的插件。

还可以通过 Keyboard Shortcuts 查看快捷键组合。

此外,可以通过 Command Palette.. 输入命令的关键字,从而找到命令并调用。

此外,还可以通过 Color Theme /插件设置主题等等。

「在左侧的 Extensions 按钮中可以管理/下载插件:」

  • 尽量选择评分高、下载量大的;
  • 尽量选择带有“五角星”的,因为“五角星”是官方推荐的插件。
上手操作
function hello() {
console.log("Hello, world!");
}

hello();
3dd5d4e23b1329565c8afa002663261b.png

VS Code 为一些语言提供了内置的代码片段。按 Tab 键可以切换焦点,避免动作上的重复与浪费,提升开发效率。

在行号前,可以打断点

在 Run 按钮中,可以进行 debug 。可以监测运行程序的变量等。

若需要调用自己的插件、配置环境怎么办?

可以在 launch.json 中配置。

451502a18f81c2cceb9472d2306e4157.png

如上图,可以对配置文件进行调用。

4f67e44be5ced49a7e021276f3c52628.png

此外,还可以使用 VS Code 的快捷键(如右键函数),进行代码重构。根据不同语言,其支撑程度不同。

32522e98ac7f4be4fc4b3358d61b33ad.png

VS Code 还可以对 git 进行匹配与管理。

问答环节:

  • 插件是有分类属性的;
  • 如何设置文件模板/头部文件?可以使用相关插件。比如可以在插件市场检索 header等关键词;
  • 建议大家使用默认快捷键,非官方可能会有无人维护等问题。

VS Code 的开源社区运营之道

VS Code 代码仓库有多活跃?

188b18c48efdc93bf48ef54b9de94d7c.png

截至2020-3-28,GitHub上有大概10万多条的 pull request 与 issues 。

而 VS Code 的运营团队实际只有 20 多人。

ca3497255caaf67543711d072a5587d0.png

陈老师在2017年提出了一个 issue ,VS Code 运营者认为这是一个问题,且适于社区人员修改;仅仅过了一个晚上,就有至少两个 pull request (就有至少两个人提供解决方案)。

VS Code 中还存在 Issue Bot ,可以:

  • 自动检测重复的 issue ;
  • 自动为 issue 添加 tag ;
  • 自动关闭 issue ,省去人员排查工作,并提醒问题提出者更多地提供信息;
  • 如果 issue 被关闭后很久都没有被理睬,则 issue 会被 locked 。
4df05c1974b814c9dd45400ec9a14833.png

此外,在 VS Code 社区中提供 issue 投票机制,从而更好地了解用户最广泛的需求。

「此外, VS Code 良好的生态为其提供细分的学习交流渠道:」

  • 提问题可以前往 Stack Overflow 等社区;
  • Bug & Feature Request 可以在 GitHub Issue;
  • 社区交流协同可以前往 Gitter 和 Slack;
  • 咨询发布可以前往查看 Twitter @code。

此外,VS Code 的开发计划总是「公开透明的」

025919dcc1ce1b510bca808f3f88847c.png

可以在 GitHub wiki 查看开发的 Roadmap 。

此外,还通过 Iteration Plans 可以查看月度更新计划。

在 Endgame 中,会发布各事项及进度。

在每月发布的更新中,会有 Release Notes ,会有动图展示更新的重要特性,也会在文末进行致谢。

VS Code 还有很快的产品迭代:

  • Stable 版本每月更新;
  • 而必要时,会有 recover 版本;
  • 为了快速检测、迭代,会有 Insider 版本每日更新。

Part 3 结语

题外话:圣诞门

bfde570213b8ebe143f9a07a594d606b.png

事件经过:

  • VS Code Insider 发布含有圣诞帽彩蛋的更新;
  • 有用户开 Issue 表示对此彩蛋感到不适;
  • VS Code Insider 再次更新,将圣诞帽改为雪花;
  • 更多用户开 Issue 反对这一更新(甚至包含机器人账户,“水军”);
  • 无奈将代码仓库锁止,整理 Issue ,让公众情绪冷静下来;
  • 提供新的配置项可让用户自定义配置按钮图案;
  • 解锁,并发布公告还原事件经过。
8dcda026ee74604b0ec2838e8ab01470.png

公告可见 issues/87440 ,如上图。尽管是一个运营失误,但是 VS Code team 作为一个开源为宗旨的开发团队对待问题还是很开放的。

问答

VS Code 提供 Remote 可以连接远程服务器远程开发。

有问题或者需求的话,其实可以选择:

  • 在互联网上利用搜索引擎检索(百度、谷歌);
  • 在 GitHub 的 vsc 官方 repo 中检索;
  • 可以在 GitHub 上提出 需求 issue 。

VS Code 能写 java 吗?当然可以:

  • 需要装一些 java 的插件,可以使用 java 的插件集合 Java Extension Pack 。

进阶篇

让我们相约 4 月 11 的进阶篇!

969e22c749264b1e4e995f6f0c0889e6.png

7dc20de2416d55128950bbdeb2811e02.png

点击“”,报名参加 4 月 11 日的 Workshop 进阶篇!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值