小白编程手记丨学习编程需要了解的术语词汇(1)

258 阅读18分钟

学习编程需要了解的术语词汇

image.png

前言

在刚学编程之时,有很多概念是不理解的,导致自己后端学得非常糟糕,经常学了又忘,多年“刻苦”学习下来,还是一个小白。
这两天收集了很多术语词汇以及它们解释说明,突然间有种快要打通任督二脉的感觉,以前很讨厌抽象概念的东西,现在越发觉得是个宝贝,如果认真去研究理解,结合融入日常生活,或许就会少走很多弯路,也不必靠死记硬背,痛苦编程。

文中一些示例仅为小编个人观点与想法,非标准答案,这里仁者见仁,智者见智。
✿ 小字是补充说明,可能在概念表达上有诸多重复,个人觉得不同叙述、不断重复可以加深印象、增进理解,觉得啰嗦可以省略只看大字。

开发环境与工具

- SDK -

构建软件的基本零件或模块。
提供了开发特定应用程序所需的资源和接口。
✿ SDK的英文全称:Software Development Kit,即软件开发工具包。
✿ 这个术语指的是一组软件开发工具和资源的集合,旨在帮助软件开发者创建、测试、部署和管理应用程序。
✿ SDK通常包括库文件、软件框架、开发工具、文档、示例代码、API(应用程序编程接口)等。
✿ SDK为开发者提供一个高效、标准化的开发环境。

- API -

允许不同软件组件之间通信的标准。
软件间的“接头”,让不同软件能“沟通交流”。
✿ API的英文全称:Application Programming Interface,即应用程序编程接口。
✿ API是一组预先定义的函数、协议或规范,它定义了软件应用程序或系统之间如何相互通信和交互。
✿ API是不同软件或服务之间的“桥梁”,允许它们交换数据、调用功能和服务。
✿ API和应用程序,就像插座电源与电器插头的关系。API定义了如何连接和通信的规则,就像不同电器有统一的插头标准(API规范协议)。
✿ 开发人员使用API可以快速集成外部服务,节省时间,提高效率。

- 运行时环境 -

是软件在执行过程中所需的一系列配置和资源。
程序运行需要的“舞台”和“道具”。
✿ 运行时环境的英文:Runtime Environment
✿ 运行时环境是程序执行时所需的一组软件组件和设置,为程序提供了一个稳定的执行平台,以确保软件能够正确执行并完成其功能。
✿ 运行时环境为软件提供了运行所需的硬件和软件支持,包括了操作系统、处理器、内存、程序运行所需的库文件、框架、解释器或虚拟机等。
✿ 操作系统是运行时环境的核心,负责管理和协调其他资源,如CPU、内存和磁盘空间。
✿ 除了基础资源外,运行时环境还提供了一系列服务,如内存管理、错误处理、设备访问等,以提高软件的性能和可靠性。
✿ 根据所支持的语言和平台,运行时环境可分为多种类型,如JRE是专为Java语言设计的Java运行时环境。

- IDE -

集成多种功能于一体的开发环境。
IDE是编程工具集合。
就像是编程界的“全能工具箱”,里面包含了编程所需的各种“工具”,让程序员能够更轻松地编写和调试代码。
✿ IDE的英文全称:Integrated Development Environment,即集成开发环境
✿ IDE是一种软件应用程序,为程序员提供了一体化的开发环境,包括代码编辑器、编译器、调试器和图形用户界面工具等。
✿ IDE旨在提高软件开发的效率和便利性,使程序员能够在单一界面中完成代码编写、分析、编译和调试等任务。
✿ IDE通常包含功能:(代码)编辑器、编译器/解释器、调试器、项目管理、版本控制、用户界面设计器等等。
✿ 常见开发IDE工具:Visual Studio (Code), Eclipse, Sublime Text, WebStorm, IntelliJ IDEA, PyCharm, Android Studio...
✿ 开发者使用IDE来编写和测试代码,而程序的最终执行却需要依赖运行时环境,有些IDE会提供内置的运行时环境,如Visual Studio,而有些IDE则需要单独单独安装运行时环境,如Eclipse。

- 编辑器 -

用于编写和修改源代码的工具。
写代码的文字处理器。
✿ 编辑器的英文:Editor
✿ 编辑器是程序员用来编写和修改代码或文本文件的工具
✿ 编辑器有智能提示功能。它提供了语法高亮、代码补全、错误检查等功能,以提高编程的效率和准确性
✿ 编辑器一般会集成在IDE中,和其他代码工具协同工作。

