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

    文章

    4908

    浏览量

    71297
  • 变量
    +关注

    关注

    0

    文章

    614

    浏览量

    29096
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VSCode 编写自己的 KiCad 插件(下)

    “ ?很多小伙伴都想自己开发 KiCad 插件,但不知从何入手。本文由abg欧博电子的另一位 KiCad 开发者波波同学撰写,分享了如何快速搭建环境,并开发一个简单的插件。? ” ? ? ? 所有环境配置
    的头像 发表于 06-19 11:44 ?1659次阅读
    <b class='flag-5'>用</b> VSCode 编写<b class='flag-5'>自己</b>的 KiCad 插件(下)

    同样的代码在官方开发板上运行正常,在自己板子上就跑不起来,怎么办?

    同样的代码在Nordic官方开发板上可以运行正常,但在自己板子上就跑不起来,如果你碰到了上述情况,建议按照如下步骤进行自检: 首先确认用户板元器件焊接良好,功能正常。如果你的板子有LED的话,你可以
    的头像 发表于 05-12 15:26 ?299次阅读
    同样的<b class='flag-5'>代码</b>在官方开发板上运行正常,在<b class='flag-5'>自己</b>板子上就跑不起来,怎么办?

    如何为micropython添加自己的C代码库?

    部分代码需要更高效的效率 如何为micropython添加自己的C代码库? 是否有教程? 如果可以的话是否可以提供一个实现实例?
    发表于 03-11 07:03

    模电手账笔记16

    模电手账笔记16
    的头像 发表于 03-03 16:17 ?376次阅读
    模电手账<b class='flag-5'>笔记</b>(<b class='flag-5'>16</b>)

    代码与传统开发的区别 低代码与无代码开发的区别

    在软件开发领域,传统开发、低代码开发以及无代码开发是三不同的开发方式,每种方式都有其独特的优势和适用场景。 一、低代码开发与传统开发的区别 低代码
    的头像 发表于 01-31 10:48 ?756次阅读

    2025款LG gram Pro笔记本首销

    耐用,还提供泰坦蓝、白色和金属灰等多种配色。 配置方面,该笔记本可选英特尔酷睿Ultra7 255H/256V处理器。内存有16GB或32GB的LPDDR5x可选,搭配1TB的PCIe 4.0 SSD
    的头像 发表于 01-23 14:51 ?645次阅读

    华为支付接入规范

    空白页拉起收银台。 华为支付设计规范 华为支付是一方便、安全和快捷的支付方式。 1.场景介绍 华为支付图标通常在收银台等界面展示,如下图所示: 图标大小 在核心使用场景下的实际尺寸通常有 48x48
    发表于 01-23 09:27

    云服务器 Flexus X 实例:部署 Gitea,拥有自己的 Git 仓库,管理本地代码

    、零售、金融、游戏等众多领域的通用工作负载需求。本文旨在详细阐述如何高效利用“云服务器 Flexus X 实例”,包括如何在其中从零开始,通过安装相关依赖、安装 Docker、安装 Gitea 等步骤,实现自己的 Git 仓库,管理本地代码。精彩内容,不容错过,快来一探究
    的头像 发表于 01-07 16:59 ?493次阅读
    云服务器 Flexus X 实例:部署 Gitea,拥有<b class='flag-5'>自己</b>的 Git 仓库,管理本地<b class='flag-5'>代码</b>

    自己电脑搭建云主机,自己电脑如何搭建云主机?

    ? 如今,服务器远程连接技术正逐渐成为行业的新宠,它代表着服务器管理领域向高效化、智能化迈进的发展趋势。本文将带你剖析自己电脑如何搭建云主机。 自己电脑搭建云主机是一经济实惠且具有可行性的选择
    的头像 发表于 01-06 09:55 ?1084次阅读
    <b class='flag-5'>自己</b>电脑搭建云主机,<b class='flag-5'>自己</b>电脑如何搭建云主机?

    基于 Flexus 云服务器 X 实例的应用场景 - 私有化部署自己笔记平台

    ,为其他人提供一些便利帮助。 一般记录自己笔记的方式有好多种,比如在开源的博客平台上发布,比如 CSDN,博客园,51CTO 博客、公众号等。另一方式就是:自己部署一款私有化的
    的头像 发表于 01-02 09:55 ?441次阅读
    基于 Flexus 云服务器 X 实例的应用场景 - 私有化部署<b class='flag-5'>自己</b>的<b class='flag-5'>笔记</b>平台

    笔记本网络连接故障

    我的笔记本电脑能够连接学校的wifi,但连接不上自己手机的热点,不知道如何解决这个问题。 这是手机热点(连接不了) ![image.png] (https://file1.elecfans.com
    发表于 12-02 15:33

    Java代码之美,从遵循样式规范开始

    至关重要。本文将带你探索Java代码的美学,揭示那些能够让你的代码既美观又高效的样式规范。无论是初出茅庐的新手还是经验丰富的老手,都能从中获得灵感,提升编码的艺术。 一、为什么要代码
    的头像 发表于 11-27 11:42 ?673次阅读
    Java<b class='flag-5'>代码</b>之美,从遵循样式<b class='flag-5'>规范</b>开始

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

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

    怎么样提高verilog代码编写水平?

    优秀代码:在网上查找开源的、经过验证的高质量 Verilog 代码,学习他人的编程风格、代码结构和设计思路。 实践项目:尝试自己设计和实现一些较为复杂的项目,如复杂的控制器、数据处理模
    发表于 09-25 20:05

    ida反编译出来代码能直接

    IDA反编译出来的代码通常 不能直接使用 ,这主要基于以下几个方面的原因: 一、代码的不完整性 IDA反编译生成的代码可能缺少原始源代码中的某些关键信息。在编译过程中,编译器会优化
    的头像 发表于 09-02 10:55 ?1555次阅读