使用 VS Code 五年后,我决定切换回 Pycharm!

 2024-01-17 02:04:37  阅读 0

点击上方“萝卜大杂烩”,选择“星标公众号

超级无敌干货,尽快发货! ! !

在编程方面,VS Code 五年来一直是我的主要 IDE。 此时我决定更换它,这可能是不可理解的。 在这篇文章中,我将与大家分享我做出这个决定的原因。

本文根据我个人使用VS Code和VS Code的一些经验,将从5个方面对它们进行对比分析。 并且解释了它在某些使用场景下具有明显优势的原因。

代码检查和重构

VS Code:快速、简单、支持多种语言

首先,任何编程语言都可以在VS Code中轻松快速地启动和运行,所以大家也称其为“编辑器”。 因此,VS Code对于我这样的全栈工程师来说是最好的选择。

无论是需要频繁切换,还是需要添加基于开发的React App,又或者需要在Ralis系统上配置Ruby环境,VS Code都可以很好地支持这些能力,并提供这些开发语言包括一系列的开箱即用的功能。 即使遇到某个功能无法使用,也只需在其插件市场中搜索一个,找到具有该功能的插件即可安装。

其次,得益于AI-based、auto等一系列插件的支持,VS Code拥有强大的能力。 在 VS Code 中,您可以随时轻松配置所需的任何功能。 很多时候,你只需要输入结束符,VS Code就会提示你想要的内容。

但有时候,人会因为这种能力的失败而崩溃。 事实上,我经常陷入试图找出标准不起作用的原因。 无论是因为我以前安装的环境较多,还是缺少安装包,很多时候我都无法直接得到答案。

另外,VS Code 的语言特定功能也非常强大,但它并没有进行深入的类型检查。 幸运的是,我们可以解决这个问题。

vscode跳转到函数实现_vscode函数跳转_function跳转

最后,作为编辑器,VS Code 在重构代码方面做得非常出色。 它在变量重命名、文件移动和自动引用修改等基本重构功能方面做得很好。 但在函数移动、参数重命名、代码提取等更高层次的重构功能方面,似乎有些不足。 不过幸运的是,仅仅一些基本的重构功能就足以满足我们大部分日常重构需求了。 在我使用 VS Code 的五年里,它满足了我遇到的大多数重构场景。

:规范、专业、强大支持

首先,它是一个功能强大的IDE,其中包含许多不合理的初始设置。 刚接触它的时候,为了让代码显示得更优雅,我不得不花很多时间进行设置。 然而,在两种针对不同使用场景设计的IDE之间切换时,不可避免地要付出一些学习时间。

如果我的一个POST请求突然出现问题,我必须打开它看看我的后端API服务是否有问题; 如果在推荐项目中,我突然对最佳推荐算法有了新的优化想法,我只需要打开 CLion 即可。 不过,得益于智能识别,我只需要花一些时间练习切换代码即可。 到其他脚本,例如 . 和 。 打开不同的IDE时。

其次,它的发动机性能强大。 当我用它替换所有IDE时,它强大的引擎性能给我留下了深刻的印象。 当我在编辑器中看到一些红线警告时,我只需要使用快捷键+p重新加载当前窗口一次,这些红线警告就会消失,或者给出一些有用的提示信息。 这种简单且响应迅速的代码检查让我在编码时感觉更好。

function跳转_vscode跳转到函数实现_vscode函数跳转

最后,在重构能力方面,它很强大,这才是真正吸引我的地方。 就在上周,在构建公司平台的最终测试版时,我重构并添加了一些组件,以使它们将来更具可扩展性。 在此期间,我搬了大约200个组件。 项目编译时,没有出现因引用错误、非法或未定义组件而导致的编译异常。

然后,在 VS Code 中,我通过重新组织数据结构类项目中的两个文件来破坏整个 cpp 代码。 为此,我必须手动修复一些组件导入和函数引用以使项目正常工作。 另外,为了保证我们有足够的重构工具,它还提供了安全删除、全局重命名等多种外部工具。

vscode函数跳转_vscode跳转到函数实现_function跳转

vscode函数跳转_vscode跳转到函数实现_function跳转

能力对比

