乐趣区

关于程序员:命名规范与原则

命名标准与准则

前言

任何事务都有本身名字,也能够说名字是任何事务的属性之一。咱们常说这个或那个名字获得好,那好在哪里呢?在我看来,名字是疾速意识和理解一个事务最间接的形式。

在《代码整洁之道》这本书中通知咱们,一个有意义的命名到底有如许的重要。作为一名普普通通的码农,怎么样能力让他人一眼就能晓得你的代码,那就须要学会去标准本身的代码命名治理。

命名准则

因为历史的驱动下,英文作为全球性通用语言。很多的事务都耳濡目染得用英文去示意。

应用正确的词汇

形容

在咱们的我的项目或代码中,尽可能应用正确的英文单词,不要拼写错误。如果英文不好的小伙伴,能够上网搜寻进行纠正。

示例

// 坏的
clound

// 好的
cloud

应用具体的词汇

形容

因为咱们我的项目或代码经常是与业务挂钩,所以 非必要 状况下,尽可能别把词汇定得太宽泛,最好可能聚焦到某一个具体的业务块。

示例

// 坏的
data
info

// 好的
userData
userInfo

留神组合词汇定义方向

形容

咱们习惯的浏览形式是从左往右,人通常对映入眼帘的第一个货色印象粗浅。

示例

// 坏的
dataUser
infoUser

// 好的
userData
userInfo

禁止发明或虚构词汇

形容

次要体现为:应用拼音或不能敌对辨认的词汇、应用本人发明的缩写等等

尽可能少用拼音,因为很多开发软件或其他人并不意识。

尽可能不要本人发明缩写,能够先查找下词汇自身是否有业余缩写模式。尽管看起来简短,但很难让人一下子就了解。

示例

// 坏的
fangfa

// 好的
function

应用对仗词汇

形容

示例

open/close
min/max
show/hide
...

命名标准

我的项目命名

形容

  • 全副采纳小写
  • 采纳串行命名法1 或 蛇形命名法2

示例

形式一:串行命名法

my-project

形式二:蛇形命名法

my_project

目录命名

指文件夹、层级构造

形容

  • 采纳小写串行命名法(举荐)1
  • 采纳小写蛇形命名法(纳闷)
  • 采纳小写驼峰命名法(纳闷)

示例

形式一:小写串行命名法

- project
 - code-web
 - code-svr
 - code-pwa
 - ...

形式二:小写蛇形命名法

- project
 - code_web
 - code_svr
 - code_pwa

形式三:小写驼峰命名法

- project
 - codeWeb
 - codeSvr
 - codePwa

文件命名

形容

  • 采纳小驼峰命名法

示例

utils.js
style.css
getName.py
...

组件命名

形容

  • 采纳大驼峰命名法

示例

这里以 Vue 为例(index.vue 除外)

HelloWorld.vue
...

门路命名

路由、门路、URL

形容

  • 采纳小驼峰命名法

示例

/get/list
/get/userName

款式类命名

前端 css 款式类(Class)

形容

  • 采纳串行命名法1

示例

.head-top{}
.head-foot{}

留神

  • 基于姓氏命名法(继承 + 外来)

    • 在子孙模块数量可预测的状况下,继承先人模块的命名前缀
    • 当子孙模块超过 4 级或以上的状况下,能够思考在先人模块内具备识辨性的独立缩写作为新的子孙模块

图片命名

形容

  • 采纳串行命名法1 或 蛇形命名法2

举荐格局

业务(可选)+ 性能类别(必选)+ 模块名称(可选)+ 精度(可选)

图片业务: 广告(gg_)、学习(st_)等
性能类别: 按钮(btn_)、背景(bg_)等
模块名称: 头像(avatar_)、静止(spot_)等
精度: @1x|@2x|@3x

示例

形式一:串行命名法

my-image.png

形式二:蛇形命名法

my_image.png

常量命名

形容

  • 采纳 大写 蛇形命名法2

示例

MAX_NUM

变量命名

形容

  • 全局变量,采纳大写蛇形命名法
  • 个别变量,采纳小驼峰命名法和小写蛇形命名法
  • 实例变量,以_结尾的小写蛇形命名法
  • 公有实例变量,以__结尾(2 个下划线)的小写蛇形命名法
  • 专有变量,以__结尾,__结尾的小写蛇形命名法

示例

// 全局变量
NAME
USER_NAME

// 个别变量
user
userName

// 实例变量
_user_var
_user_name_var

// 公有实例变量
__user_var
__user_name_var

// 专有变量
__user__
__user_name__

对象类命名

类是名词,示意一个对象

形容

  • 采纳大驼峰命名法

示例

class Account ... {}
class MyAccount ... {}

办法命名

办法或函数是动词或动宾短语,示意一个动作

形容

  • 采纳小驼峰命名法
  • 采纳小写蛇形命名法

示例

// 小驼峰命名法
function get() {}
function getName() {}

// 小写蛇形命名法
function get() {}
function get_name() {}

结语

咱们能够应用一些工具来帮忙命名,如果在几个单词之间摇摆不定,就去查看英英释义和例句。


  1. 串行命名法: 单词之间通过连字符“-”连贯 ↩
  2. 蛇形命名法: 单词之间通过下划线“_”连贯 ↩
退出移动版