Coursera 笔记

Module 02 · Introduction to Software Development

More Application Development Tools更多应用开发工具

Coursera ↗

在本视频中,我们将探讨一些帮助您构建和部署应用的工具,包括:

  • CI/CD
  • 构建工具(Build Tools)
  • 软件包(Packages)
  • 软件包管理器(Package Managers)

这些工具在应用开发的各个阶段都至关重要,帮助开发者高效地管理代码、进行自动化构建和部署。


CI/CD(持续集成与持续交付/部署)

CI/CD 是指 持续集成(Continuous Integration) 和 持续交付(Continuous Delivery) 或 持续部署(Continuous Deployment) 的实践。CI/CD 是 DevOps 团队的最佳实践,帮助开发者可靠地交付频繁的代码变更。

持续集成(CI):

  • CI 通过构建自动化服务器实现,确保所有代码组件能顺利协同工作。
  • CI 环境要求开发者至少每天一次集成新代码,甚至可以更频繁,具体取决于项目的变化频率。

持续交付(CD):

  • CD 紧随 CI 之后,CI 过程自动构建并测试代码,CD 会将所有代码变更部署到 测试环境 或 预生产环境。

持续部署(CD):

  • 当 CI/CD 实现了自动化流程,代码将被直接部署到生产环境,通常用于高度自动化的应用程序。


构建工具(Build Tools)

构建工具 将源代码转换为安装所需的二进制文件。它们负责整理源代码、设置编译标志、管理依赖项等,尤其适用于多个开发者在复杂项目中的协作。

构建工具的功能

  • 自动化常规任务:如下载依赖项、编译源代码、打包二进制文件、运行测试以及部署生产环境。

常见的构建工具

工具 描述
Webpack 用于 JavaScript 模块打包的工具。
Babel JavaScript 编译器,用于将现代 JavaScript 转换为兼容版本。
WebAssembly 一种二进制指令格式,用于浏览器中运行高效的代码。

构建工具分类

  1. 构建自动化工具:生成构建工件(如可执行文件),通过编译和链接源代码。
  2. 构建自动化服务器:按计划或触发机制执行构建自动化工具。

构建自动化的优势

  • 使得多个开发者能高效协作,确保各个组件的依赖关系得到有效管理,避免出错。


软件包(Packages)

在应用开发和部署过程中,软件包 是一个常见的概念,它将应用的所有必要文件和安装说明打包成一个归档文件,方便分发和安装。

软件包的特点

  • 包含应用的文件、安装说明和元数据(如版本号、依赖项等)。
  • 方便用户安装、更新和卸载。

软件包的组成

  • 元数据:包括软件包描述、版本、依赖项等。
  • 依赖项:有些包在安装时需要其他软件包的支持。


软件包管理器(Package Managers)

软件包管理器 是一种用于管理软件包的工具,它能够帮助开发者查找、安装、维护或卸载软件包。

软件包管理器的功能

  1. 查找并安装软件包:从仓库中找到需要的软件包并安装。
  2. 管理依赖关系:确保软件包及其依赖项一起安装。
  3. 验证包的完整性:检查软件包的校验和和数字证书,以确保软件包的完整性和真实性。
  4. 自动更新:确保软件包是最新版本,避免过时的版本引发问题。

常见的操作系统及其软件包管理器

平台 软件包管理器
Linux Debian Package Management System (DPKG),Red Hat Package Manager (RPM)
Windows Chocolatey
Android Package Manager
MacOS Homebrew,MacPorts

常见语言的包管理器

语言 包管理器
Node.js/JavaScript npm
Java Gradle,Maven
Ruby RubyGems
Python Pip,Conda


总结

在本视频中,您学习了作为开发者将在职业生涯中使用的一些工具,包括:

  • CI/CD:帮助实现持续集成和持续交付/部署,提升开发效率和代码质量。
  • 构建工具(Build Tools):自动化构建过程,管理代码的编译、打包等工作。
  • 软件包(Packages):将应用打包为归档文件,便于安装和分发。
  • 软件包管理器(Package Managers):用于管理和维护应用程序的各个依赖项和软件包,确保开发流程顺畅。

这些工具不仅能帮助您更高效地开发应用,还能确保应用在部署过程中可靠运行,提升整个开发生命周期的管理与协作效率。