Visual Studio Code & Python教程1简介

1简介

Visual Studio Code 是一款开源代码编辑器,可免费使用,完全支持Python编程语言的开发。它具有一些有用的功能,例如与世界各地的其他程序员进行实时协作。本章旨在介绍VS Code,帮助您了解其开发过程及其不同组件。我们将讨论为什么它可能是最受欢迎的代码编辑器,了解它的功能,并讨论VS Code的不同组件。我们将探讨 VS Code的架构,以了解它为何是满足软件开发需求的完美工具,以及开发人员如何快速执行代码-构建-调试循环,并将更复杂的工作流程留给WingIDE、Pycharm或Visual Studio IDE等功能更全面的集成开发环境。

1.1 为什么使用VS Code?

Visual Studio Code是迄今为止最好的代码编辑器。根据官方文档,VS Code 供了令人愉悦的"编辑-构建-调试"循环,这意味着你可以花更少的时间摆弄你的环境,花更多的时间执行你的想法。就用户数量而言,VS Code拥有最大的用户群。JetBrains 与 Python 软件基金会共同开展了一项 Python开发人员调查,其中向受访者提出了一个问题:"您目前在Python开发中使用的主要编辑器是什么?超过23000名Python开发人员回答了这个问题。约35%的受访者选择了VS Code。网络开发人员对PyCharm和VS Code的偏好几乎相同(约 39%),但数据科学家更喜欢将VS Code作为他们的主要编辑器。

根据Visual Studio Magazine 2022年7 月发布的一份报告,Visual Studio Code的Python扩展已安装超过6000万次,是迄今为止安装次数最多的。Jupyter有(4080万)、Pylance(3350万)和Jupyter Keymap(2340万),这些扩展(也与Python有关)分别占据第二、第三和第五位。Visual Studio Code、GitHub、Codespaces 和 Azure Machine Learning 一直在大力投资于工具和平台,以使Python数据科学家的生活更加轻松。

受欢迎的原因:

  • 免费开源(采用 MIT 许可)的跨平台应用程序。
  • 易于使用。
  • 轻便、快速但功能强大的源代码编辑器。
  • 可以与脚本工具集成,执行开发日常工作流程等常见任务。
  • 内置了 IntelliSense 代码自动补全、代码重构、参数提示、多光标编辑和丰富的语义代码理解等工具支持,使编程更上一层楼。例如,如果用户在程序中使用某个变量前忘记声明,Intelli-sense 就会声明该变量。示例截图如图所示

Visual Studio Code还集成了交互式调试器,可帮助逐步检查代码、检查变量值和查看调用堆栈。它还可以在控制台中执行命令。

  • 跨平台:适用于 Windows、macOS 和 Linux。以前,编辑器只支持 Windows、Linux 或 Mac 中的一种操作系统。

  • 可以完全自定义,以满足任何开发人员的偏好和项目要求。

  • 社区的大力支持和大量的扩展功能。因此,如果程序员找不到特定编程语言的支持,他们可以轻松下载扩展程序并继续工作。

它内置了对 JavaScript、TypeScript 和 Node.js 等网络编程语言的支持。它还拥有一个生态系统,可扩展多种其他语言和运行时,如 C++、C#、Java、Python、PHP、Go 和 .NET。这些只是支持的 30 多种语言中的一小部分。这还有另一个好处:VS Code 可以轻松检测跨语言引用中是否存在任何错误。

通过各种设置:语言、用户和工作区,VS Code 可以根据任何人的喜好进行配置。VS Code 提供了多个设置范围,使我们能够修改代码编辑器、用户界面和功能行为的几乎所有部分。

  • 为计算机程序员提供了全面的便利,让他们能即时提高工作效率,比如语法高亮显示、括号匹配、自动缩进、框选、片段等功能。

  • 支持 Git,这意味着程序员无需离开编辑器即可使用源控制功能,甚至可以查看待处理的更改差异。

  • 支持多个项目。可以同时打开包含多个文件/文件夹的项目。这些项目或文件夹甚至可以互不相关。

  • 提供了一个内置终端/控制台,因此用户无需在 VS Code 和命令提示符或终端之间切换。

  • 由于支持多种语言,它深受前端和后端开发人员的喜爱。此外,还提供常用的放大、缩小、亮度和主题选择功能。

  • 每月更新一次,提供新功能和错误修复。

