谈谈我对程序框架的理解

写在前面,本文主要是对我自己两年多做单片机程序之后的一些总结性的东西,可能对于大多数大神来说相对比较初级。在此也希望大神们轻喷!

主要内容:

1.我对单片机程序框架的认识

2.一个具体的框架搭建的思维过程

3.有关命名与文件的一些关系

 

首先谈下我对程序框架的基本认识:

  CSDN是一个大神云集的地方,而且也是国内较早的有关软件的编程的社区,里面有这巨多大牛级的人物,这里一直是我寻找资源的圣地(就是现在积分有点贵)。作为软件工程师(无论多牛逼的软件工程师)都会经常性习惯性的去看别人或者自己很早之前写的代码。拿我自己来说,以前拿到论坛里大神的代码回去大体的看一看 然后似懂非懂的开始跑,跑不通不管换,再找新的,然后在跑,一旦是跑通了,诶好。基本上是可以了然后也不会去仔细推敲了拿过来就开始使用,直到后面遇到问题,走投无路了才又开始重新开始去重新去推敲。最后几经周折终于弄明白了点才有所收获。

   这其实是本末倒置的,而且这也说明我对软件的架构思想并不清晰。最近跟一个有着十多年的从业经验的汽车电子软件方面的大牛交流,才明白软件其实最为重要的是有一个完善的架构。一个完美的软件架构能够极大的节省开发和维护成本,所以有一个很好的软件架构真的是非常重要!而且软件架构的思想应该是要深深植入软件开发人员的脑海中的。

   说了以上这么多废话,可能大家会问 究竟什么才是真正的软件架构?其实这是一个很复杂的东西,需要追溯到最为根本的需求上面,需求才是所有的起点。说的直白一点我们需要知道我们这个软件究竟用来干什么。同时在我们学习计算机的时候老师们经常会拿出来说的有关软件设计的目标:可靠性(Reliable)安全性(Secure)可伸缩性(SCAlable)可定制化(CuSTomizable)可扩展性(Extensible)可维护性(MAIntainable)。

    一个好的嵌入式软件是需要满足功能的前提下满足这些条件才能算的上是一个好的嵌入式软件。而对软件架构的思想有一个比较好的理解也会让我们今后读程序和写程序的过程中省力不少。

下面我将给大家讲一讲具体的软件框架搭建的过程:

首先了解需求:了解软件的具体要做什么工作。针对所需要的功能做相应的驱动的配置和功能模块的初始化和具体到每一个功能的.C和.H文件都独立封装,解耦设计是可裁剪性的保障。

各个功能部分同意分块放置,功能类似的靠近放置(变量命名时也遵循这个规则)。于是

整个程序基本可以分成上图中的几个部分了每个部分都可以有几个.C.H文件。这是我们准备我们所需要的所有的材料的过程。

我们都知道基本配置完成之后后面就是主程序流程的执行过程了。

程序的执行才是我们核心的工作过程,从最开始的初始化,后面主循环外加中断整个流程就是我们做事情的过程在这个过程中我们统一去做各个功能模块之间变量和函数的交替变化和使用。而今后如果是修改的话也是按照以上的步骤进行修改就可以很方便。

有关命名:

  命名一般包函两个方面一是变量命名,二是函数命名。

变量命名需要直观且尽量简洁,当然直观是前提简洁是追求。当然业界也有很多流行的规范如驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法等。就这一点我觉得按个人习惯就好。值得注意的是变量放置的位置一般为了方便尽量也不要在各个功能块中交叉。

有关函数命名,一般尽量表达清楚意思,而且多用传递参数也是有效的解耦的方式。

 

有关程序的框架暂时写这么多,以后有新的感悟再进行补充和调整

mark date : 20180815 17:03

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
许的啊,如果您想找到原因,原来uPattern中对于合成模式的实现使用的是原始的透明方式…… 一个人的力量太有限了,一个人的才智也太有限了,如果这个小生命在我一个人的手里,也许会因为得不到充足的阳光雨露而不能茁壮成长,但是如果有您的加入,多了您的呵护,相信我们的目标才更有可能实现。 如果您是高手,那么就在这里表现您的聪明才智吧。如果您是菜鸟,来这里汲取知识吧。所有的源代码都永久性公开,如果您有什么地方不清楚或者是有更好的建议,您也可以直接联系我。 ―――――――――――――――――――――――――――――――――― 这是一个应用程序框架,现在已经完成部分框架代码与用户管理、权限管理与日志管理模块。如果您有任何的问题或者是建议可以发邮件到我的邮箱,您可以使用本源代码在您的任何应用之中(包括商业应用)。如果您想要和我们一起来发展壮大这份源代码,请您发邮件给我(Camel_163@163.com),或者是在下面留言。 ――――――――――――――――――――――――――――――――――     uClasses------------------------------在这里定义应用程序中的基础类     uPattern------------------------------几个模式的DELPHI实现或者定义     uAppUtils-----------------------------应用程序工具单元     uAppSet-------------------------------应用程序设置接口声明单元     uAppSetIniFile------------------------应用程序设置IniFile实现单元     uException----------------------------异常统一处理单元     uAppFactory---------------------------应用程序工厂,本工厂生产出来的就是一个一般的应用程序     uAuthAppFactory-----------------------应用程序工厂,本工厂生产出来的就是拥有权限管理、日志及用户管理的程序     ufrmAppBase---------------------------窗口基类     ufrmAppDlgBase------------------------对话框窗口基类    用户、权限与日志管理单元     Role----------------------------------权限与用户管理主要的实现单元     Log-----------------------------------日志管理单元     ufrmRoleManager-----------------------权限管理主用户界面     ufrmLogin-----------------------------用户登录界面     ufrmChangePassword--------------------更改用户密码     ufrmLog-------------------------------日志查看界面     CommandRegister-----------------------模块注册中心
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值