项目代码命名规范

1.规范要求

1.1 遵循的基本原则

        1.标识符的命名要清晰明了,有明确含义,可以采用英文单词或中文拼写表示,使用完整的拼写或者易于理解的缩写,避免使人产生误解。较短的单词可通过去掉“元音”形成缩写,较长的单词可取单词的头几个字母形成缩写,尽量使用约定俗成的公认的缩写。

        2.命名中若使用特殊约定或缩写,则要有注释说明。应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。

        3.对于变量命名,禁止取单个字符(如i 、j 、k...),但i 、j 、k 作为局部循环变量是允许的。

        4.除非必要,不要用数字或特殊字符来定义标识符。

        5.用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。

        6.除了编译开关/头文件等特殊应用,应避免使用以下划线开始和结尾的定义。

        7.在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突。如可在接口部分的标识符之前加上“模块”的标识等。

        8.命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。

1.2 函数的命名规则

        注:下文提及的单词,指具有实际含义的一个英文单词或中文拼音的完整拼写或者缩写,比如Response、Rsp。 

        1.函数命名规则主体上采用“帕斯卡命名法”,即采用:所有的单词首字母大写,使用一个大写字母来标记逻辑断点,举例如下:

        void *MqttClientConnect(MqttClientParam *pParam);

        2.如果为了区分模块层次、逻辑层次,或者使用的单词个数比较多,可以使用下划线进行断开,举例如下:

        int Subscribe_BatchProPubReply(void *pClient);

        3.应确保每个函数声明中的参数的名称、类型和定义中的名称、类型一致。

        4.5G操作系统项目特别定义

        在项目功能开发时,函数分为内部实现函数和对外API接口函数。

        如果是内部实现函数遵循如上规则即可。

        如果是对外API接口函数,需要提供给外部使用,需要遵守如下格式:

        【UNI_模块名称_函数名称】

        模块名称和函数名称,所有单词首字母大写,并且遵循如上规则,举例如下:

        void *UNI_MQTT_Create(UniDevinfo *pDevinfo);

        int UNI_LwM2M_Register(void *pClient, uint32_t timeoutMs);

1.3 变量的命名规则

        注:下文提及的单词,指具有实际含义的一个英文单词或中文拼音的完整拼写或者缩写,比如Response、Rsp。

        1.变量命名规则主体上采用“骆驼命名法”,即采用:第一个单词首字母小写,余下的单词首字母大写,使用一个大写字母来标记逻辑断点,举例如下:

        char  moduleTime[14] = {0x00};

        int   voltage = 0;

        2.如果为了区分模块层次、逻辑层次,或者使用的单词个数比较多,可以使用下划线进行断开,举例如下:

        char subTopic_EventBatchReply[100] = {0x00};

        char subTopic_ServicePubReply[100] = {0x00};

        3.对于指针、构造类型的变量,为便于区分基础类型的变量,在规则1和2基础上,增加前后缀来区分命名。

        4.指针类型变量

        命名时前缀增加小写字母p(一重指针)或者pp(二重指针),剩余的单词首字母大写,举例如下:

        void *pClient = NULL; 

        void **ppDataBuff = NULL;

        5.结构体、共用体、枚举类型变量

        命名时前缀增加小写字母t,剩余的单词首字母大写,如果碰到是指针类型,为代码简洁考虑,可以省略t,举例如下:

        ShadowProperty  tProVoltage;

        ShadowProperty *pProperty;

        6.结构体、共用体、枚举类型名称

        结构体、共用体、枚举是构造类型,所以会有类型名称的定义。

        类型名称,要求所有单词首字母大写,后缀加上“-t”,而使用typedef 重命名的类型名称,要求所有单词首字母大写,没有后缀。两者命名完全一致,只是区别在是否带后缀。典型的类型名称定义如下:

        typedef struct ShadowProperty_t

        {

        char            *pkey;

        ShadowDatatype   tDataType;  

        void            *pReportData;

        int              reportDataLen;

        void            *pDesireData;

        int              desireDataLen;

        }ShadowProperty;

        typedef enum ShadowDatatype_t

        {

        SHADOW_NULL,

        SHADOW_STRING,

        SHADOW_INT,

        SHADOW_FLOAT,

        SHADOW_BOOL,

        }ShadowDatatype;

        枚举类型的内部变量是常量,要求全部大写,可以使用下划线分断。

        7.全局变量和静态变量

全局变量需要使用“g_”开头,剩余的单词首字母大写。

静态变量需要使用“s_”开头,剩余的单词首字母大写。

如果既是全局变量,又是静态变量,需要使用“gs_”开头。

举例如下:

char g_ProSetMsgID[20] = {0x00};

static char s_SubTopic[100] = {0x00};

        8.对常量命名,要求常量名用大写,可以使用下划线分断。

        9.项目特别定义

        在项目功能开发时,变量分为内部使用变量、外部使用变量(如全局变量、常量等)、对接开放的构造体(结构体、共用体、枚举)类型。

        如果是内部使用变量遵循如上规则即可。

        如果是外部使用变量、构造体类型等,需要遵守如下格式:

        【Uni+变量名称或者类型名称】、【UNI_常量】

        举例如下:

        全局变量:char g_UniDevAuthStr[65] = {0x00};

        构造体类型:

        typedef struct

        {

        char productKey[UNI_PRODUCT_KEY_LEN+1];

        char productSecret[UNI_PRODUCT_SECRET_LEN+1];

        char deviceKey[UNI_DEVICE_KEY_LEN+1];

              char deviceSecret[UNI_DEVICE_SECRET_LEN+1];

       char deviceToken[UNI_DEVICE_TOKEN_LEN+1];

              int  loginMod;

              int  firstReg;       

                int  tlsMod;

        }UniDevinfo;

        常量:UNI_DEVICE_TOKEN_LEN

