最近在构思一个嵌入式系统上的应用程序开发框架,这个不单单是做一个应用程序的框架,是一个系统的。
要达到的目的就是为业务实现部分的程序提供一个框架,这个框架这么说是一个很模糊打概念,下面详细介绍一下这个框架。
框架要实现一些常用的功能封装:
1. 进程间通信的代码,用于实现进程间数据交互;
2. 实现定时器,做开发时间久了,会发现在业务功能实现的过程中,有好多地方会用到定时器,比如某个数据需要定时发送,而有的数据只需要定时发送几次等;
3. 数据处理框架,这个功能是处理基础数据用的框架,基本思想上注册回调机制,有了它,业务代码里就不会再出现长长的switch……case了。
4. 事件状态管理框架,这个功能上用于管理系统内部的状态,基本思想上订阅发布机制,有了它,代码就不用再去请求一堆状态数据了,只需要把你关注打事件或者状态注测一下,当事件发生时,就主动通知给你了,这样处理起来感觉顺一些。
5. 线程封装,考虑这个部分也是因为之前在写程序的过程中,有好多地方需要启动一个临时线程,处理的数据结束之后就自己退出,自动回收资源。其实这个的封装,也是为了业务代码书写的时候不用再去写线程相关打一堆api和参数。
基本就以上几个部分,基于这些年打开发经验,感觉嵌入式上的程序模块分三类:
1. 基础数据采集模块;
提供支持系统业务功能的基础数据,比如导航设备,GPS数据采集的程序可以算这一类。
2. 业务数据处理模块
这一部分一般代码比较多,也是主要的工作量所在
3. 辅助模块
这部分主要是给业务数据处理模块提供一些辅助功能,比如:数据/参数存储等模块,也就是这些模块是其使用者请求什么他就返回什么,自身不具有复杂打逻辑处理。
最后对写程序的两句总结(这个是同事总结的):
分离关注点,消除重复。
这短短打两句话,蕴含了多少编程世界的哲学!
其中包含编程原则,也包含设计模式的思想,还有代码重构的思想!
@http://wuquan-1230.blog.163.com/blog/static/29811153201693075945312/#
个人微信服务号同步推送文章(微信公众号:fensTeck):