总的来说,我认为 VS Code 在代码检查和代码重构方面与两者接近。 两者都通过自动代码检查、代码格式化、主题定制等功能帮助人们更好地调试和显示代码。但是,它具有优秀的引擎和无副作用的重构能力,所以如果代码分解和重构对您很重要和您的工作流程,那么我建议您选择它。

调试

VS Code:调试几乎所有内容

VS Code 超强的调试能力得益于其强大的插件支持。 每次单击 VS Code 左侧的运行按钮时,VS Code 都会生成一个 . 文件夹,其中存储 .json 文件。 该文件包含所有与调试相关的配置。 对于大多数语言如 等,使用 VS Code 作为其调试工具是非常方便的。

即使你的环境配置正确,直接点击调试按钮进行调试也会更加方便。

而且,更改当前的调试内容非常简单,只需修改 .json 文件中的配置即可。 但是,如果使用特定的构建方法或特定的平台语言(例如C/C++语言),由于需要设置gcc和clang,会大大增加VS Code中调试的难度和复杂度。 同时,设置这样的文件的调试配置也会费时费力。 为了减少这个时间投入,我尝试将其他项目的.json文件复制到当前项目中,但效果并不理想。 我花了很多天的调整才使得当前的项目正常运行。

在我的大学(密歇根大学安娜堡分校),为了减少大家调试配置的精力,他们维护了一个通用的 .json 文件供大家使用。 但即便如此,人们仍然需要花时间调整 .json 文件。

vscode跳转到函数实现_function跳转_vscode函数跳转

在实际调试过程中,VS Code可以在调试控制台中很好的设置调试断点、识别变量、添加变量观察者等。 不过,如果这些功能可以直接在代码面板而不是侧面板中设置,那就太好了。

幸运的是,插件和多语言支持是 VS Code 最大的优势,它可以让人们在几分钟、甚至几秒钟内完成代码调试的设置。 对于一些简单的调试场景,VS Code的调试能力表现得非常好。 然而,当需要对特殊语言进行调试时,VS Code的调试能力往往就显得力不从心了。 同时我还发现,当程序需要使用更大的堆内存时,VS Code的调试器会冻结直至崩溃。

:调试怪物

与VS Code相比,它具有更强的调试功能。 由于所有系列的IDE都是基于配置运行的,因此您可以通过单击调试按钮开始调试任何程序。

如果要设置全局调试断点,只需在编辑器中按行号处的空格键即可。 该功能极大地提高了程序调试体验。 此外,该系列IDE在整个调试过程中还有很多其他功能亮点。 例如,进入调试过程时,作用域内所有变量的定义对定义者都是可见的。 这使得我们能够非常详细地观察当前变量值的变化。

前几天调试程序的过程给我留下了深刻的印象。 当我运行调试并尝试查看数据帧的值时,只要单击数据帧变量并按“查看数据帧”,数据帧就会打开并显示所有数据帧值和列标题:

如上面的截图所示,底部窗口显示了范围内的所有值。 下拉菜单显示字典对象的所有属性值以及嵌套在字典对象内的数据框。 右侧面板显示了嵌套在字典中的数据框,就像前一个面板一样。 能够在不设置任何打印语句或堆栈跟踪的情况下深入了解代码,对于开发人员来说非常有用。

试想一下,当所有变量的赋值被编辑器显示在旁边时,我们可以很容易地发现循环中的逻辑错误,修复索引导致的失败,甚至可以做一些更深入的逻辑推理。

与其他IDE调试器一样,该调试器也提供了下一行、进入某个函数等单步调试功能。此外,Run to是一个非常有用的功能,它可以让人们调试断点,就像设置断点一样放置鼠标。 这种随时随地设置断点并立即生效的能力彻底改变了我调试代码的方式,大大加快了我的编程速度。

能力对比

程序调试是开发人员每天最常见的事情之一。 因此,我认为开发者在选择IDE时,IDE是否有好的调试器是必须考虑的因素。 VS Code 和 VS Code 都提供了非常可靠的调试器,但我必须说它在这方面比 VS Code 稍好一些。 由于变量值可以直接显示在变量声明旁边,这使得跟踪大量变量更易于管理。

另外,调试器更加强大和稳定,并且不需要像VS Code调试器那样复杂的设置。 因此,综合这些因素,调试可以帮助我们节省更多的调试时间,这也使其更具吸引力。