1.4 AT命名规则

        AT接口按照标准规范制定,需要列出AT功能的测试、查询、设置和执行的格式,可能的响应,最大响应时间及使用举例,如下图举例:

        cmd的命令规则:

        UNI+模块命名+功能名称,模块名称和功能名称遵循标准的AT命名规则。

命令类型

命令

可能的响应

测试命令

AT+<cmd>=?

查询命令

AT+<cmd>?

设置命令

AT+<cmd>=<p1>[,<p2>[,<p3>[...]]]

执行命令

AT+<cmd>

最大响应时间

示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要在 Vite 中使用 PostCSS Modules,你需要执行以下步骤: 1. 安装 `postcss-modules` 插件: ```bash npm install postcss-modules --save-dev ``` 2. 在 `vite.config.js` 中配置 PostCSS: ```javascript import vue from '@vitejs/plugin-vue' import postcssModules from 'postcss-modules' export default { plugins: [ vue(), ], css: { postcss: { plugins: [ postcssModules({ generateScopedName: '[name]__[local]___[hash:base64:5]', }), ], }, }, } ``` 在上面的配置中,我们使用 `postcss-modules` 插件并设置 `generateScopedName` 选项以生成唯一的 CSS 类名。 3. 在 Vue 组件中使用 CSS Modules: ```vue <template> <div :class="$style.title">Hello world!</div> </template> <style module> .title { font-size: 24px; color: red; } </style> ``` 在上面的示例中,我们使用 `module` 属性启用了 CSS Modules,并使用 `$style` 对象来引用生成的唯一类名。 注意,如果你使用的是 Vue 3,你需要使用 `@vue/compiler-sfc` 版本 `^3.0.0-0` 或更高版本,并在 `vue.config.js` 中设置 `compilerOptions` 选项: ```javascript module.exports = { ... compilerOptions: { moduleIds: 'module', ... }, } ``` ### 回答2: vite是一个快速的Web开发工具,它提供了许多配置选项来满足不同项目的需求。其中之一是配置postcss-modules。 PostCSS是一个用于对CSS进行处理的工具,它可以通过插件来实现不同的功能,例如自动添加浏览器前缀、转换CSS变量等。而postcss-modules则是其中的一个插件,它可以让我们在编写CSS时使用类似于JavaScript模块的方式来管理样式。 在vite项目中配置postcss-modules需要以下几个步骤: 1. 首先,安装postcss-modules和postcss插件。可以使用npm或者yarn来安装。 ```shell npm install postcss-modules postcss --save ``` 2. 在项目的根目录下创建一个postcss.config.js文件,在该文件中进行postcss-modules的配置。 ```javascript module.exports = { plugins: [ require('postcss-modules')({ // 配置postcss-modules的选项 // 这里可以配置一些自定义的CSS类名生成规则等 }), // 其他的postcss插件可以在这里添加 ], }; ``` 3. 在vite的配置文件vite.config.js中引入postcss插件,并将postcss-modules添加到它的插件数组中。 ```javascript import { defineConfig } from 'vite'; import postcss from 'rollup-plugin-postcss'; export default defineConfig({ plugins: [ postcss(), // 其他的插件可以在这里添加 ], }); ``` 这样就完成了vite项目中postcss-modules的配置。接下来,我们可以在编写CSS样式时使用类似于JavaScript模块的导入和导出语法来管理样式。 总结:通过在vite项目中进行postcss-modules的配置,我们可以使用类似于JavaScript模块的方式来管理样式。这样可以提高样式的可读性和维护性,并且可以避免全局命名空间的冲突问题。 ### 回答3: vite配置postcss-modules可以通过以下步骤实现: 1. 首先,确认你已经在项目中安装了vite。如果没有安装,可以在命令行中运行以下命令进行安装: ``` npm install -g create-vite ``` 2. 创建一个新的vite项目。在命令行中运行以下命令: ``` create-vite my-project ``` 这将创建一个名为`my-project`的新文件夹,并在其中初始化一个新的vite项目。 3. 进入新创建的项目文件夹。在命令行中运行以下命令: ``` cd my-project ``` 4. 安装postcss-modules。在命令行中运行以下命令: ``` npm install postcss-modules ``` 5. 打开vite配置文件`vite.config.js`,并添加postcss-modules的配置。可以使用ES模块的方式导入postcss-modules,并在`css`插件中进行配置。示例代码如下所示: ```js import { defineConfig } from 'vite'; import postcssModules from 'postcss-modules'; export default defineConfig({ plugins: [ // ... postcss({ plugins: [ postcssModules({ generateScopedName: '[name]__[local]--[hash:base64:5]' }) ] }) ] }); ``` 在上面的配置中,`generateScopedName`属性用于定义生成CSS作用域的名称。你可以根据自己的需求进行调整。 6. 保存并关闭`vite.config.js`文件。重新启动项目(如果已经启动的话),以使配置生效。 完成以上步骤后,你的vite项目就已经成功配置了postcss-modules。现在,你可以在项目中使用postcss-modules来管理CSS模块和样式作用域了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值