当前位置:网站首页>嵌入式开发:技巧和窍门——提高嵌入式软件代码质量的7个技巧
嵌入式开发:技巧和窍门——提高嵌入式软件代码质量的7个技巧
2022-07-04 21:46:00 【粤嵌教育】
对于开发人员来说,没有什么比试图维护和更新质量如此之差的代码更糟糕得了。对于许多开发团队来说,软件代码质量并不是必需的。为了提高代码质量,这里有几个嵌入式开发人员可以遵循的技巧,并集成到自己的流程中,这将有助于提高他们的代码质量。
技巧1——遵循编码标准
对提高代码质量感兴趣的开发人员应该从检查行业标准开始。开发人员可以利用许多行业标准来改进他们编写代码的方式,包括:
l MISRA-C
l Cert-C
l IEC 12207
l IEC 62304
这些标准为开发高质量的软件建立了框架。任何想提高软件质量的人都应该回顾一下已经做了什么,并开始实施行业建议。
技巧 2——分析和维护软件复杂性
已经多次证明,最小化软件复杂性也可以最小化错误率。软件越复杂,变化越大,不仅会有软件bug,而且对系统进行维护也会增加bug。开发人员应该通过使用圈复杂度来监控他们的函数复杂度。
技巧 3——定期进行代码评审
代码审查已经被证明是减少软件错误的最有效的方法。将同行评审整合到开发周期中对于确保软件质量保持高水平是至关重要的。为了有一个有效的代码审查过程,嵌入式开发人员应该遵循几个关键因素:
将代码审查限制在60个以内
每次评论不要超过400个LOC
至少每周安排一次代码评审(如果您每周生成超过400个LOC,则更多)
技巧 4——需求必须是可追踪的
如果一个需求不能以某种方式被测试和验证,最好是自动化的,那么它就不是一个真正的需求。甚至在开发开始之前,需求就应该被分解成可追踪的测试用例,这些用例可以在以后被用来验证所有的需求已经被满足。当然,需求会改变,会使用不同的设计方法,但是需要有一种方法来追踪软件特性和功能,追溯到产生它们的需求,并证明它们按预期工作。
技巧5——编译没有错误和警告
许多忽视编译器警告的团队和开发人员,有时只有一两个警告需要开发人员深入挖掘,或者是微不足道的,所以它们被忽略了,只是挂在那里。如果编译器不信任代码并给出警告,那么开发人员应该将其视为编译器错误并解决警告。警告是编译器表示不喜欢某样东西的方式。老实说,C编译器喜欢任何东西,所以如果它对某些东西有问题,那么作为嵌入式开发人员我们也应该这样。代码质量意味着没有错误和警告。
技巧 6–静态分析
静态代码分析器是发现嵌入式软件潜在问题的最快方法之一。静态代码分析器可以发现语法问题、潜在的小故障,并识别代码中不可移植的结构,静态分析器甚至可以检查是否遵循了编码标准,将静态分析器集成到连续构建过程中是提高代码质量和最小化软件错误的一个好方法。
技巧7——所有代码都必须经过全面测试
不少中小型企业在没有完全测试软件的情况下就发布产品。这些公司倾向于执行高水平的抽查,以查看系统是否按照他们期望的方式运行,然后将他们送到野外。当大多数读者得知这些公司的产品在该领域遇到问题时,可能不会感到惊讶。作为嵌入式开发人员,我们不能仅仅因为我们没有看到系统行为不当就认为我们的代码工作正常。我们的代码需要全面测试!全面测试意味着:
l 高水平的测试用例已经被验证
l 单元测试已经执行
l 已执行集成测试
l 代码覆盖测试已经完成,以验证每一行代码都在测试期间执行
l 系统跟踪分析,以验证时间、性能和系统行为是正确的,而不仅仅是对用户来说是正确的。
如果一行代码在测试期间没有被执行,就没有办法知道这一行代码是否包含有一天当用户使用系统时会出现的错误。
结论
提高代码质量不一定是一项重大的、昂贵的任务。这些建议很容易实现,甚至可以在几周或几个月内完成。最终结果将是更高质量的软件,提供更好的用户体验,同时降低嵌入式开发成本。
边栏推荐
- Deveco device tool 3.0 release brings five capability upgrades to make intelligent device development more efficient
- How much is the minimum stock account opening commission? Is it safe to open an account online
- NAACL-22 | 在基于Prompt的文本生成任务上引入迁移学习的设置
- MySQL存储数据加密
- Redis03 - network configuration and heartbeat mechanism of redis
- Machine learning notes mutual information
- Keep on fighting! The city chain technology digital summit was grandly held in Chongqing
- ApacheCN 翻译、校对、笔记整理活动进度公告 2022.7
- Case sharing | integrated construction of data operation and maintenance in the financial industry
- gtest从一无所知到熟练运用(1)gtest安装
猜你喜欢
KDD2022 | 什么特征进行交互才是有效的?
QT—绘制其他问题
复数在数论、几何中的用途 - 曹则贤
TCP protocol three times handshake process
A large number of virtual anchors in station B were collectively forced to refund: revenue evaporated, but they still owe station B; Jobs was posthumously awarded the U.S. presidential medal of freedo
bizchart+slider实现分组柱状图
How to remove the black dot in front of the title in word document
凭借了这份 pdf,最终拿到了阿里,字节,百度等八家大厂 offer
Bookmark
傳智教育|如何轉行互聯網高薪崗比特之一的軟件測試?(附軟件測試學習路線圖)
随机推荐
el-tree结合el-table,树形添加修改操作
Caduceus从未停止创新,去中心化边缘渲染技术让元宇宙不再遥远
机器学习笔记 - 互信息Mutual Information
How was MP3 born?
时空预测3-graph transformer
Master the use of auto analyze in data warehouse
# 2156. Find the substring of the given hash value - post order traversal
服务线上治理
[advanced C language] array & pointer & array written test questions
Keep on fighting! The city chain technology digital summit was grandly held in Chongqing
Application practice | Shuhai supply chain construction of data center based on Apache Doris
A large number of virtual anchors in station B were collectively forced to refund: revenue evaporated, but they still owe station B; Jobs was posthumously awarded the U.S. presidential medal of freedo
Is it safe to open an account in the stock of Caicai college? Can you only open an account by digging money?
2022 version of stronger jsonpath compatibility and performance test (snack3, fastjson2, jayway.jsonpath)
一文掌握数仓中auto analyze的使用
WebGIS框架---kalrry
Why do you have to be familiar with industry and enterprise business when doing Bi development?
Kdd2022 | what features are effective for interaction?
股票开户流程是什么?使用同花顺手机炒股软件安全吗?
GTEST from ignorance to proficient use (2) what is test fixture