java vscode跳转类定义_干货回顾 | VS Code 基于Java开发实践分享
主讲人介绍李榕首席软件开发经理,微软亚太科技有限公司所在的团队隶属于微软C+AI事业部,该团队服务于广大Java开发者,在Visual Studio Code中为他们提供轻量、快速的Java开发体验。活动前言活动名称VS Code 中的 Java 语言实战活动日程为什么要用VS Code写Java?如何安装VS Code Java能做什么?功能演示应用场景展示飞速代码导航刷题超强Spring Bo
主讲人介绍
李榕
首席软件开发经理,微软亚太科技有限公司
所在的团队隶属于微软C+AI事业部,该团队服务于广大Java开发者,在Visual Studio Code中为他们提供轻量、快速的Java开发体验。
活动前言
活动名称
VS Code 中的 Java 语言实战
活动日程
为什么要用VS Code写Java?
如何安装
VS Code Java能做什么?
功能演示
应用场景展示
飞速代码导航
刷题
超强Spring Boot开发体验
远程开发
求助指南
为什么要用VS Code写Java?
首先VS Code很快:VS Code以文本编辑器的姿态出现,但能做到完美支持海量插件、理解代码、快速轻量化的启动、开发时无需频繁切换各类工具...这些优点让VS Code能在众多成熟的文本编辑器中脱颖而出,在几年的时间内就成长为一个主流开发软件。
此外,VS Code有独特的应用场景,将在后文详细描述:
飞速代码导航
刷题
超强Spring Boot开发体验
远程开发
与intellij idea相比,intellij的产品提供了极其全面的功能,但日常工作中可能只能使用到不到其20%的功能,而VS Code可以为使用者提供定制化功能,从而带来更轻量、更快速的体验。VS Code并非要取代intellij,但提供了不同的体验。
如何安装
打开VS Code
进入插件市场
搜索并安装:Java Extension Pack
在Java Extension Pack中,提供了基础java集成、基于机器学习的智能代码推荐等等功能。
VS Code Java能做什么?
代码导航与编辑
重构与排错
包/依赖管理
调试与测试
功能演示
代码导航与编辑
打开一个java项目,会自动运行java的Language Sever,如下图VS Code中的命令行显示类型。
在项目中,VS Code集成的java提供了方便的导航功能,如下。
除了查看函数定义与引用外,还提供了寻找父类等多种功能。
VS Code为不同场景下提供不同的代码只能建议,比如在if中,会提示的代码如下。这是通过机器学习得出的,在if中该对象最有可能引用什么方法/变量。
重构与排错
在项目中,VS Code为java提供了重构功能。
此外,也有Source Action如下。
在排错中,VS Code在调试台中进行报错,并提供一个“小灯泡”按钮给出改错建议。
包/依赖管理
在导航栏中,Java Dependencies提供了可视化的包管理模块。
在Outline中提供了.java文件结构的速览与导航。
调试与测试
在左侧的烧瓶按钮中,提供了对Test的调试功能。
应用场景展示
飞速代码导航
VS Code可以“轻量化”地打开一个开源java项目,不需要完全导入依赖环境,就可使用导航功能学习该项目的结构、函数间定义调用关系。
在settings.json中,可以修改开启项目的形式;调成LightWeight地模式可以轻量打开项目空间。但在该模式下,无法调试代码。
也可以在Settings搜索mode如下,选择自己所需的模式就可以。
刷题
无需建立一个完整的java项目,新建一个空项目,建立一个.java文件并在其中编写算法,就可以直接测试。结合LeetCode插件,可以很方便地利用java直接在VS Code刷LeetCode题目。
超强Spring Boot开发体验
微软C+AI事业部联合Spring Boot贡献者开发的java插件为Spring Boot提供了强大的支持。
快速类型导览:快速在Annotations,Beans,路由之间跳转;
运行时状态渲染:在代码中查看正在运行的程序里的路由以及Bean信息;
代码编辑助理:快速生成路由代码
完整的文档支持
快捷键Ctrl+T可以打开symbols过滤器,可以通过输入特定的过滤指令,如下图,是对该项目中所有Annotations的查找。
此外,还可以在运行时查看程序路由以及Bean信息。
在导航栏中使用Spring Dashboard运行程序,使用Ctrl+Shift+P或F1来输入命令manage live spring boot connections,可以激活相关功能。
远程开发
VS Code有灵活且强大的协议,分离了开发与运行的环境,且并不对开发者造成困扰。即不会受网速延迟的影响,调试感受接近本地调试体验。
利用“远程开发”迅速搭建多样化的开发环境
保持本机环境清洁如初
支持Docker、SSH、WSL
安装Remote Development插件
这是VS Code的“独特优势”,提供极其便捷、快速、清洁的远程开发、环境测试体验。
求助指南
提问、报bug:可以在github.com/Microsoft/vscode-java-pack/issues进行提问、报告bug,中文英文都可以;
圆度文档:各个插件repo里的readme等文件;
参与改进:可以阅读VS Code API官方文档。
此外,还可以加入“VS Code中文社区”,参与讨论。
文档
java常用插件如下。
问答
Q: 插件可以用在online吗?
A: 因为强大的协议,绝大部分的插件是支持的。如果遇到问题,欢迎到社区、repo中提问、报bug。
Q: 现在有些工程不是纯Java的,例如会和Scala、Kotlin这样一些基于JVM的语言混合使用,这种情况VSCode Java有考虑以后支持吗?
A: 短期内尚没有这个计划。
Q: 能否通过VSCode Java Extension开发AOSP framework代码,如何配置自定义JDK及boot jar?
A: 目前的精力集中在backend,尚未提供完整的安卓开发支持。
Q: 有类似于代码结构的展示吗?(比如说继承关系,私有之类的 )
A: 这是一个正在进行的重点工作,预计今年推出这个功能。
Q: 如何查找依赖包里的class文件呢?
A: 依赖的界面在Dependencies中直接打字,将鼠标移至显示的输入栏中,如下图;可以使用Ctrl + T进行检索。
Q: VS Code支持resin4.x吗?
A: 不支持。
Q: codespace吗?
A: VS Code 的online space,省去host服务器的管理,直接连接即可。
Q: 运行期间,可以拖拽断点调试吗?
A: 这与java本身的语言特性有关。支持一些退回调试。
Q: 基础代码怎么自动生成?
A: 可以通过java overview命令进行操作。
Q: 请问远程开发,编译时会使用哪台计算机?
A: 使用的远程服务器,远程开发相当于放了一个没有界面的VS Code在远程服务器上。
Q: 如何自动生成getter, setter?
A: 右键选择Source Actions,有getter、setter选项。
Q: 连接的时候会下一个 sever?
A: 会的。
Q: VS Code team如何看待高度雷同的IDE项目Eclipse Theia?
A: 开源社区这些都是被允许的,基于不同的idea,只要遵守法律与规则,最终受益的是整个开源社区。
Q: maven项目,maven坐标怎么向idea一样点击进去它的父pom?
A: 目前没有,欢迎到repo来提issue,描述诉求的使用场景。
Q: 请问轻量模式实际应用场景有哪些?
A: 比如快速的代码阅读。
Q: 问:有没有计划把一些常用的配置GUI化,比如常用的参数配置,remote debug,JDK切换,profile,maven setting这些,对于团队内部推广会有帮助?
A: 有这个计划,会增强上手体验。
Q: remote模式下,底层用的什么协议?安全性有保证么?
A: 取决于ssh的配置;安全性与个人配置有关。
更多推荐
所有评论(0)