zoukankan      html  css  js  c++  java
  • 嵌入式软件应用程序开发框架浅见

    最近在构思一个嵌入式系统上的应用程序开发框架,这个不单单是做一个应用程序的框架,是一个系统的。

    要达到的目的就是为业务实现部分的程序提供一个框架,这个框架这么说是一个很模糊打概念,下面详细介绍一下这个框架。

    框架要实现一些常用的功能封装:
    1. 进程间通信的代码,用于实现进程间数据交互;
    2. 实现定时器,做开发时间久了,会发现在业务功能实现的过程中,有好多地方会用到定时器,比如某个数据需要定时发送,而有的数据只需要定时发送几次等;
    3. 数据处理框架,这个功能是处理基础数据用的框架,基本思想上注册回调机制,有了它,业务代码里就不会再出现长长的switch……case了。
    4. 事件状态管理框架,这个功能上用于管理系统内部的状态,基本思想上订阅发布机制,有了它,代码就不用再去请求一堆状态数据了,只需要把你关注打事件或者状态注测一下,当事件发生时,就主动通知给你了,这样处理起来感觉顺一些。
    5. 线程封装,考虑这个部分也是因为之前在写程序的过程中,有好多地方需要启动一个临时线程,处理的数据结束之后就自己退出,自动回收资源。其实这个的封装,也是为了业务代码书写的时候不用再去写线程相关打一堆api和参数。

    基本就以上几个部分,基于这些年打开发经验,感觉嵌入式上的程序模块分三类:
    1. 基础数据采集模块;
    提供支持系统业务功能的基础数据,比如导航设备,GPS数据采集的程序可以算这一类。

    2. 业务数据处理模块
    这一部分一般代码比较多,也是主要的工作量所在

    3. 辅助模块
    这部分主要是给业务数据处理模块提供一些辅助功能,比如:数据/参数存储等模块,也就是这些模块是其使用者请求什么他就返回什么,自身不具有复杂打逻辑处理。

    最后对写程序的两句总结(这个是同事总结的):
    分离关注点,消除重复。

    这短短打两句话,蕴含了多少编程世界的哲学!

    其中包含编程原则,也包含设计模式的思想,还有代码重构的思想!

    @http://wuquan-1230.blog.163.com/blog/static/29811153201693075945312/#

    个人微信服务号同步推送文章(微信公众号:fensTeck):

  • 相关阅读:
    centos7下安装docker
    java中获取两个时间中的每一天
    Linq中string转int的方法
    logstash 主题综合篇
    Windows环境下ELK(5.X)平台的搭建
    本地没问题 服务器 提示 Server Error in '/' Application
    错误 未能找到类型或命名空间名称"xxxxxx"的真正原因
    System.web和System.WebServer
    Chrome Adobe Flash Player 因过期而 阻止
    请求WebApi的几种方式
  • 原文地址:https://www.cnblogs.com/fensnote/p/13436511.html
Copyright © 2011-2022 走看看