集成 Git

VS Code:内置强大的源代码控制管理

任何在团队中协作或关心代码安全性的人都知道 Git 在其工作流程中的重要性。 基于 Git 的版本控制是任何现代编辑器不可或缺的功能。 VS Code 和 Git 的集成非常好。 当你打开一个工作目录时,它会自动检测它是否是一个Git存储库。 如果是这样,那么它会立即提供许多本机 Git 命令,例如推送、拉取等。

在VS Code的Git面板中,人们可以清楚地看到哪些文件被修改并轻松同步。 同时,在面板中,还可以创建分支、克隆仓库。 VS Code 总是清楚地告诉你要做什么,这也是我喜欢它的原因之一。 当它检测到文件修改时,会立即提示您提交,并且提交时会提示您包含提交说明。 另外,提交时还会检测并同步本地分支和远程分支。 同时,它还提供了非常稳定的功能。

vscode函数跳转_function跳转_vscode跳转到函数实现

合理处理冲突合并的能力是 VS Code 的一大优势。 通过 VS Code 提供的自动冲突解决功能,我可以选择使用当前的更改,也可以通过单击按钮选择使用传入的更改。 这种解决合并冲突的方法节省了我很多时间。

:不再需要使用命令行进行源代码管理

完全切换后,我几乎没有碰过终端命令行。 它提供了源代码管理的整体功能,包括提交、冲突解决、分支切换、分支比较等。从我的经验来看,源代码控制比VS Code好得多。 下面我列出一些我的体验截图:

vscode跳转到函数实现_function跳转_vscode函数跳转

vscode跳转到函数实现_vscode函数跳转_function跳转

vscode跳转到函数实现_vscode函数跳转_function跳转

能力对比

在Git集成方面,VS Code和VS Code都提供了完整且相同的功能。 无论您选择哪种IDE,对于源代码管理都有足够的功能支持。 因此,这方面不能作为选择IDE的考虑因素。 这只是个人喜好问题。 例如,在解决合并冲突时,与 VS Code 在一个文件中显示冲突文件的方式相比,我更喜欢将冲突文件单独显示的方式。

可扩展性

VS Code:丰富的扩展性

VS Code 是可扩展性最强的编辑器之一,集成能力和可扩展性是其核心特性。 在众多的扩展能力中,目前最流行的是扩展、远程开发扩展、以及一些智能感知驱动的扩展。 此外,VS Code 还有一些很酷的功能,比如代码格式化、通过图标和代码编辑器主题进行主题定制等。VS Code 提供的每一项或功能都是完全可扩展的,扩展本身也可能是一个增强的过程可扩展性。

对远程容器的支持是我最喜欢的 VS Code 扩展之一。 通过此功能,用户可以在 VS Code 中的容器内部进行远程编程。 如果您已在本地或远程安装它,则可以轻松在 VS Code 中运行代码并执行以前需要在 VS Code 中执行的所有操作。

想要一些更有趣的东西吗? 通过 SSH 进行远程开发怎么样? 微软开发的扩展插件可以让人们在VS Code中通过远程SSH进入服务器端开发环境,像在本地一样进行远程开发。 如果你想在VS Code中集成这些功能,只需要点击安装即可成功运行。 所有这些功能使 VS Code 变得非常出色。

:综合生态

对于IDE来说,扩展性并不是一个需要强调的点,因为你会发现大部分你需要的功能都会随着IDE版本的发布而发布。 为某种语言安装一个强大的IDE的好处是,当我们需要一些新功能时,我们可能只需要升级IDE版本就可以拥有它们,而不必去扩展市场寻找它们。