1.2 VS Code简介

VS Code 使用 Electron Framework 开发,由微软开源,旨在为微软的 Visual Studio(一个复杂、功能齐全的集成开发环境)提供一个轻量级的替代方案。 集成开发环境与代码编辑器之间存在差异。集成开发环境是功能强大、自成一体的软件,旨在让编程变得更容易。集成开发环境的所有工具都集成在一起。另一方面,代码编辑器是一种文本编辑器,具有强大的内置功能。集成开发环境本身也内置了代码编辑器,开发人员可以在其中编写代码。VS Code 的源代码采用 MIT 许可,维护在 GitHub 上的 VS Code 代码库中。之所以附加商业许可证,是因为它有一小部分微软特定的定制功能。由于它是开源的,开发者可以通过添加问题或从 GitHub 位置提出拉取请求来改进 VS Code。Electron 的开源框架由 GitHub 维护,旨在使用 HTML、Javascript 和 CSS 等网络技术开发基于桌面的应用程序。

参考资料

1.3 VS Code上下文视图

系统上下文图是一个块图或工程图,它定义了系统及其环境的边界,并表示与系统交互的所有外部实体。这提供了对系统的高层次理解。创建和理解系统上下文图的目的是理解和关注在开发整个系统时所考虑的外部组件和事件

VS Code 项目使用 Electron 框架构建。该框架使用 HTML、Javascript、CSS 和 TypeScript 等编程语言,并为不同的操作系统构建安装程序。然后,VS Code 网站会分发这三种操作系统的安装程序。VS Code 网站还提供文档(Docs)、新版本更新(Updates)、VS Code 社区讨论(Blog)、API 相关文档(API)和可用扩展列表(Extensions)。使用扩展还有助于个性化 VS Code 编辑器,例如,为编辑器选择自己喜欢的字体类型和大小。

GitHub 提供基于云的 Git 仓库,可提供软件开发和版本控制服务。VS Code 的代码和问题/错误由 GitHub 上的开发人员管理和跟踪,并通过社区贡献来解决。维基包含项目结构、如何贡献代码以及各种资源链接等信息。

上下文图中接下来是主要的利益相关者。微软开发了 VS 代码。开发人员负责添加新功能或修复社区发现的错误。Atom、Vim、Emacs 和 Sublime Text 是其中一些被视为竞争对手的编辑器,因为这些编辑器也是用于开发应用程序的轻量级文本编辑器。我们不认为 Visual Studio、Pycharm 或 IntelliJ 等集成开发环境是竞争对手,因为它们比代码编辑器更复杂。

1.4 VS Code开发视图

开发或实施视图是从程序员的角度来说明软件系统的,与软件管理有关。在本节中,我们将了解架构和软件开发流程、代码结构以及设计和测试的执行方式。

