You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

3.7 KiB

title date categories tags
总结一下我的代码风格 2020-06-16 15:43:54 [tech] <nil>

我的代码风格大致有以下几种情况:组织中追随组织领导,公司里老板说的都对,学校里大佬教的都好╮(╯▽╰)╭ 仅其它一些自己的开源小项目则遵循以下风格→_→

关于强迫症

首先说好,

四个空格的Tab缩进大法好!!! 四个空格的Tab缩进大法好!!! 四个空格的Tab缩进大法好!!!

大括号不换行!!! 大括号不换行!!! 大括号不换行!!!

关于命名

命名以让别人一眼就能明白为佳,理想中看你的代码就像读一首英语小诗般惬意 ::aru:insidious::

常/变量命名

编译器常量全大写,字符间用单下划线连接。如:

#define WIFI_PASSWD 12345

变量基本采用小驼峰命名,规则是单词之间直接连接(无需下划线),第一个单词全小写,之后的单词首字母大写。如:

String usrName = "IoTgod";

频繁调用的变量名称不易过长,但却要表意清晰。 要实现这一点,可以尝试部分省略单词中的非首字母元音,如 user 可以简写为 usr,password 可省略为 passwd 或 psswd。但简化后的名字仍需容易辨识。

全局变量使用 g_ 加变量名称命名,如

global int g_isLightOn = 0;

局部静态变量使用 s_ 加变量名称,如

static int s_errorCounter = 0;

常量变量,命名与普通变量一致,如

const float pi = 3.14159265;

函数命名

函数命名技巧偷师自大名鼎鼎的Nginx,并在其基础上稍有变动。 基本法则为 小写标签名+__(双下划线)+小写动词+小写名词() 名词与名词间用单下滑线链接。 例如:

function db__get_usr_info();

其中db意为Database, 提示这个函数属于数据库操作标签,作用是获取用户信息。

如果你不需要标签(比如在一些面向对象的语言中),你可以肆意省略标签。如:

function get_usr_info();
//or
function  db::get_usr_info();

与变量命名不同,函数命名不必要很短,以表达清楚函数功能为目标

关于注释

其实如果能把变量函数命名做好,便不需要什么注释了,但遗憾的是,,我们还是不得不注释。。

文件注释

文件注释主要用于声明一些文件功能,分类名,文件名,版权等信息,一个样式如下:

/**
 * cookie支持 #文件功能
 *
 * @category typecho #文件所属的分类
 * @package Cookie #文件名称
 * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org) #作者及版权信息
 * @license GNU General Public License 2.0 #开源协议
 * @version 2.1.1 #版本
 */

类注释

类注释用于声明类的一些基本信息,如类功能,作者姓名、所属分类、所属文件。例如:

/**
 * 数据库支持 #功能说明
 *
 * @author qining #作者
 * @category typecho #所属分类
 * @package Cookie #所在文件名称
 */

函数注释

函数注释在函数前,主要包含函数功能,函数修饰符,其各参数的类型、名称、以及文字说明,返回值的类型及文字说明。

/**
 * 获取指定的COOKIE值 #函数功能
 *
 * @access public #函数修饰符,即函数是否可被外界访问
 * @param string key 指定的参数 #参数1,类型为string, 名称为key, 功能描述为 指定的参数
 * @param string default 默认的参数 #参数2,类型string,名称default,功能描述 默认的参数
 * @return int #返回整形返回值
 */

一些小细节

  • 赋值等号两边要有空格,如b = c; b = 15;