例如,有强大的内置支持。 所有 IDE 都可以通过易于使用的 GUI 提供对所有参数、名称、标签、端口和环境变量的完全控制,只需指定配置类型文件(例如 . 运行时,IDE通过集成为您提供构建日志、运行日志、环境变量和可视化集成配置信息:

vscode跳转到函数实现_function跳转_vscode函数跳转

在集成、Flask、shell等第三方能力方面,提供了与集成相同的能力。

此外,IDE还拥有丰富的插件生态系统。 例如,我可以安装特定的插件来支持和 . 但有趣的是,这些轻量级插件实际上提供了比本地安装和(开发环境)环境更好的编程体验。

能力对比

毫无疑问,两者都对扩展或插件拥有广泛的社区和市场支持。 这两种 IDE 在功能上都有各自的差异。 您可能希望用彼此缺乏的功能来丰富这两个编辑器中的每一个。 然而,VS Code 的社区稍大一些,因此拥有更多的扩展和功能,例如远程容器扩展,这使我们能够更快地迭代。 因此,如果你在日常工作中对定制扩展有较多的需求,那么 VS Code 可以说是你的专属 IDE。

合作

VS Code:基于插件的实时分享

虽然VS Code本身没有内置的实时共享功能,但是微软为其开发了一个具有此功能的插件。 除此之外,现在甚至可以通过使用浏览器直接访问 .dev 来实时共享。 这种多样化的需求正是 VS Code 如此受欢迎的原因。 只要有良好的网络环境,实时分享的体验就会很棒。

在实时共享的过程中,人们可以像面对面一样一起工作。 同时,在源代码控制方面,VS Code也会时刻追踪那些帮助作者提交代码的人。 这些让我们看到在 VS Code 中启用实时共享是多么容易。 因此,在我看来,VS Code 在实时共享能力方面比市场上任何其他 IDE 和编辑器都要好。

不过,在使用VS Code的实时分享功能时,还是有一些需要注意的地方。 下面我将举一个在Vue.js项目中使用实时分享功能的例子。 实时共享Vue代码时,包括Vetur(Vetur是Vue可视化的重要插件)在内的一些插件将不会被共享。 这种缺点常常给人们带来麻烦和恼怒。 幸运的是,此类缺陷只会影响某些用户(在本例中,只会影响 Vue 用户)。

另外,我最讨厌的是,在实时共享中,undo功能实际上是绑定到机器上的,而不是当前用户,这导致我的undo功能在本地和远程之间混淆。

:安全、分布式

所有生态IDE都提供了很多代码共享和在线协作的设置。 这些设置根据不同的安全级别而有所不同。 我最近发现的一个令人印象深刻的功能是,通过(投影)技术,我可以在容器中运行任何 IDE。 这使我能够连接到在云服务上运行的 IDE,并在浏览器中使用完整的 IDE。 IDE 的功能用于编码。 现在,我可以随时随地使用一个密码并使用一项服务安全地进行编码。 这只是众多共享配置之一。

在所有IDE中,通过Code With Me实时共享是主流方式。 这种方法可以让你直接在本地IDE中查看别人的项目。 同时,你也可以使用别人的开发环境来运行项目,就像使用你本地的开发环境一样。 令人印象深刻的场景是我的一名团队成员遇到了问题。 他通过 Code With Me 向我发起了实时代码共享。 通过这次分享,我可以在自己的IDE中像在本地一样使用它了。 经过调试他的配置和代码,我很轻松地帮他解决了这个问题。

令人惊讶的是,各种不同的共享 IDE 解决方案在尝试提高安全性、协作或分布式团队的协作方式方面表现得多么出色。

能力对比

两年前,我可能会认为实时共享功能无关紧要。 事实上,两年前我什至不知道 IDE 中存在代码协作功能。 因为两年前,当我们需要一起工作时,我们不会通过IDE发起远程协作,而是直接坐在同一台机器前。 但现在由于新冠疫情的影响,这种面对面的协同工作不再是一种奢侈,而且变得异常困难。

正因为如此,这两个 IDE 都为实时代码共享提供了强大的支持。 但是,由于 VS Code 中的撤消功能存在问题,我强烈推荐它。 此外,对视频和音频通话的支持以及在用户之间跟踪 Git 的能力也同样重要。

总结

除了上面列出的5个比较之外,我还知道,相对于完全免费的VS Code,非学生用户需要收取一定的费用,这可能是很多人不考虑的原因之一。

不过,对于我来说,在使用Eco的几个月里,它给了我非常好的体验。 而且,我迫不及待地想在工作中更多地使用它们。

所以我希望你能考虑一下,即使要花一些钱。

人生苦短,我用它

【神秘礼包如何获得】

标签: ide 程序调试 重构

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码