从开始看<<C++编程思想 第2卷>>到现在已经接近5个月了,终于粗糙的浏览完一遍。
在看<<C++编程思想 第2卷>>期间一直断断续续,由于项目比较忙、小孩也正难照顾,加上中途有一段迷茫期,所以过程很漫长。
<<C++编程思想 第2卷>>比我想象中的要难,虽然C++的许多特性我都知道、在编码中用过,但我却很少去思考为什么,更没什么意识去设计、创新。在阅读<<C++编程思想 第2卷>>的过程中,激发了我不断的去思考。
异常处理,我做的项目实时性要求都很强,没有使用异常处理,而是添加了各种级别的日志信息,将异常、错误反馈在日志里。
STL, 我原以为STL就是对模板的应用,在面对满屏的“<>”,时常感觉自己从一个“黑洞”被瞬间转移到另外一个“黑洞”,有时又像是进入“盗梦空间”,看着看着不知道跑哪儿去了,一直很晕。在STL中, 容器是动态的数据存储器,算法是对数据的处理方式,而迭代器是算法处理数据的“桥梁”。STL将数据与实现分离,STL又被容器、算法、迭代器分块。STL将客观世界的抽象发挥到极致,简直是巧夺天工之作。这也不难理解我为什么要晕了。
模板元编程,是用程序来产生、操纵代码的程序,在编译时创建和修改代码而非编程时。在看元编程时,顺便读了迟建强的《人生元编程》,人生如程序,都具有自控、管理、改变自己的能力。元编程,天才的设想,让人回味无穷。
RTTI和MI,让我再一次领略到“virtual”带来的奇妙和复杂多变,加深了我对面向对象思想的理解。
设计模式,直接的动力之一是为了使变化的事物与不变的事物分离开。
并发,基本上略过了,在C++11中已经有了线程库,有时间去C++11看看。
... ...
每读一点<<C++编程思想 第2卷>>都能感觉到C++的强大,它为工程、架构、设计而生;它灵活多变,支持多种范式(面向结构、面向对象、模板元编程);它是一把多刃剑,设计不当就像大炮打蚊子,鸟枪打飞机。而我自己的C++经历,更接近C风格的C++,带点面向对象的思想。我想高手对C++的驾驭就像独孤求败手中的剑,重剑无锋,大巧不工。
有前辈说: 如果一门语言不能影响你对编程的想法,那它就不值得去学。我想说:我对C++的想法太多了。
C++很难,也有前辈说:live is too short to program in C++;人生苦短,我学Pathon。我想说:学C++是一种修行。
总的来说,还是自己书读的太少,思考的太少,境界太低。读书可以让我知道很多,发现自己的无知;我一定要坚持去读书,否则只能生活在自以为是的那么一个小圈子里自“愚”自乐。
打算将<<C++编程思想 第2卷>>再读一遍,第二遍读完后,相信我的修行会上一个台阶。