点击查看【bilibili】

软件工程

  • 为了写大型程序,程序员用各种工具和方法,所有这些形成了”软件工程”学科
  • “软件工程”一词由工程师 Margaret Hamilton 创造,她帮助 NASA 在阿波罗计划中避免了严重问题。

对象 Object

定义

  • 把函数打包成层级,把相关代码放一起打包成对象。
  • 对象可以包含:其他对象,函数,变量

举例:汽车引擎对象
image.png

面向对象编程 Object Oriented Programming

定义

  • 把函数打包成对象的思想叫 “面向对象编程“。
  • 这种思想和之前的函数、晶体管(打包逻辑门)类似,通过封装组件,隐藏复杂度,提升一层抽象

优点

  • 把大型软件拆成一个个更小单元,适合团队合作
  • “面向对象编程”的核心隐藏复杂度,选择性的公布功能。这使得面向对象编程在做大型项目时很有效,因而广受欢迎。

API 程序编程接口

全称:Application Programming Interface
用途:API 帮助不同程序员合作,不用知道具体实现细节,只需知道怎么调用就行了

public,private

  • 出于安全性,API 控制部分函数和数据允许外部调用,而部分仅供同一对象内部的其他函数访问
  • “面向对象”的编程语言可以指定函数是 public 或 private,来设置访问权限
  • “面向对象编程”的核心隐藏复杂度,选择性的公布功能。这使得面向对象编程在做大型项目时很有效,因而广受欢迎。

image.png

面向对象编程语言

  • C++, C#, Objective-C, Python, Java 等

IDE 集成开发环境

定义:现代软件开发者常用专门的工具编写代码,由于工具里集成了很多帮助编写代码、整理、编译和调试的实用功能,因而称为集成开发环境,简称 IDE
全称:Integrated Development Environments

调试 Debug

IDE 可以定位到出错代码,帮助解决问题,即调试(debug)

文档和注释

文档 readme:

  • 文档一般放在一个叫 README 的文件里
  • 文档也可以直接写成注释,放在源代码中
  • 文档的作用:
    • 帮助开发者在一段时间后仍能理解自己的代码,或者帮助其他人理解代码
    • 文档可以提高复用性,方便程序员调用别人写好的代码来解决问题。程序员可以通过读文档来了解 API 的调用方式等,而不用逐行读代码

注释 comment:

  • 注释是标记过的一段文字,在编译时会被计算机忽略
  • 注释的作用:帮助开发者理解代码

版本控制/源代码管理 version control

  • 苹果或微软这样的大型软件公司,会把代码放到一个中心服务器上,称作代码仓库(code repository)
  • 程序员想修改一段代码时,可以 check out,然后在自己的电脑上编辑代码
  • 代码修改完且测试通过后,把代码放回去,即 commit
  • 当一段代码被 check out,且可能被改动,其他程序员就不会动这段代码,避免代码冲突和重复劳动
  • 源代码管理可以跟踪所有变化,如果代码存在bug,可以将全部或部分代码回滚到之前的稳定版

质量保证测试 QA

全称:Quality Assurance testing, or QA.
定义

  • 测试可以统称 “质量保证测试”,简称 QA
  • 找 bug,测试软件的方方面面,模拟各种可能的情况,看软件是否会出错

    beta 版本

    定义:软件接近完成,但不是 100% 完全测试过,公司有时会向公众发布 beta 版,以帮助发现问题

    alpha 版本

    定义:beta 之前的版本,一般很粗糙,错误很多,经常只在公司内部测试