C++学习的意义_1
2017-09-04 23:38
148 查看
一. 一般的看法
1. 操作系统和驱动都是C写的,学好C就够了
2. LINUX大神都认为C++一无是处,学他干什么?
3. C++在应用层用的多,学嵌入式的没必要学
4. 以后做驱动开发,没精力也没必要学习C++.\
二. 一些历史
1. UINX操作系统诞生之初直接用汇编语言写成的。
2. 随着UINX开发,汇编语言进入了一种瓶颈。
3. BCPL语言成为了当时选择之一。
4.KEN Thompson对BCPL进行简化得到了B语言。
5.B语言不直接生成机器码,而是编译生成中间码之后解释执行。
问题:解释性语言的执行效率不足以胜任操作系统的开发。
6. 1971年,Ken Thompson对B语言进行改良,使其产生机器码,C语言诞生了。
三. 软件方法论的发展
面向过程程序设计:数据结构 + 算法
* 主要解决科学计算问题,用户需求简单而固定
特点:
*分析解决问题所需要的步骤
*利用函数实现各个步骤
*依次说调用函数解决问题
问题缺点:
*软件可重用性差
*软件可维护性差
*构建的软件无法满足用户需求。
面向对象程序设计:由现实世界建立软件模型
* 将现实世界中的事物直接映射到程序中,可直接满足用户需求
特点:
*直接分析用户需求中设计的各个实体
*在代码中描述现实世界中的实体
*在代码中关联各个实体协同工作解决问题
优势:
* 构建的软件能够适应用户需求的不断变化
* 直接利用面向过程方法的优势而避开其劣势。
四. C语言的加强
1. 高效的面向对象语言,并且能够兼容已经存在的代码
2. C语言 + 面向对象方法 = C++
3. C语言和C++并不是对立的竞争关系
4. C++是C语言的加强,是一种更好的C语言
5. C++是C语言为基础的,并且完全兼容C语言的特性。
五. 现代软件产品架构图
实例:商场收银系统架构图
六. 现代软件产品的特性
* 系统一般是由多种语言写成的
* 系统架构的目标是拥抱用户需求的变化
* 系统拥有较好的移植性
* 系统能够方便的部署和更新。
注意:操作系统的修改和驱动程序的开发在现代软件产品中占据的比重越来越小。
七。小结
1. 所有的软件系统都是为了满足用户需求而开发的。
2. 对于一个开发团队而言,在短期内开发用户满足的软件系统是其核心竞争力的体现。
3. 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。
4. 对于一个架构师,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其架构生涯的第一步。
八. 学习C++的意义
1. C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法。
2. C++是JAVA/C#/D等现代开发语言的基础,学习C++后能够快速掌握这些语言
3. C++是各大知名软件企业挑选人才的标准
1. 操作系统和驱动都是C写的,学好C就够了
2. LINUX大神都认为C++一无是处,学他干什么?
3. C++在应用层用的多,学嵌入式的没必要学
4. 以后做驱动开发,没精力也没必要学习C++.\
二. 一些历史
1. UINX操作系统诞生之初直接用汇编语言写成的。
2. 随着UINX开发,汇编语言进入了一种瓶颈。
3. BCPL语言成为了当时选择之一。
4.KEN Thompson对BCPL进行简化得到了B语言。
5.B语言不直接生成机器码,而是编译生成中间码之后解释执行。
问题:解释性语言的执行效率不足以胜任操作系统的开发。
6. 1971年,Ken Thompson对B语言进行改良,使其产生机器码,C语言诞生了。
三. 软件方法论的发展
面向过程程序设计:数据结构 + 算法
* 主要解决科学计算问题,用户需求简单而固定
特点:
*分析解决问题所需要的步骤
*利用函数实现各个步骤
*依次说调用函数解决问题
问题缺点:
*软件可重用性差
*软件可维护性差
*构建的软件无法满足用户需求。
面向对象程序设计:由现实世界建立软件模型
* 将现实世界中的事物直接映射到程序中,可直接满足用户需求
特点:
*直接分析用户需求中设计的各个实体
*在代码中描述现实世界中的实体
*在代码中关联各个实体协同工作解决问题
优势:
* 构建的软件能够适应用户需求的不断变化
* 直接利用面向过程方法的优势而避开其劣势。
四. C语言的加强
1. 高效的面向对象语言,并且能够兼容已经存在的代码
2. C语言 + 面向对象方法 = C++
3. C语言和C++并不是对立的竞争关系
4. C++是C语言的加强,是一种更好的C语言
5. C++是C语言为基础的,并且完全兼容C语言的特性。
五. 现代软件产品架构图
实例:商场收银系统架构图
六. 现代软件产品的特性
* 系统一般是由多种语言写成的
* 系统架构的目标是拥抱用户需求的变化
* 系统拥有较好的移植性
* 系统能够方便的部署和更新。
注意:操作系统的修改和驱动程序的开发在现代软件产品中占据的比重越来越小。
七。小结
1. 所有的软件系统都是为了满足用户需求而开发的。
2. 对于一个开发团队而言,在短期内开发用户满足的软件系统是其核心竞争力的体现。
3. 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。
4. 对于一个架构师,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其架构生涯的第一步。
八. 学习C++的意义
1. C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法。
2. C++是JAVA/C#/D等现代开发语言的基础,学习C++后能够快速掌握这些语言
3. C++是各大知名软件企业挑选人才的标准
相关文章推荐
- 第0课,学习C++的意义
- 0--学习C++的意义
- 学习C++的意义
- Effective C++学习笔记_条款42:了解typename的双重意义
- 第1课 学习 C++ 的意义
- C++学习笔记-抽象容器类型
- C++学习(四)
- 一步一步学习C++的ActiveX网页控件开发
- 改善C++ 程序的150个建议学习之建议35:使用内存池技术提高内存申请效率与性能
- C++学习笔记——类和对象(二)
- C++学习笔记3 - 处理数据
- c++学习笔记(十):运算符重载综合——自定义数组类
- 人生导师——如何学习C++的Windows方向
- “Effective C++ Third Edition”学习笔记(四)
- C++学习笔记(12)——多态与虚函数
- 开篇,从Kingofark那转过来的 关于学习C++和编程的50个观点 2003修订版
- C++、Java与.NET——与同学讨论学习方向
- C++学习笔记4
- 面向对象 C++学习之我之过错
- 菜鸟的C++学习(一)