- 编译器 -

将高级语言转换为机器语言的程序。。
把开发者所写的可读代码变成计算机能懂的代码的工具。
编译器就像是编程语言的“翻译官”,把程序员写的“外语”翻译成计算机能听懂的“母语”。
✿ 编译器的英文:Compiler。也称为解释器。
✿ 编译器是一种计算机程序,它的主要任务是将用高级编程语言(如C、C++、Java等)编写的源代码转换成计算机可以直接执行的机器语言代码
✿ 从 编程语言(高级编程语言、可读语言、源语言) 到 目标语言(低级编程语言、可执行语言、机器语言、汇编语言)
✿ 编译器会进行语法分析、优化等步骤,以确保生成的代码既正确又高效。

- 调试器 -

帮助开发者找到并修复代码中错误的工具。
调试器就像是程序中的“侦探”,帮助程序员找到并修复代码中的“bug”。
✿ 调试器的英文:Debugger。也称为调试工具。
✿ 调试器是一种用于检测和修正程序中错误、异常、缺陷的工具。 ✿ 调试器允许程序员逐步执行代码,观察变量值的变化,设置断点等,便更好地理解程序的运行状态和定位问题所在,找到并修复问题。

- 版本控制系统 -

用于追踪和管理源代码变更历史的工具。
版本控制记录代码的历史修改变化,如同保存一个“快照”。 根据这些快照,程序员能够随时回到过去的某个版本,就如同坐上代码的“时光机/时间机器”。此外,也可以看到其他开发者对代码的修改,比较不同版本之间的差异。
✿ 版本控制系统的英文:Version Control System
✿ 版本控制系统是一种用于管理文件或代码变化的软件工具,它追踪文件或代码的修改历史,保存每个版本的快照,便于用户在不同版本之间切换、合并、回滚、比较,以及多人协作开发。
✿ 常见的版本控制工具有:Git、SVN、Mercurial等
✿ Git是一种分布式版本控制系统,用于跟踪和管理代码的变化。

- CLI -

通过文本命令与计算机交互的界面。
这是与电脑对话的“老式打字机”,你只能通过键盘上的按键输入文字或指令,以便告诉电脑做什么,虽然不直观,但很强大。
✿ CLI的英文全称:Command-Line Interface,即命令行界面。
✿ 用户可以通过命令行与软件交互。
✿ CLI通过键盘输入命令与计算机交互的界面,它不支持鼠标操作,用户通过键入指令来执行各种操作。
✿ 虽然CLI没有图形界面那么直观和友好,但对于熟悉命令的用户来说,CLI可以让他们更快速、更准确地完成各种操作。
✿ CLI广泛应用于各种设备和系统中,如路由器、服务器、操作系统等。
✿ CLI具有高效、灵活、可定制等优点,尤其适合需要大量配置或自动化操作的场景。

- GUI -

图形用户界面,提供图形化的操作界面。
这是电脑上的“图形菜单”,你可以通过点击图标、按钮来操作电脑。
当你使用智能手机时,屏幕上显示的图标、按钮和文本框等就是GUI的一部分。你可以通过点击图标来打开应用程序,通过输入文字来搜索信息或发送消息。这些操作都是通过GUI来实现的,它让智能手机的使用变得更加简单和直观。
✿ GUI的英文全称:Graphical User Interface,即图形用户界面
✿ 通过图形元素与用户交互的界面。
✿ GUI通常包括窗口、菜单、图标、按钮、文本框等视觉元素,它简化了用户的操作过程,使得用户可以通过图标、按钮等视觉元素来执行各种操作。
✿ GUI已经成为软件界面的主流。许多操作系统(如Windows、macOS、Linux等)和应用程序都提供了丰富的GUI功能,使得用户可以更加方便地与计算机进行交互。
✿ GUI广泛应用于各种电子设备和软件中,如智能手机、计算机、平板电脑等。

- CI/CD -

