当前位置: 首页 > news >正文

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标

  • 代码简洁精炼、美观,可持续性好
  • 高效率
  • 高复用,可移植性好
  • 高内聚,低耦合
  • 没有冗余
  • 规范性,代码有规可循,可以看出自己当时的思考过程
  • 特殊排版,特殊语法,特殊指令,必须特别说明
  • 锻炼代码抽象思维
  • 参考书籍,高质量程序设计指南:C语言,林锐

2、代码风格好的好处

  • 代码分层明显,方便在开发中明确接口,确定具体任务
  • 良好的代码风格有助于拆分业务逻辑,减少文档工作

3、代码的基本架构

BSP(板级驱动程序,外设的驱动)
Core(MCU驱动程序,初始化内部的时钟、IIC、SPI,包括main.c)
Drivers(厂商驱动程序——厂商SDK程序)
Middlewares(中间件——各个项目通用,抽象性高,例如FreeRTOS数学库中所包含的快速傅里叶变换库)
SYSTEM(系统配置层——对系统定义整体的宏)
Application(应用层——根据业务)
 

代码规范NOTE:

1、多个数据的printf需要进行换行及对齐处理

图1 长数据的printf规范写法实例

2、在书写函数时注意是否需要使用返回值,使用的话,有没有在判断返回值非法时打印出出错的具体原因,方便后续程序在出错时进行排查。例如在申请内存时出错。

3、或者在某个模式启动、参数存储、消息发送之类的场景(短时间内触发一次或少次)中有没有对关键参数进行打印。例如某个函数的职责是负责接受APP发送过来的数据并且通过调用其他的API接口来设置参数,此时就需要将参数通过打印的方式Printf的方式打印出来。

单片机串口打印调试信息①_mcu jlink调试串口打印设置-CSDN博客

4、写NULL == ARR,而不是ARR = NULL

图2 注意在进行条件判断时,元素的先后展示顺序

5、一份优秀的应用层代码应该是先能够抽象出所需要实现的API接口功能,即先画靶子再射箭。体现在代码上就是能先在头文件上确定可暴露在外部的接口函数功能,然后可以在源文件内完成对这些接口函数的编写。也就是可以先建立接口函数的逻辑。而编写接口函数时,接口函数内的分点注释其实就相当于该函数的逻辑。则应做到先有头文件再有源文件,先有逻辑注释再有功能代码

层级职责可见性
应用层接口定义业务逻辑接口公开(头文件)
服务层实现接口核心逻辑文件内可见(static函数)
数据层参数获取与转换完全封装(static变量+函数)

http://www.xdnf.cn/news/931825.html

相关文章:

  • 分形几何在医学可视化中的应用:从理论到Python实战
  • 元素水平垂直居中的方法
  • Jinja2深度解析与应用指南
  • 高等数学》(同济大学·第7版)第三章第四节“函数的单调性与曲线的凹凸性“
  • 开源大模型网关:One API实现主流AI模型API的统一管理与分发
  • 【C++系列】智能指针自定义析构
  • 如何将淘宝店铺商品搬到抖店去?利用 API 实现淘宝店铺商品到抖店的高效迁移
  • 5-C#的DateTime使用
  • Web后端基础(基础知识)
  • 基于PTN传输承载的4G网络-故障未连接...(我不理解哪错了排查了几遍没发现哪错啊啊啊啊)
  • AI架构师如何创建自己的知识库
  • JS手写代码篇---手写ajax
  • 计组_导学
  • 云备份项目
  • 行为型设计模式之Mediator(中介者)
  • java面试:JAVA并发篇
  • android计算器代码
  • uni-app学习笔记二十四--showLoading和showModal的用法
  • 自然语言处理——文本表示
  • 泛型约束:用于限制泛型类型参数的范围
  • 力扣HOT100之二分查找:4. 寻找两个正序数组的中位数
  • 深入解析 Pandas 核心数据结构:Series 与 DataFrame
  • ubuntu 安装 sougou
  • c++ 头文件
  • iview组件库:当后台返回到的数据与使用官网组件指定的字段不匹配时,进行修改某个属性名再将response数据渲染到页面上的处理
  • 海思Hi3798MV310_V39_HMS DDR3_安卓9.0_外贸盒update升级包
  • ALOHA ACT算法与源码笔记
  • Keil进阶操作
  • 前沿探索:可视化助力设备运维实现跨越式发展
  • JAVA反序列化应用 : URLDNS案例