VS Code 有一个分层和模块化的核心(文件夹位置在 github: 这些都可以通过使用扩展进行扩展。扩展程序运行在一个称为扩展主机的独立进程中,并通过使用扩展 API 来实现。内置扩展可在 extensions 文件夹中找到。六个核心层共同作用,使 VS Code 成为一个功能强大的编辑器。这些层如图所示

该文件夹包含用户界面构建模块和通用工具,任何其他层都可以使用。除其他外,这种通用环境方法提供了处理错误、处理事件和做其他网络相关事情的结构。在通用环境中,代码的范围很广,从减少代码重复的简单函数(如返回对象的哈希值)到处理异步进程的复杂代码。它还具有其他功能,例如

  • 读取配置文件、处理加密校验和、字符编码和解码、
  • 用于目录和文件操作的操作系统功能,以及与网络交互的网络处理。

该层定义了服务注入支持和跨层共享的 VS Code 基础服务,不包括特定于编辑器或工作台的代码或服务。VS Code 项目所围绕的大多数服务都在平台层中定义。平台层建立在基础层之上,创建实例,并为几乎所有服务注册服务。所有扩展都是通过平台层实例化和注册的。工作台层建立在平台层之上,它初始化了更多平台不处理的细节,如 CSS。

现在,我们知道 VS Code 有一个高生产力的代码编辑器,它既有集成开发环境的强大功能,又有文本编辑器的高效率。现在,让我们看看这一切是如何实现的!VS Code 编辑器背后的力量是 Monaco 编辑器。Monaco 最初是微软瑞士实验室的一个项目,是构建在线开发工具计划的一部分。它使用 TypeScript 构建,于 2013 年推出。Monaco 编辑器的第一份工作是作为 Azure 的网站编辑工具,它还被用作 Office 365 扩展开发网站的编辑器。编辑器层可处理从不同语言的语法高亮到用户输入(如复制、粘贴和选择文本)等一切事务。控制器可以使用编辑器层中定义的服务来获取某些数据。其中一个服务是 TextMate,它可以解释语法文件以突出显示文本。编辑器层的最后一部分是贡献。贡献扩展了隐藏和取消隐藏(屏蔽)注释、代码缩进和使用链接等功能。

它包含Monaco编辑器和代码笔记本。它还为资源管理器、状态栏或菜单栏等面板提供框架。它利用 Electron 框架实现了 VS Code 桌面应用程序和 VS Code 网络浏览器 API。工作台的实际图形用户界面是通过电子浏览器环境实现的。当主组件启动工作台时,首先调用外壳组件。外壳组件有五个组成部分,构成了实际的工作台:

  • 工作台崩溃时处理工作台。
  • 保存工作台的设置。
  • 处理工作台中可使用的不同按键绑定。
  • 处理工作台中安装的各种扩展。
  • 处理工作台中的各种操作,如放大/缩小、切换窗口和打开新窗口。
  • 将 Electron 主文件、共享进程和 CLI 整合在一起,形成桌面应用程序的入口点。这也是远程开发服务器应用程序的入口。

扩展程序使用扩展程序接口(extension API),并在称为扩展程序主机(extension host)的独立进程中运行。在每一层中,VS Code 都按照目标运行时环境进行组织,以确保只使用特定于运行时的 API。VS Code 项目有以下目标环境:

  • 只需要基本 JavaScript API 并在所有其他目标环境中运行的源代码
  • 需要浏览器 API 的源代码
  • 需要 Nodejs API 的源代码
  • 需要 Electron 渲染器进程 API 的源代码
  • 需要 Electron 主进程 API 的源代码

这种分层方法有很多优点。将服务注入 VS 代码变得容易。

1.5 标准化

VS Code 拥有一个庞大而充满活力的开发人员社区,可以帮助查找和解决软件错误。如果不遵循标准的编码和测试流程,代码库的管理将变得一团糟。在本节中,我们将简要介绍贡献者如何建议新功能、提交错误细节、构建扩展、评论新想法或提交拉取请求。

但在成为贡献者之前,你需要非常了解标准。VS Code 有一个维基,开发人员可以在其中找到有关代码库的信息以及如何使用源代码的说明。维基上列出了如何贡献的详细说明和编码指南。它规定了如何编写代码,以保持每个文件的可读性和可维护性。

Visual Studio Code 使用称为 "linters "的工具来执行编码指南。这些工具都有配置文件,并设置在 VS Code 的 Git 根目录下。通过在Visual Studio Code中安装这些linters作为扩展,开发人员可以在编辑器中看到可视化的错误和其他信息。

Visual Studio 代码通过 JavaScript 测试框架 Mocha 进行测试。每次发布前都会进行烟雾测试。进行烟雾测试是为了确保所有主要功能都能按预期运行。VS Code 在 GitHub 上使用 Travis CI 和 Appveyor 进行持续集成。Travis CI 用于测试 Linux 和 Mac OS 的构建,而 AppVeyor 则在 Windows 上运行构建测试。

1.6 技术债务

技术债务(Technical Debt),在软件工程领域也称为设计债务或代码债务,是一个概念,它显示并反映了软件开发人员选择有限或简单的开发工作来解决某个问题,而不是使用需要更长时间、可能会推迟发布的更好方法所造成的额外开发工作。技术债务也可能源于编程语法不当,导致代码可读性差,日后维护困难。技术债务 "一词是由软件开发人员沃德-坎宁安(Ward Cunningham)创造的,他是《敏捷宣言》的 17 位作者之一,创建了第一个维基站点。他首次使用技术债务隐喻来向 WyCash 的非技术利益相关者解释为什么他们应该投入资源进行代码重构,以改进现有代码并添加新功能。

VS Code 有多种扩展供用户使用,以捕捉不良代码,管理和减少技术债务。这些扩展可以按需安装。一些有助于实现更好、更高效代码的扩展包括 Stepsize、TODO Highlight、SonarLint 和 Code Runner。林特(或简称林特)的名称来源于一个最初为管理 C 语言源代码而编写的 Unix 工具,它是一种静态代码分析工具。林特尔会突出显示编程错误、错误、编码标准错误和可能的构造错误。在 Linters 中,命名约定、类型转换和代码风格的规则都是为了确保贡献者不会增加技术债务而编写的。如果开发人员将代码推送到 VS Code GitHub,但没有安装 linters,那么他们会收到预提交检查的通知。如果这些预提交检查失败,就必须先修复一些技术债务,然后才能提交和推送所需的贡献。

1.7 VS Code: 功能视图

VS Code 的功能视图定义了增加功能的架构元素。它讲述了 VS Code 能做什么,不能做什么。

模块被分为不同的层,即基础层和通用层,以尽量减少共享资源的使用。Visual Studio Code 以 Worker 的形式使用异步处理。Worker 可用于在后台运行所需的进程,这些进程不会影响 Visual Studio Code 当前页面的性能。这些策略以及 Visual Studio Code 中提供的各种扩展和自定义选项,可以大大提高你的编码体验和工作效率。

1.8 VS Code 与 Visual Studio

Visual Studio Code 和 Visual Studio 都是微软公司生产的产品,名字听起来很像,但相似之处仅此而已。它们具有不同的功能和用途。我们已经看到,Visual Studio 是一个功能齐全的集成开发环境,拥有许多深受全球数百万开发者喜爱的功能。但事实证明,VS Code 是 Visual Studio 的强劲竞争对手。让我们详细了解一下何时使用 VS Code,何时使用 Visual Studio。

Visual Studio借助微软的软件开发平台,即Windows API、Windows Presentation Foundation、Windows Forms、Microsoft Silverlight和Windows Store,帮助开发桌面应用程序、网络应用程序、网络服务和移动应用程序。它们有助于生成和管理代码。VS Code 用于在一个编辑器中编写、编辑和调试代码,无需任何网络支持。所需的一切都是内置的。

要使用 Visual Studio 开发程序,开发人员无需安装任何特殊软件。VS Code 的功能非常强大,但在实现其优势之前,你需要了解需要安装的正确工具。

在许可证费用方面,VS Code 胜出一筹。VS Code 是免费的,而 Visual Code 每月的费用约为 45 美元。详细价格请参阅 Visual Studio 网站。

Visual Studio 适用于 Windows 和 macOS,但不适用于 Linux 平台,而 VS Code 适用于所有三个平台。

让我们看看在哪些情况下可以使用 Visual Studio:

  • 由于 Visual Studio 功能丰富,开发人员无需安装扩展或插件。因此,当你不想一直寻找合适的插件时,就可以选择 Visual Studio 作为集成开发环境。

  • Visual Studio 提供了合适的协作平台,整个团队都可以在这里一起调试代码;协作超级顺畅。

  • 对于繁重的代码分析,Visual Studio 无可匹敌。它拥有令人难以置信的调试和性能分析选项。

  • 游戏开发、增强现实/虚拟现实行业更喜欢 Visual Studio,因为它们可以毫不费力地构建跨平台应用程序。多平台环境 UNITY 已与 Visual Studio 集成。

现在,让我们看看在哪些情况下应该首选 Visual Studio Code:

  • VS Code 是一种轻量级应用程序,不需要很大的计算能力或硬盘空间。
  • 与 Visual Studio 相比,VS Code 运行速度更快。
  • VS Code 生成的代码非常灵活,可以轻松移动到其他平台。
  • Visual Studio Code 是网络开发的第一选择。
posted @ 2024-03-29 16:42  磁石空杯  阅读(90)  评论(0编辑  收藏  举报