自动化代码的集成、测试和部署过程。
这是软件开发中的“自动化流水线”,它会自动检查你的代码是否有问题,然后帮你把好的代码送到用户那里,让软件开发更快、更稳。
✿ CI/CD的英文全称:Continuous Integration / Continuous Deployment,即持续集成/持续部署。
✿ 通常,每当开发人员提交了新的代码变更,就会触发一系列自动化的构建和测试过程,以快速检测潜在的问题和错误,确保新代码与现有的代码库能够正确集成。
✿ CI-持续集成:开发者频繁地将代码变更合并到主分支(共享仓库)。每次合并都触发自动化构建和测试,以确保代码的集成不会引入错误。
✿ CD-持续部署:在代码通过所有自动化测试后,自动将其部署到生产环境或其他环境,以供客户使用。这通常需要配置自动化工具来管理部署过程。
✿ CD也有持续交付Continuous Delivery)之意,和持续部署共用缩写。持续交付是持续集成的扩展延伸。 持续交付将经过测试和验证的代码自动发布到一个可部署的环境中,如测试环境或预生产环境,以确保软件可以快速、可靠地交付到用户手中,进一步响应市场或用户的需求变化。简单来说,持续交付的主要目标是使软件产品可以随时发布到生产环境。
✿ 持续交付是一种软件开发的方法论,而CI/CD是实现持续交付的自动化工具和实践。通过CI/CD,团队可以持续地集成和部署代码变更,从而实现快速、频繁的软件交付。

编程组件与技术

- 对象 -

对现实世界中事物的抽象表示。
对象就像一个盒子,盒子装着一些人或物的资料信息,比如特征(即属性),或技能(即方法)。
简单来说,“对象”就是具有属性和行为的东西。
✿ 对象的英文:Object
✿ 对象是现实世界实体的抽象表示。它由数据(称为属性或字段)以及操作这些数据的方法组成。
✿ 对象是面向对象编程的基本单元与核心概念,它包含了状态(属性)和行为(方法),是类的一个实例,类定义了对象的数据类型和行为。
✿ 对象的特点是:封装(将数据和操作数据的方法捆绑在一起)、继承(从其他对象继承其特性)、多态(对象可以表现出多种形态)

- 函数 -

用于执行特定任务的可重用代码。
函数就像是一个“小助手”,接受你的指令去完成一些特定的任务。
函数也可以想象成一个“魔法咒语/指令”,当念出这个咒语或发出这个指令时,就会按照已设定好的规则,产生特定的功能与效果。
✿ 函数的英文:Function。函数也可以称为方法。
✿ 函数是一段封装好的、可重复使用的代码块,它用于执行特定的任务或计算。函数可以接受输入(称为参数),执行一系列操作,并可能返回输出(称为返回值)。函数是编程中组织代码的基本方式之一,它有助于减少代码重复,提高代码的可读性和可维护性。
✿ 函数是特殊的对象,是复杂的对象,是可执行的对象,对象的方法实际就是函数。

- 类 -

用来创建对象的模板或蓝图。
就像是一个模具,可以用这个模具制造出很多相似的对象,每个对象都可以有自己的属性和方法。
类就像是书的模板,类定义了一本书的格式和内容结构,但实际的内容会因书(目的、功能作用)而异。
类就像食谱定义了一道菜的做法,类是食谱,对象是已做成的菜。
✿ 类的英文:Class
✿ 类面向对象编程中的一个模板,是基本构建块,是用户定义的数据类型,用于创建对象,它封装了数据(属性)和操作数据的方法(行为)。
✿ 类定义了对象的结构和行为,它包含数据字段(属性)和方法(函数),它可以继承(复用代码)自其他类,并可以实现接口(抽象的规范与方法)。

- 组件 -

可重用的代码块,具有特定功能。
组件就像是积木块,它有特定的形状和功能,你可以把它放在不同的地方,和其他积木组合起来搭建不同的场景。就比如窗户组件,放在哪个位置都是窗户,而应用软件中的按钮组件,放在任何地方都是具有点击功能的按钮。
✿ 组件的英文:Component。
✿ 组件是封装了特定功能的可重用代码块,并对外提供接口。
✿ 组件可以是简单的对象、模块,如UI组件中的图形界面的按钮、输入框。也可以是更复杂的系统,充当业务逻辑的一部分,如Web组件、GUI组件等。再或者,任何可重用的软件片段也可以泛称为组件。
✿ 组件是程序中执行特定任务的部分,是可复用的软件单元(独立性),组件的设计强调高内聚低耦合,便于在不同的应用程序中重用(重用性),组件也可以被替换。
✿ 组件可以由多个类组成,也可以包含其他组件,或者作为一个独立的部分嵌入到更大的程序中。

- 模块 -

