分层式软件设计:架构与实现技巧

前言

当我们着手做任何一件事情之前,先从几个维度考虑问题:

  1. 为什么要做这件事?
  2. 做了能带来哪些好处?不做的后果是什么?
  3. 现在有比较好的工具支持吗?
  4. 怎样做的更好?


1.为什么要对嵌入式软件代码进行分层设计?

在大型的互联网软件中都会对软件代码进行分层设计,甚至引入了许多的设计模式的概念。但是在嵌入式软件开发中对这方面的就显得欠缺了许多,大部分的软件工程师人就停留在软件功能的实现上。可能对于熟悉代码的他来说,有没有软件分层,甚至有没有注释语句都不重要。但是对于今后接手这套代码的新人来说简直是噩梦了。


2.软件分层的好处?

  1. 代码层次感提升,简洁
  2. 各软件层专注做好一件事情
  3. 利于代码的维护


3.现在有比较好的工具支持吗?

嵌入式软件开发的工具相对来说是比较落后的,暂时没找到工具支持


4.怎样做的更好?

在实际编写代码之前,先做好代码的概要设计,模块设计。

下面介绍我写的例子,代码已经上传到GitHub上,欢迎各位大佬Frok,可以一起参与到我的项目中



项目结构

目录功能
app应用层目录
bin编译生成的可执行文件存放目录
build自动换编译脚本目录
core核心管理层目录
doc文档目录
drivers设备相关的目录


app文件夹 :

app功能
main.c主程序
gsm/gsm_test.cgsm设备应用层代码文件
gsm/gsm_test.hgsm设备应用层代码头文件


core 文件夹:

core功能
dev_operations.c核心层源文件
dev_operations.h核心层头文件


drivers文件夹:

drivers功能
gsm/gsm_drivers.cgsm设备相关源文件
gsm/gsm_drivers.hgsm设备相关头文件

框架设计


我的大致思路是将软件分成三层:

  1. 应用层
  2. 核心管理层
  3. 设备相关层

设备相关层调用核心管理层的接口注册设备操作接口。应用层调用核心管理层的接口操作设备,核心层接收应用层的请求调用具体的驱动注册上来的操作设备接口。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空