嵌入式软件应用程序开发框架浅见

简介: 嵌入式Linux系统上开发,其实和PC上的软件开发很类似,一个好的框架,能保证系统的稳定性,同时也能降低开发难度。

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


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


框架要实现一些常用的功能封装:

1. 进程间通信的代码,用于实现进程间数据交互;

2. 实现定时器,做开发时间久了,会发现在业务功能实现的过程中,有好多地方会用到定时器,比如某个数据需要定时发送,而有的数据只需要定时发送几次等;

3. 数据处理框架,这个功能是处理基础数据用的框架,基本思想上注册回调机制,有了它,业务代码里就不会再出现长长的switch……case了。

4. 事件状态管理框架,这个功能上用于管理系统内部的状态,基本思想上订阅发布机制,有了它,代码就不用再去请求一堆状态数据了,只需要把你关注打事件或者状态注测一下,当事件发生时,就主动通知给你了,这样处理起来感觉顺一些。

5. 线程封装,考虑这个部分也是因为之前在写程序的过程中,有好多地方需要启动一个临时线程,处理的数据结束之后就自己退出,自动回收资源。其实这个的封装,也是为了业务代码书写的时候不用再去写线程相关打一堆api和参数。


基本就以上几个部分,基于这些年打开发经验,感觉嵌入式上的程序模块分三类:

1. 基础数据采集模块;

提供支持系统业务功能的基础数据,比如导航设备,GPS数据采集的程序可以算这一类。


2. 业务数据处理模块

这一部分一般代码比较多,也是主要的工作量所在


3. 辅助模块

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


最后对写程序的两句总结(这个是同事总结的):

分离关注点,消除重复。


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


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


 

————————————————

版权声明:本文为CSDN博主「fensnote」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/wuquan_1230/article/details/52973890

目录
相关文章
|
Docker 容器
Mac Docker下安装与使用ShowDoc在线文档
Mac Docker下安装与使用ShowDoc在线文档
259 0
|
3月前
|
存储 机器学习/深度学习 安全
阿里云服务器2核4G租用价格:最新收费标准、可选实例规格与活动价格参考
目前阿里云的活动中2核4G配置的云服务器经济型e、通用算力型u1、计算型c8i、计算型c9i和计算型c8y实例可选,其中u1实例2核4G5M带宽有特惠,价格为199元1年,且续费价格不变。选择不同实例规格和带宽价格不一样,本文为大家介绍阿里云服务器2核4G配置的最新月付及年付活动价格,以及选择参考。
|
8月前
|
机器学习/深度学习 算法
算法系列之搜索算法-深度优先搜索DFS
深度优先搜索和广度优先搜索一样,都是对图进行搜索的算法,目的也都是从起点开始搜索,直到到达顶点。深度优先搜索会沿着一条路径不断的往下搜索,直到不能够在继续为止,然后在折返,开始搜索下一条候补路径。
506 62
算法系列之搜索算法-深度优先搜索DFS
|
4月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示
|
8月前
|
IDE Linux API
轻松在本地部署 DeepSeek 蒸馏模型并无缝集成到你的 IDE
本文将详细介绍如何在本地部署 DeepSeek 蒸馏模型,内容主要包括 Ollama 的介绍与安装、如何通过 Ollama 部署 DeepSeek、在 ChatBox 中使用 DeepSeek 以及在 VS Code 中集成 DeepSeek 等。
2081 15
轻松在本地部署 DeepSeek 蒸馏模型并无缝集成到你的 IDE
|
8月前
|
机器学习/深度学习 监控 API
本地部署DeepSeek模型技术指南
DeepSeek模型是一种先进的深度学习模型,广泛应用于自然语言处理等领域。本文详细指导如何在本地部署DeepSeek模型,涵盖环境准备(硬件和软件要求、依赖库安装)、模型下载与配置、部署(创建Flask应用、运行API)、优化(GPU加速、模型量化、ONNX Runtime)及监控维护等内容。通过本文,您将能够在本地成功部署并运行DeepSeek模型,确保其高效稳定。
|
人工智能 Linux Docker
一文详解几种常见本地大模型个人知识库工具部署、微调及对比选型(1)
近年来,大模型在AI领域崭露头角,成为技术创新的重要驱动力。从AlphaGo的胜利到GPT系列的推出,大模型展现出了强大的语言生成、理解和多任务处理能力,预示着智能化转型的新阶段。然而,要将大模型的潜力转化为实际生产力,需要克服理论到实践的鸿沟,实现从实验室到现实世界的落地应用。阿里云去年在云栖大会上发布了一系列基于通义大模型的创新应用,标志着大模型技术开始走向大规模商业化和产业化。这些应用展示了大模型在交通、电力、金融、政务、教育等多个行业的广阔应用前景,并揭示了构建具有行业特色的“行业大模型”这一趋势,大模型知识库概念随之诞生。
155193 30
|
设计模式 消息中间件 供应链
捕捉变化的风-用观察者模式提升用户体验
观察者模式是一种行为设计模式,允许对象之间定义一种订阅机制,以便在对象状态变化时通知多个观察者。它广泛应用于实现动态事件处理系统、用户界面元素的交互,或监测状态变化等场景。 文章中通过丰富的场景案例,展示了不使用观察者模式可能带来的问题,如紧耦合和难以维护;接着解释了如何应用观察者模式成功解决这些问题,通过主题和观察者的解耦,增强系统的灵活性和可扩展性。 进一步解释了观察者模式的工作原理,并介绍了其结构图和运行机制。该模式有助于在维护一致性和实时性方面提供优势,同时促使我们在高层次上分类对象间的交互。 最后
341 0
捕捉变化的风-用观察者模式提升用户体验
|
安全 Swift
在Swift中,解包
在Swift中,解包
442 3
|
消息中间件 分布式计算 数据处理
小型项目中的好帮手,ZeroMQ
ZMQ_REQ:请求-应答模式中的请求者Socket。使用zmq_send函数发送请求消息,使用zmq_recv函数接收应答消息。代码样例:
598 0