0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式软件的注释技巧

安芯教育科技 来源:人工智能科学与技术 作者:人工智能科学与技 2022-05-20 10:10 次阅读

在软件实现过程中会作出成千上万个决策,因此维护工程师甚至未来的你尽可能多地保留这些决策过程至关重要。

注释代码的问题部分原因来自出货压力、不正确的设计以及注释代码是如何工作的事情没有开发来得有趣或兴奋这个事实!

许多工程师(包括我自己)憎恨必须注释代码,但这项工作在嵌入式工程师开发过程中是如此重要,以致于我们绝对不能省略或三意二意地去做。

然而,可以在软件开发过程中记住一些技巧,它们有助于确保未来开发人员维护好代码开发中的任何细微变动。

技巧1——随时而不是过后进行注释

交付产品的压力经常导致天马行空般的编码风格,为了完成任务以便尽早推出产品,代码是想到哪就编到哪。在疯狂的代码编写过程中,很少想到记录下代码要完成的功能。等产品交货后,设计人员才会回去浏览代码并进行“注释”。

这样做的问题是,这时已经距离写完代码几周甚至几个月的时间了!对一些工程师来说记起昨天早餐吃的是什么都很难,更不用说两周前写的一段代码了。最终结果是不准确的注释说明,日后往往会引起误解和缺陷。

这里的技巧当然是在进行决策的同时随时进行注释。形式化的外部文档注释过程无疑会降低开发人员的进度,但向代码库中增加注释真的不会占用更多时间。

开发人员能够做的第一件事是先对代码要做什么事写一些注释行,然后再写代码。如果实现发生了变化,开发人员可以立即更新注释。在任何情况下,在编写代码的同时写下注释只会节省时间和增加条理性,从而更少发生错误,产品也能更快的上市。

技巧2——自动生成注释文档

尽管对代码做了很详细的注释,但总是有生成外部文档的要求,以便任何人不看代码就能明白程序功能。这个要求经常导致双倍的注释工作量。

幸运的是,市场上有现成的工具可以自动读取代码注释、然后生成界面和代码的其它文档细节!帮助工程师避免必须做两次相同的工作!一个具有这种功能的免费工具例子是Doxygen。

当开发人员在编写他们的代码时,他们以指定方式格式化他们的注释,并提供他们想要在外部文档中展示的细节内容。然后他们就可以运行Doxygen生成真实反映软件内注释的html、rtf或pdf文档。美妙的是如果你更新注释,外部文档也会自动更新!

技巧3——不要写显式的注释

虽然开发人员写了代码注释,但如果注释只是变量或函数名字的重复,会特别令人恼火。注释应该是描述性的文字,需要提供显式意思之外更多的细节!

提供尽可能多的信息,而且不要忘了提及相关和关联的变量或函数。开发人员应该能够只通过阅读注释就了解软件的行为。图1给出了一个注释简单映射数组代码的例子。

33062b96-d7da-11ec-bce3-dac502259ad0.jpg

图1:映射数组

技巧4——提供使用例子以便更清楚地了解用途

函数或变量注释中包含如何使用它们的例子是很有用的。说应该如何使用是一回事,但展示如何使用会让人更清楚其用途。除了能够减少错误使用对象的机会外,还能给人一个更清晰的印象。

图2显示了一个如何注释函数的例子,它告诉开发人员应该如何使用这个函数,从而避免了容易出错的猜测过程,使人能够更清晰地了解其用途。

331b0ce6-d7da-11ec-bce3-dac502259ad0.jpg

img

图2——使用例子

技巧5——创建注释标准

就像写代码一样,为代码开发注释和文档也应该有个标准。由于注释标准中不可能有许多条款,因此特别推荐向编写代码标准靠拢。

也就是说确保小组中的每个成员以相同的方式进行注释和归档,从而确保开发的易用性。开发人员应该专注于解决手头的设计问题,而不是费劲地去搞懂注释。

技巧6——使用文档模板

确保注释遵循标准的最容易的方法是为头文件、源文件和支持文件创建模板。当创建一个新模块时,可以从模板入手,然后增加相关的信息。这将有助于确保文件信息块、代码段、函数和变量都用相同的格式注释。

这种方法的最大优势是能够节省大量时间,并有助于减少将一个模块拷贝到另一个伪模板时发生的拷贝粘贴错误。为了让生活更加轻松,我特意开发了可以用于定义头文件和源文件的模板。

技巧7——图表的作用

在一个项目的软件实现阶段开始之前,应该有一个软件设计阶段。这个设计阶段无疑会生成许多漂亮的图(如流程图和状态机),并被用于实际实现。

虽然这些文档作为软件的开发路线图,但在开发和测试过程中总会出现偏差!遗憾的是,这些变化很少会返回到图表中。结果是设计文档和软件的不匹配!

在实现和测试阶段将这些图表放在手边,以便发生上述偏差时这些图表能及时得到更新。将这些图表留到日后更新永远不是正确的做法。虽然我们总是有返回去更新或修复的良好愿望,但这永远不是合适的时机。

技巧8——保持注释框使用的一致性

就像听起来一样奇怪,许多网络争论的内容是何时、哪里使用何种类型的注释框!不过严肃地讲,不管你的信仰是什么,归根到底是一致性问题。

如果一个团队决定只使用/…/类型的注释,那么就只使用这种类型。如果决定使用//类型,那就只使用//类型。

