第一篇 动机

       写在细读的扉页

    篇序中提到本书的两个核心思想:实用和抽象。抽象是有选择的忽略,适当地把不必要的细节隐藏起来给人以更好地用户体验,让使用者把更多的精力放在自己的所关注的事情上面。

 

1 章 为什么我用C++

    C++不是作者编程接触到的第一语言,作者因遇到了当前实际情况无法便捷地用自己熟悉的语言解决问题,于是对各种编程语言在解决问题方面的可行性进行分析,然后选择了尝试C++的过程。如作者后面所说:“C++使我得以从根本上在程序里更精确地表达我的意图”“并实现我的目的”。

    在C中隐藏的约定中,C语言由于使用字符串而引起的内存分配与释放问题,会导致程序员花费大量时间去处理。而C++则作者可以做到不必担心这些细节。“这正是抽象的优点”。


2为什么用C++工作

    作为上一章话题的补充,作者阐述了C++对于他而言的魅力所在。

    很多最成功最为有名的软件最初都是少数人开发出来的,然后在这些软件日渐成长,然而许多真正的赢家都是从小系统做起。再看那些大项目,很多最终结果都表现平平。导致这现象发生的原因,是软件制造的规模和经济效益不成正比。项目开发过程中,项目组成员关于相互协调问题的交流耗费了大量的项目开销,尽管采用了各种措施增强交流效果的举措,但这些仍旧仅是被包装的被认为有效的开销,它还是带着软件工厂的味道,未能真正提高程序工作者的效率。而行之有效的方法,则是需要把大系统拆解为一系列小项目,并且理清楚各个小项目之间存在的关系理顺,建立统一的接口进行关联,使得相关人员能专注于某个小项目上的实现并且不必反复相互核查小项目之间的对接。“这些接口应该像那些常用的程序和数据结构的抽象一样成为程序开发工具的重要组成部分”。

    抽象,是将问题分解成独立的子问题,并确保它们相互独立的方法,但有些语言不包含抽象,一个不留神就容易出错。比如C语言里面的抽象是附带默认规范的(malloc free)。对于这个问题,不包含抽象的语言有的会采用内存自动回收机制这种需要支付额外代价且不够完善的方案。

    “用抽象的眼光看待数据结构,它们中许多都有关于初始化和终止的概念,而不是单纯的内存分配。”


3生活在现实世界中

    现实给我们的教训是,如果用一种语言写出的程序不能在系统中运行起来,哪怕它极具魅力也是无济于事,因为语言首先就应该是解决问题的工具。

        C++开发者中有人会问到:“为什么C++里面没有提供(我在其它语言里面用过的某个)功能?答案是:“C++是一门编程语言,不是一种编程环境。正是这个原因,使得它不需要依赖于复杂的操作系统,让C++程序可以在几乎没有支持环境的系统中运行。”正是这样的原因,“C++程序能在类似于照相机这样的电子设备上运行”,“原来使用C的大型编程项目正在逐渐转而使用C++,而无需重写所有代码。”

2012410星期二】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值