包含相关功能的代码文件。
就像是一个大盒子,里面装了很多小工具(功能),每个工具专门完成某项任务。你可以把多个模块组合起来,形成一个完整的软件。每个模块都负责一个相对独立的功能,比如一个登录模块,它只负责处理用户的登录逻辑。
✿ 模块的英文:Module。
✿ 模块是程序中相对独立的单元,包含相关功能的代码文件,通常是一组相关的函数、类和数据。
✿ 模块有助于组织代码,使其更易于理解和维护(高内聚低耦合)。模块可以是编程语言中的内置模块,也可以是用户自定义的。
✿ 模块与组件的区别在于,模块侧重对功能逻辑的封装与分类和代码的组织与复用,而组件则侧重于可视化和交互性,有明确的功能和外观。
✿ 模块可以包含多个类和组件,也可以被导入到其他模块或程序中使用。

- 插件 -

用于扩展现有软件功能的独立模块。
插件就像游戏里各种各样的装备,角色佩戴特定的装备会有产生特定的效果。
浏览器有各种各样的插件,比如广告拦截的插件、翻译插件、标签管理插件等等,可以根据需要选择将其安装在浏览器上,让浏览器有更多功能操作,方便我们日常或工作所需,同时,在不需要的时候,我们也可以选择停用或卸载这个插件。
✿插件的英文:Plugin。
✿ 插件通常是一个独立的模块,可以动态加载到程序(宿主)中的模块里,用于扩展程序的功能或增加新的特性,并且不会修改原有程序(软件、系统)的源代码,通常会遵循程序定义的特定接口或协议,以便实现集成于宿主程序中进行交互。
✿ 插件机制使得软件系统更加灵活和可扩展。

- 库 -

代码和资源的集合,提供通用功能和服务。
库可以理解为一个超市,里面摆满了各种各样的商品,当我们炒菜的时候缺少了调味料,便可以去超市里购买回来使用。
库,直白点理解,就是仓库,用来存储所需的物品资源,就如在github或gitee中的项目通常会被称为是一个仓库,指的就是存放代码的地方,和编程里的库一样,都是一组代码的集合,只不过在功能目的会有些差异,英文上github的仓库用Repository(仓库)来表示,有存储之意,代表一个完整的项目集合,不止包括代码,还有项目历史版本等,而编程里的库用Library(图书馆)来表示,词根libr有收藏之意,图书馆里的书都有着特定功能与目的。
✿ 库的英文:Library
✿ 库是一组特定功能(预先编译好的程序代码和资源)的集合,通常被封装在一个或多个文件中,以便其他程序或模块的共享与重用(代码复用机制),库可以是静态的(在编译时链接),也可以是动态的(在运行时加载)。
✿ 库可以包含相关的函数、类、数据结构或模块等,它们提供了实现特定功能或服务的通用方法,例如图像处理库、数学库,从而减少了重复编码的需要。
✿ 库通常是由多个包和模块组成的,可以被多个项目引用,库也可以用来开发插件。

- 包 -

管理模块命名空间,组织多个模块的方式。
包就像是电脑桌面的文件夹,用来整理和管理不同的文件,它本身不执行任何功能,只负责管理文件,假如有些文件的名字相同,放在一块就会产生冲突,而创建文件夹去将它们分开存放,就不必修改文件名字,也能根据文件夹名去定位到相同名字的不同文件。
✿ 包的英文:Package。
✿ 包是一种将多个模块(或库)组织在一起的容器/方式,通常用于分发和重用代码,也可以帮助管理项目的文件结构,并控制哪些模块对外可见。包通常包含了源代码、资源文件、编译后的代码等,但并非绝对,取决于用户的自定义。
✿ 包通常是一组模块的集合,它们共同实现了某个特定的功能或提供了某种服务。包有助于将相关的模块组织在一起,避免命名冲突,并促进代码的重用。在很多编程语言中,包还包含了代码的文件系统表示(如目录和文件)。

- 框架 -

用于构建程序,预先定义好的基础开发架构。
在建造一栋房子的时候,我们需要打好地基,然后搭建支柱与横梁,铺设地板,这些都是建筑主体框架,如果没有这些框架,房子就容易倒塌,而编程也一样,在做一个项目的时候,特别是较大、较复杂的程序软件,初期若是搭建好项目代码的框架,就会使这个项目更健壮、可读可维护,不容易崩溃。 ✿ 英文:Framework。
✿ 框架是一种预先定义好的软件架构(应用的整体结构),通常包含大量的库(工具集)和模块(编程接口),以及定义了一些用于指导开发的通用解决方案与最佳实践,以便于快速构建应用程序。
✿ 框架规定了应用程序的体系结构,并提供了许多默认的实现,但同时,也允许开发者根据所需覆盖或扩展这些实现。使用框架可以大大加快应用程序的开发速度,并降低开发难度。