一些软件思想

    从两个地方总结一下,一个是架构,一个是测试。

    架构,要求设计好软件分层,不同的模块耦合性降到最低,毫不耦合是最理想的状态,例如把某个模块的开关宏给关掉,也可以编译过完全不影响。ffmpeg的源码就做的很好。值得学习。

    其次不同的平台会有不同的方案,由于芯片架构的不同,软件实现起来会有差异,为了方便移植、减少共性开发量,差不同芯片的方案封装起来,沉淀到hal层,把共性的代码提取出来,通过makefile配置编译的文件,实现一整套代码可以在多个平台编译切换编译,这样维护或者开发、移植可以节省很多工作量。

    整套代码的设计的开始就要规定好风格,比如入参判断,是调用者判断,还是被调用者判断,不同的驱动通过什么接口来回调,他们的关系是如何,谁是线程运行动力,重复代码封装成工具类,文件的包含关系(.h乱包含会导致编译时间增长),如果都没有规定好,代码开发开发着就会乱七八糟,维护和定位问题将是一场灾难。

    同时必不可少的文档,对外的接口如,用户态接口,内核态接口,UNF接口,对内的接口****视情况设计。


    测试也很重要,可以尽早发现问题,总结然后版本迭代完还要重构。集成测试BBIT,看模块间的接口是否OK,主要测产品的主要功能;UT,单元测试,通过构建场景测试代码的一个最小功能;MST,场景测试,模拟实际各类场景测试,类似黑盒测试吧,看输入输出对不对,场景要覆盖的全面一些;LLT,测试代码覆盖率的情况;iofuzz,频繁攻击对外的接口保证不被攻击,做好入参检查和规避内存泄漏资源没释放的问题。

   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值