Qt 代码编程规范(自用)

Posted on 2023-03-16 11:29  筱筱竹林  阅读(192)  评论(0编辑  收藏  举报

因:目前为止,自己都没有一个明确的代码编写规范,导致一个项目一种编写风格,看起来真费劲。。。希望自己能定一个合心意的代码规范,之后按照这个规范写代码。

 

1、首先是头文件的格式和注释

// 文件注释
/****************************************************************************
**
** Copyright (C) 2023 bamboogrove
**
** Project: code-standards (项目命名规范: 单词全部小写,单词之间使用 - 连接)
**
** File: code_standards.h (文件命名规范:单词全部小写,单词之间使用 _ 连接)
**
** Author: 筱筱竹林
**
** Date: 2023-03-15
**
** Description: 代码的书写规范
**
****************************************************************************/

// (自我约束)
// 每一行的代码长度不能超过 80 !
// 每一个函数的长度不能超过 20 行 (越短越好)

// 所有头文件都应该有 #define 
// 可以按照格式 <PROJECT>_<PATH>_<FILE>_H_ 来进行命名。
// 个人感觉不需要,只需要用格式 <FILE>_H_ 就可以了。(FILE用作类名)因为类名为 CodeStandards ,而一个项目里面不应该有两个相同的类名。
#ifndef CODESTANDARDS_H_
#define CODESTANDARDS_H_

#include <QObject>

// 前置声明(所谓「前置声明」(forward declaration)是类、函数和模板的纯粹声明,没伴随着其定义.)
class Object;

// 枚举
// (枚举命名格式 名词 或者 名词短语)
// (枚举命名规范:枚举对象和成员变量,单词均采用首字母大写,且单词之间没有空格)
enum Standards
{
    High = 0, 
    Low, 
    VeryHigh, 
    VeryLow 
};

// (类命名规范:每个单词首字母大写,单词中间没有间隔)
class CodeStandards : public QObject
{
    Q_OBJECT
    
public:// 1
    explicit CodeStandards(QObject *parent = nullptr);
    
public slots:// 2
    // (槽函数函数命名格式:动词 + 名词)
    void changeStandard();// (槽函数命名规范:采用小写字母开头,第二个单词开始首字母大写)
    
// 有的命名规范在信号前面加signal_ 槽函数前面家slot_ 还在考虑自己要不要加
signals:// 3
    // (信号命名格式:名词 + 过去分词)(我喜欢将 standard changed 理解为 标准被改变了 或 标准发生发改变)
    void standardChanged();// (信号命名规范:采用小写字母开头,第二个单词开始首字母大写)

private slots: // 4
    void removeItem(const QString &item);
    
private:// 5
    void init();// (函数命名规范:采用小写字母开头,第二个单词开始首字母大写)
    
    Object *object_;// (变量命名规范:均采用小写单词,每个单词之间使用 _ 进行连接,在最后的结尾添加 _ 表示类成员变量)临时变量则没有最后的下划线_
    Ojbect *my_object_;
};

#endif // CODE_STANDARDS_H_

注:2023-03-16 写的代码规范感觉很乱,而且不完善,需要将注释、命名格式和命名规范分开写。慢慢完善吧。