第一课 学习C++的意义
一、历史
- unix 操作系统诞生之初是直接用汇编语言编写的
- 随着unix的发展,汇编语言的开发效率成为一个瓶颈
- 1971年, Ken Thompson 和 Dennis Ritchie 对B语言(解释型语言)进行了改良(语法、将解释型改为编译型),使其直接能产生机器码,C语言诞生
- Unix 开始用C语言重写,同时C语言在实践过程中得到发展
二、C语言特点
-
C语言是在实践过程中逐步完善起来的
没有经过深思熟虑的设计过程
残留量过多低语言的特征
-
C语言的目标是高效
最终程序执行效率高
三、软件方法论
-
面向过程程序设计:数据结构加算法
主要解决科学计算问题,用户需求简单而固定
-
特点
分析解决问题所需要的步骤
利用函数实现各个步骤
依次调用函数解决问题
-
问题
软件可重用性差
软件可维护性差
-
-
面向过程程序设计:由现实世界建立软件模型
将现实中的事务直接映射到程序中,直接满足需求
-
特点
直接分析用户需求中涉及的的各个实体
在代码中描述现实世界的实体
在代码中关联实体协同工作解决问题
-
优势
构建软件能够适应用户的需求变化
直接利用面向过程的方法的优势而避开其劣势
-
-
C语言的加强
当面向过程方法暴露越来越多缺陷的时候,业界开始考虑在工程项目中引入面向设计的方法。高效的面向对象语言,并且兼容已经存在的代码。
C语言+面向对象方法论=Objective-C C++
C语言和C++并不是竞争对立关系
C++是C语言的加强,是一种更好的C语言
C++是以C语言为基础的,并完全兼容C语言的特性
学习C++并不会影响原有的C语言知识,相反,还可以让我们学到更多的软件设计方法
-
现代软件产品的特性
系统一般是由多种语言写成
系统架构的目标是拥抱用户需求变化
系统拥有较好的可移植性
系统能够方便部署和更新
操作系统的修改和驱动程序的开发在现代软件产品中占据的比重越来越小
四、学习C++的意义
- C++ 是一种更强大的C,通过学习C++能够掌握更多的软件设计方法
- C++是java/C#/D等现代开发语言的基础,学习C++后能快速掌握这些语言
- C++是各大知名软件企业挑选人才的标准之一
五、小结
- 所有软件系统都是为了满足用户需求而开发的
- 对于一个开发团队而言,在短期开发出用户满意的软件系统是其核心竞争力的体现
- 对于一个开发者而言,能够胜任系统中任意一个模块开发是其核心价值的体现
- 对于一个架构师而言,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其核心价值的体现