作者个人的观点是倾向于使用/…/进行函数和模块级说明,使用//进行函数代码说明。不管选择是什么,确保每次都按同样的方式去做,这样有助于生活更加轻松。

技巧9——使注释更容易阅读(即格式的美化)

为了确保避免误解并由此产生代码缺陷,使代码保持结构化和容易阅读很重要。注释也一样。偶尔结构化的注释会使眼睛很难捕捉注释,更难捕捉不在合适位置的内容。应该对注释进行格式化处理,这样如果代码打印出来时(虽然现在不常打印,但我偶然仍会打印代码)注释就不会分到好几页上去。

在大块注释(如文件头或函数注释)中,如果你使用块指示器,千万不要包含进任何拖尾字符(如#或*),要不只会使文档更新变得更加困难。

技巧10——嵌入图像和图表

借助自动化工具的使用,在注释文档中包含编码标准、缩写词、项目细节、要求和大量其它条款就成了可能。甚至能够包含诸如流程图等设计性图表!

使用这类功能允许代码库不仅包含执行代码和逻辑,还包含你想要了解的项目所有内容,并且所有信息都放在同一个地方。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    933

    浏览量

    54737
  • 嵌入式软件
    +关注

    关注

    4

    文章

    239

    浏览量

    26601
  • 代码
    +关注

    关注

    30

    文章

    4730

    浏览量

    68259

原文标题:技术分享 | 嵌入式软件的注释技巧

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式软件与非嵌入式软件的区别

    嵌入式软件与非嵌入式软件的区别嵌入式:在已有的硬件上移植(需要修改操作系统源码,安装不需要)操作系统解决软硬件耦合导致的问题。
    发表于 10-27 06:18

    嵌入式软件和非嵌入式软件区别

    1.什么是嵌入式技术?嵌入式技术是以应用为中心,以计算机技术为基础的系统技术。它初起源于单片机技术,是各类数字化的电子、机电产品的核心,主要用于实现对硬件设备的控制、监视或管理等功能。2.嵌入式
    发表于 12-21 07:41

    什么是嵌入式软件开发

    嵌入式软件开发又是指什么?   随着嵌入式软件系统结构越来越复杂,嵌入式软件的开发已成
    发表于 04-20 08:43 8745次阅读

    基于CodeTEST的嵌入式软件测试技术

    嵌入式软件测试有助于提高嵌入式软件质量和可靠性。因此,利用CodeTEST相对于其他嵌入式软件
    发表于 01-17 15:53 41次下载

    ARM嵌入式软件开发

    ARM嵌入式软件开发ARM嵌入式软件开发ARM嵌入式软件开发
    发表于 01-15 17:29 64次下载

    嵌入式软件是什么意思_嵌入式软件的分类有哪些

    本文首先阐述了嵌入式软件的概念,其次介绍了嵌入式软件的特征,最后介绍了嵌入式软件的分类。
    发表于 08-31 15:54 1.6w次阅读

    嵌入式软件的开发流程_嵌入式软件的调试

    本文首先介绍了嵌入式软件的发展,其次阐述了嵌入式软件的开发流程,最后介绍了嵌入式软件的调试。
    发表于 08-31 16:02 6218次阅读

    嵌入式软件测试参考书籍

    嵌入式软件测试的几本参考书籍:1、《嵌入式软件测试》;2、《嵌入式软件测试 方法、案例与模板详解
    发表于 10-20 12:06 51次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>测试参考书籍

    嵌入式软件

    嵌入式跟其他纯软件开发不一样,嵌入式软件的基础是要懂硬件原理,要会看懂硬件电路图,所以要有数电和模电基础。哪些知识是嵌入式
    发表于 10-20 16:21 11次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>

    嵌入式软件测试研究意义,嵌入式软件测试的研究

    摘要:嵌入式系统在人类生活中发挥着重要的作用,包括飞行控制器这样的控制系统,以及洗衣机这样的家用电器。日前,嵌入式系统中软件的比重越来越大,也越来越复杂,保证嵌入式
    发表于 10-20 17:20 17次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>测试研究意义,<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>测试的研究

    嵌入式系统框架----软件

    1.overview 图1-1 嵌入式框架图嵌入式系统分为硬件以及软件两大部分,大多数人参与的是嵌入式
    发表于 10-20 19:21 5次下载
    <b class='flag-5'>嵌入式</b>系统框架----<b class='flag-5'>软件</b>篇

    嵌入式软件开发环境

    嵌入式软件开发环境1 简介嵌入式软件定义嵌入式系统构成2 环境搭建2.1 Qt2.2 CLion2.3 Source Insight + v
    发表于 10-21 12:21 7次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>开发环境

    嵌入式软件开发的特点、设计流程、嵌入式软件的结构

           嵌入式软件开发的特点、设计流程、嵌入式软件的结构 一:嵌入式软件开发的特点1.
    发表于 11-03 15:21 37次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>开发的特点、设计流程、<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>的结构

    谈谈汽车嵌入式软件

    嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统
    发表于 10-27 10:28 1089次阅读

    嵌入式开发中,嵌入式硬件和软件有什么区别?

    嵌入式指的是把软件直接烧录在硬件里,而不是安装在外部存储介质上,就像赋予机器人灵魂,从而方便人类操控。在嵌入式开发中,分为嵌入式硬件和嵌入式
    的头像 发表于 07-18 18:11 3363次阅读
    <b class='flag-5'>嵌入式</b>开发中,<b class='flag-5'>嵌入式</b>硬件和<b class='flag-5'>软件</b>有什么区别?