实战uC-TCPIP(后续)--嵌入式开发的一些个人经验

本文分享了作者在嵌入式开发中关于业务抽象、模块化设计、测试驱动开发和版本管理的心得体会。通过业务抽象减少需求变动时的修改难度,模块化设计提高代码复用性和开发效率,尤其是对于单元测试的实践,有助于完善接口设计和处理异常情况。同时,合理利用版本管理工具如svn进行代码调整和提交。此外,作者还提到了在硬件未准备好时,使用Qt创建模拟软件进行前期准备,有效加快了项目进度。
摘要由CSDN通过智能技术生成
    最近忙的项目,估计是我在目前公司的最后一个项目了。我的任务是负责一块接口转换板的程序。实话说这个程序没什么技术含量,纯粹是应用协议的转换和物理接口的转发,完全可以用一个上位机软件代替,由于某些历史原因出现了这个怪异的解决方案。总结一下这个项目的开发过程,主要是在业务抽象、模块化设计、测试驱动和版本管理等方面多积累了点经验。
    我所谓的业务抽象其实就是把类似的业务用相同的接口统一起来,通过中间层作为业务需求和业务实现的桥梁。增加中间层的代价是增加运行开销,好处是需求变动时修改容易。针对目前这个接口转换板的设计定位,这样的代价是值得的。而且我不希望单纯为了这个需求写这个程序,最大限度的重用是我设计的原则,这里涉及到模块化设计。
     我理解的模块化就是堆积木,一个模块实现一个明确的功能;模块还可以细分,最小粒度的模块实现一个单一的功能;一般用一个.c和.h文件代表一个模块。归因于我设计水平低下,常常在实现的过程中需要增加功能调整接口。有感于以前看的万行文件和千行函数,我现在是新建文件控和新建函数控,工程目录下有很多.c.h对,每个.c基本不超过2千行,每个函数不超过200行,超过一百行的函数很少,主要是uCOS任务函数的消息处理循环。以前那个让我骂街无数次的程序,很大一个问题是如果想从里面拿某个功能出来修改或者移用,会发现像掰莲藕那样,处理那千丝万缕的联系足够头疼了,还不如自己重新写功能。模块化的设计,不只是方便未来维护修改或者重用,其实也提高了当前开发效率,例如实现单元测试,需要比较独立的功能模块。只可惜在急功近利的山寨厂里,不管是什么编程语言,总能看到慢慢变得臃肿的代码。新手们不敢轻易修改,熟手们忙得没时间完善,老手们懒得再去理会。开发就好像是使用一次性餐具ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值