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

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

3天内不再提示

【笔记】自己用的16种代码规范

撞上电子 2023-06-08 10:46 次阅读

1. 命名规范:

-变量和函数名应使用有意义的名词或动词短语,描述其用途或功能。

inttemperature;//温度变量voidcalculateAverage();//计算平均值的函数

-使用驼峰命名法或下划线命名法来命名变量、函数和常量。

int sensorValue; // 驼峰命名法constintMAX_VALUE=100;//下划线命名法

-使用大写字母命名宏定义和枚举常量,并使用下划线分隔单词。

#defineBUFFER_SIZE256enumColor{RED,GREEN,BLUE};


2. 缩进和格式化:

-使用一致的缩进风格,通常是四个空格或一个制表符。-使用大括号和适当的缩进来组织代码块。

if(condition){ // 代码块}else{ // 代码块}

-适当地使用空格来提高可读性,例如在运算符、逗号和分号之间加入空格。

int sum = a + b;int i, j;for (i = 0; i < n; i++){  // 代码块}

-使用空行来分隔逻辑上相关的代码块,提高代码的可读性。

//代码块1
// 代码块2//代码块3


3. 注释:

-在代码上方或关键部分添加注释,解释代码的目的、功能和实现方法。-使用清晰明确的注释,避免使用模糊或不必要的注释。

// 计算两个数的和int sum(int a, int b){ return a + b;}

4. 函数和模块化:

-将代码划分为小而独立的函数,每个函数负责完成一个特定的任务。-函数应具有单一责任,只做一件事情,并遵循函数的输入输出原则。

//读取传感器值int readSensor(){ // 读取传感器代码 //... return sensorValue;}


5. 错误处理:

-对可能出现错误的代码块进行错误检查,并采取适当的错误处理措施。-使用返回值、错误码或异常处理来指示和处理错误情况。

int result = performOperation();if (result != SUCCESS){ // 错误处理代码 // ...}

6. 常量和魔法数值:

-避免在代码中直接使用魔法数值(未经解释的硬编码值),应将其定义为常量并使用常量名。

-常量的命名应具有描述性和可读性,以便理解其含义。

const int MAX_SIZE = 100;constfloatPI=3.14159;

7. 函数参数:

-如果函数参数较多,应考虑使用结构体或对象来传递参数,以减少函数参数列表的长度。-函数参数的顺序应该有逻辑性和一致性,便于阅读和使用。

voidprocessData(intid,floatvalue,constchar*name)


8. 错误处理和异常:

-在可能引发错误的代码块中使用适当的错误处理机制,例如返回错误码、抛出异常或执行回滚操作。-错误处理应该清晰明确,向调用者提供足够的信息以便调试和修复错误。

int result = performOperation();if (result != SUCCESS){ logError("操作执行失败: %d", result); return result;}


9. 可读性和注释:

-代码应具有良好的可读性,使用有意义的变量名和函数名,并避免使用过于复杂的表达式和嵌套结构。-注释应该清晰、简洁明了,并提供足够的上下文信息,帮助他人理解代码的意图和逻辑。

// 计算数组的平均值float calculateAverage(float* data, int size){ float sum = 0; for (int i = 0; i < size; i++) { sum += data[i]; } return sum / size;}


10. 单元测试和代码审查:

-编写适当的单元测试用例来验证代码的功能和正确性,确保代码的健壮性。-进行代码审查,让其他开发人员检查代码的质量和遵循规范的程度,以提供反馈和改进建议。
11. 模块化和函数长度:

-将代码分解为逻辑上独立的模块或函数,每个函数应该只负责一个具体的任务或功能。

-函数应保持简洁和紧凑,避免过长的函数体和过多的嵌套层级。长函数可以考虑进行重构和拆分。

12. 错误处理和异常:

-在可能引发错误的地方进行适当的错误处理和异常处理。捕获并处理错误,以避免程序崩溃或无法预料的行为。-在发生错误时,提供有意义的错误消息和日志,以便于调试和故障排除。

13. 持续集成和自动化测试:

-使用持续集成工具和自动化测试框架来验证代码的正确性和稳定性。-设置自动化测试套件,包括单元测试、集成测试和端到端测试,以捕获潜在的问题和保证代码质量。

14. 版本控制和代码管理:

-使用版本控制系统(如Git)来管理代码的版本和变更历史。-遵循合适的分支策略,确保不同功能和修复的代码可以独立开发和集成。-使用合适的注释和提交信息,清楚记录每个版本的变更内容和目的。

15. 性能优化和资源管理:

-针对性能敏感的代码段进行优化,包括算法改进、数据结构优化等。

-考虑资源的有效管理,包括内存分配和释放、文件句柄的管理等。

16. 编码标准和风格指南:

-遵循特定的编码标准和风格指南,如Google C++ Style Guide、GNU Coding Standards等。

-在团队中达成一致,并确保所有开发人员都遵循相同的规范。

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

    关注

    30

    文章

    4733

    浏览量

    68291
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28317
收藏 人收藏

    评论

    相关推荐

    IEEE 1394物理层晶体的选择和规范

    电子发烧友网站提供《IEEE 1394物理层晶体的选择和规范.pdf》资料免费下载
    发表于 09-30 11:03 0次下载
    IEEE 1394物理层<b class='flag-5'>用</b>晶体的选择和<b class='flag-5'>规范</b>

    16对语音配线架怎么

    16对语音配线架的使用主要涉及准备、安装、端接、测试等步骤。以下是一个详细的使用指南: 一、准备工作 材料准备: 16对语音配线架 16对大对数电缆 标签纸 剥线器 打线钳 壁纸刀 剪刀 尼龙扎带
    的头像 发表于 08-21 09:39 217次阅读

    6芯M16母头如何通过代码来识别其用途

      德索工程师说道需要明确的是,6芯M16母头作为一物理连接器,其用途并非通过代码来直接识别。代码是用于软件编程和数据处理的一工具,而6
    的头像 发表于 06-04 18:06 246次阅读
    6芯M<b class='flag-5'>16</b>母头如何通过<b class='flag-5'>代码</b>来识别其用途

    System 76推出14/16英寸双核16线程笔记本,售价1199美元起

    System 76于近期发布了Dart Pro 2024版笔记本,尺寸为14或16英寸,配备英特尔酷睿Ultra 5-125H和Ultra 7-155H处理器,售价从1199美元起(IT之家注:当前约8669元人民币)。
    的头像 发表于 05-11 10:17 495次阅读

    Simulink自动生成代码现阶段的学习笔记

    在车载控制器的软件开发中,simulink的身影几乎随处可见,主要是在控制算法和控制逻辑的实现。平时看同事点点点就生成代码了,看起来很简单,但是实际操作起来确各种磕磕绊绊。 下面记录了一下步骤作为现阶段的学习笔记吧。
    的头像 发表于 04-17 10:56 3608次阅读
    Simulink自动生成<b class='flag-5'>代码</b>现阶段的学习<b class='flag-5'>笔记</b>

    STSPIN32F01B MCSDK返回错误代码16或者32的原因?

    大家好,我最近STSPIN32F01B在一块另外开发的主板上做电机驱动开发,因为STSPIN32F01B上面只有一个OPA, 为了使用FOC的3电阻方案,电路板增加了3个外部的运放。我MCWB5.Y.4生成代码后,编译烧录后
    发表于 03-25 07:49

    跟优秀的人,学习记笔记!文末有看海的点评

    很多同学私信我,说自己学习时不会记笔记,要么是记录的非常潦草,没有保留有效信息。要么是把所有信息都抄到笔记本上,结果变成了抄书,自己都不想看。 我们学习时,怎么高效记录
    的头像 发表于 03-22 18:19 1137次阅读
    跟优秀的人,学习记<b class='flag-5'>笔记</b>!文末有看海的点评

    代码检查的方式有三

    【摘要】 代码检查中,提到的编程规范,规则集,规则,规则用例(场景、误报、检出)分别代表什么意思呢? 在 SAST 静态检查领域,代码检查服务可以帮助开发者发现和修复代码中的风格、质量
    的头像 发表于 02-25 10:08 802次阅读
    <b class='flag-5'>代码</b>检查的方式有三<b class='flag-5'>种</b>

    集成电路带卷包装规范

    电子发烧友网站提供《集成电路带卷包装规范.pdf》资料免费下载
    发表于 01-31 10:23 0次下载
    集成电路<b class='flag-5'>用</b>带卷包装<b class='flag-5'>规范</b>

    集成电路带卷规范

    电子发烧友网站提供《集成电路带卷规范.pdf》资料免费下载
    发表于 12-21 10:32 0次下载
    集成电路<b class='flag-5'>用</b>带卷<b class='flag-5'>规范</b>

    git commit代码提交规范

    接下来我就来实践一下,首先我这里使用的是pnpm安装依赖的。今天主要是在提交代码时稍微自动化一点,并且让提交规范统一一些。
    的头像 发表于 12-19 09:45 623次阅读
    git commit<b class='flag-5'>代码</b>提交<b class='flag-5'>规范</b>

    基于三相绝缘栅极双极性晶体管 (IGBT)的逆变器应用笔记

    电子发烧友网站提供《基于三相绝缘栅极双极性晶体管 (IGBT)的逆变器应用笔记.pdf》资料免费下载
    发表于 11-29 11:05 5次下载
    <b class='flag-5'>用</b>基于三相绝缘栅极双极性晶体管 (IGBT)的逆变器应用<b class='flag-5'>笔记</b>

    高性能、10位至16位旋变数字转换器电路笔记

    电子发烧友网站提供《高性能、10位至16位旋变数字转换器电路笔记.pdf》资料免费下载
    发表于 11-29 09:21 1次下载
    高性能、10位至<b class='flag-5'>16</b>位旋变数字转换器电路<b class='flag-5'>笔记</b>

    开关稳压器设计您自己的DC-DC转换器

    开关稳压器设计您自己的DC-DC转换器
    的头像 发表于 11-24 15:46 646次阅读
    <b class='flag-5'>用</b>开关稳压器设计您<b class='flag-5'>自己</b>的DC-DC转换器

    浅谈Verilog HDL代码编写风格

    消失了好久,没有写文章,也没有做笔记,因为最近再赶一个比赛,时间很紧,昨天周六终于结束了,所以趁着周末这会儿有时间,写点东西,记录下来。首先我学习FPGA才一年多,我知道自己没有资格谈论一些比较
    的头像 发表于 11-20 10:04 709次阅读
    浅谈Verilog HDL<b class='flag-5'>代码</b>编写风格