软件工程
- 为了写大型程序,程序员用各种工具和方法,所有这些形成了”软件工程”学科
- “软件工程”一词由工程师 Margaret Hamilton 创造,她帮助 NASA 在阿波罗计划中避免了严重问题。
对象 Object
定义:
- 把函数打包成层级,把相关代码放一起打包成对象。
- 对象可以包含:其他对象,函数,变量
举例:汽车引擎对象
面向对象编程 Object Oriented Programming
定义:
- 把函数打包成对象的思想叫 “面向对象编程“。
- 这种思想和之前的函数、晶体管(打包逻辑门)类似,通过封装组件,隐藏复杂度,提升一层抽象
优点:
- 把大型软件拆成一个个更小单元,适合团队合作
- “面向对象编程”的核心是隐藏复杂度,选择性的公布功能。这使得面向对象编程在做大型项目时很有效,因而广受欢迎。
API 程序编程接口
全称:Application Programming Interface
用途:API 帮助不同程序员合作,不用知道具体实现细节,只需知道怎么调用就行了
public,private
- 出于安全性,API 控制部分函数和数据允许外部调用,而部分仅供同一对象内部的其他函数访问
- “面向对象”的编程语言可以指定函数是 public 或 private,来设置访问权限
- “面向对象编程”的核心是隐藏复杂度,选择性的公布功能。这使得面向对象编程在做大型项目时很有效,因而广受欢迎。
面向对象编程语言
- 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.
定义: