从2015年底接触MSOS这样的开源框架后,以至于后来的项目都是基于这个框架来开发,框架对于嵌入式来说是极为关键的一环,可以省不少的精力和时间。
为什么这个不开源(主要是集大成的AWorks不开源)的框架会吸引我呢?我想主要是自已在之前的项目中普用过ZLG关于GUI方面的代码,另外,周立功在《程序设计与数据结构》中真正用C实现了软件设计的六大原则,这样提高的C代码的复用性。虽然不开源,但人的精力有限,不可能面面俱到,只有站在巨人的肩膀上,才是实现自己价值之道。没必要重复造轮子,即然大神们都实现过了,只要会用就行,工作之余再想想为什么??这样就足够了。先把工作做好,赚到钱,有了多余的精力再考虑深化。
前三章都其实是在讲硬件的东西,不太感兴趣了,等用到了再仔细看,浏览了下,直接跳到第4章。
如何屏蔽底层的呢?
其实,根本来说,就是从芯片的外设出发,抽象出各种不同的“服务”,这种服务是不依赖于任何硬件的。写了这么一个AMetal框架。同时,提供一个标准化的对外软件接口。
还是延用了软件设计的思想,用C分层实现隔离操作。同时将嵌入式所涉及到的实物都抽象为类操作,从而实现对象间的联系。这绝对是革命性的,因为之前接触到的都没有这么彻底的将软件与嵌入式的东西结合起来。值得花时间去学习。作者称之为:面向对象的C编程。第4~9章基本都是围绕这个展开的。
第10章展示了如何进行软件设计的过程,很值得思考,自己不是一直想跳入软件设计的行当吗?那这部分正好是符合顺一遍C软件设计的流程。其实,和具体语言关系真的不大,重要的是思维。
一直以业都将C写的代码定义为程序,而用其他面象对象语言写的定义为软件,其实两者是一样,根本就没有什么区别。C也可以从容的面对现实中的对象。从本书中更可以看出,以后嵌入式的发展的趋势,就是软件设计。
为什么要从用例图到数据字典呢?
这样分析下来,从头就知道了要操作的对象和实现的功能,这样再抽象出类,就可以进行软件设计了。这是自己忽略的软件设计方法。这其实是很重要的,这是衡量你懂不懂软件设计的法门。通过这,你就可以知道,“原来程序是这样写的?”。
设计的核心其实就是将这些共性和可变性匹配到实现的技术结构中。比如类,类层次,函数,数据结构等。框架是针对结构的,当结构与框架关联起来的时候,框架就成了主要产物。
总结:基本顺完整本书,先有个印象,价值还是挺大的,需要仔细再看,从代码中慢慢理解书中所说的设计思想。