规范的命名-以小见大

命名的原则

  • 可读性:命名应该具有清晰的含义,易于理解和解释,避免使用过于简单或晦涩的名称。
  • 一致性:保持命名风格的一致性,遵循团队或项目的命名约定。
  • 描述性:命名应该尽可能地描述对象或概念的含义和用途。
  • 避免缩写和简写:除非缩写是广泛接受的或约定俗成的,否则应避免过多使用缩写和简写。
  • 避免保留字和关键字:不要使用编程语言中的保留字和关键字作为命名,以免引起语法错误。

命名的场景

变量和常量

变量命名

  • 小驼峰式命名:变量名以小写字母开头,后续单词首字母大写。
    • 例如:count, userAge, orderTotal.

常量命名

  • 大写加下划线:所有字母大写,单词之间用下划线分隔。
    • 例如:MAX_VALUE, DEFAULT_TIMEOUT, PI.

函数和方法

  • 小驼峰式命名:函数和方法名以小写字母开头,后续单词首字母大写。
    • 例如:calculateScore(), getUserInfo(), processOrder().

类和对象

  • 大驼峰式命名:类和对象名每个单词首字母大写。
    • 例如:Person, Customer, OrderDetail.

文件和目录

  • 小写加下划线:文件和目录名全部小写,单词之间用下划线分隔。
    • 例如:index.html, my_script.js, user_data.

数据库表和列

表命名

  • 前缀加下划线:通常以T_开头,后续单词用下划线分隔。
    • 例如:T_user_info, T_order_detail.

列命名

  • 小写加下划线:列名全部小写,单词之间用下划线分隔。
    • 例如:user_id, email_address, order_date.

枚举和常量

枚举

  • 大驼峰式命名:枚举类型名每个单词首字母大写。
    • 例如:Color, Status.

常量

  • 大写加下划线:所有字母大写,单词之间用下划线分隔。
    • 例如:PI, MAX_RETRIES.

模块和包

  • 小写加点分隔:模块和包名全部小写,层级之间用点分隔。
    • 例如:utils, com.example.myapp, org.apache.commons.

错误和异常

  • 大驼峰式命名:错误和异常类型名每个单词首字母大写。
    • 例如:FileNotFoundError, NullReferenceException, InvalidArgumentException.

线程和进程

  • 小驼峰式命名:线程和进程名以小写字母开头,后续单词首字母大写。
    • 例如:workerThread, mainProcess, backgroundTask.

RESTful API 路径和资源

  • 小写加斜杠分隔:路径和资源名全部小写,层级之间用斜杠分隔。
    • 例如:/users, /orders/123, /products/search.

GUI 元素和控件

  • 小驼峰式命名:元素和控件名以小写字母开头,后续单词首字母大写。
    • 例如:submitButton, usernameTextField, loginForm.

测试用例和断言

  • 小驼峰式命名:测试用例和断言名以小写字母开头,后续单词首字母大写。
    • 例如:testCalculateScore, assertEqual, verifyUserLogin.

配置项和参数

配置项

  • 小写加点分隔:配置项名全部小写,层级之间用点分隔。
    • 例如:timeout.seconds, database.url.

代码参数

  • 小驼峰式命名:参数名以小写字母开头,后续单词首字母大写。
    • 例如:timeoutSeconds, databaseUrl.

日志和日志级别

日志级别

  • 大写:日志级别名全部大写。
    • 例如:DEBUG, ERROR, INFO.

日志消息

  • 小驼峰式命名:日志消息

命名的格式风格

驼峰命名法(Camel Case)

  • 首字母小写的驼峰命名(lowerCamelCase):常用于命名变量、方法和函数。例如:myVariable, calculateScore().
  • 首字母大写的驼峰命名(UpperCamelCase,也称为帕斯卡命名法):常用于命名类和接口。例如:Person, CustomerService

下划线命名法(Snake Case)

  • 全部小写字母,单词之间用下划线分隔:常用于数据库表名、文件名和URL。例如:user_table, sales_report.csv

全部大写的下划线命名法(SCREAMING_SNAKE_CASE)

  • 所有字母大写,单词之间用下划线分隔:常用于常量和枚举。例如:MAX_VALUE, COLOR_RED

匈牙利命名法(Hungarian Notation)

  • 在变量名前加上一个或多个小写字母前缀,表示变量的类型或其他属性。例如:strName, nCount

首字母缩写命名法(Initialism)

  • 使用首字母缩写来表示多个单词,单词之间没有分隔符。例如:HTML, XML, URL

链式命名法(Chaining Case)

  • 单词之间使用连字符(减号)分隔。也称为短横线命名法。例如:user-name, page-title

包路径命名法(Dot Case)

  • 使用点号分隔单词,常用于表示包路径或命名空间。例如:com.example.myapp, System.IO.File.

帕斯卡与下划线混合命名法(Pascal Case with Underscores)

  • 首字母大写的驼峰命名,单词之间使用下划线分隔。例如:Create_User, Calculate_Score.

网络命名风格(Web Style)

  • 通常用于 URL、URI 或 Web 相关的命名,使用连字符(减号)分隔单词。例如:page-title, user-profile.

前缀和后缀命名法(Prefix/Suffix)

  • 在命名中添加特定的前缀或后缀以表示含义、类型或作用。例如:isReady, hasPermission, calculateTotalAmount.

一些常见设计模式及其典型方法名的介绍:

创建型模式

单例模式(Singleton)

  • getInstance(): 提供全局访问点,确保只创建一个实例。

工厂方法模式(Factory Method)

  • createXXX(): 创建对象的方法,具体对象类型由子类决定。

抽象工厂模式(Abstract Factory)

  • createXXX(): 创建一系列相关对象的方法。

Builder 模式

  • build(): 构建并返回最终对象。
  • setXXX(): 设置对象的属性。

原型模式(Prototype)

  • clone(): 返回对象的一个副本。

结构型模式

适配器模式(Adapter)

  • request(): 客户端调用的方法,适配器将调用转换为适配者的方法。

装饰器模式(Decorator)

  • decoratedObject(): 返回被装饰对象。
  • operation(): 定义一个接口,具体实现由子类提供。

代理模式(Proxy)

  • subject(): 返回实际执行操作的对象。
  • request(): 代理对象的方法,可能包含额外的逻辑。

行为型模式

命令模式(Command)

  • execute(): 执行命令的方法。
  • undo(): 撤销命令的方法。

责任链模式(Chain of Responsibility)

  • handleRequest(): 处理请求的方法,可能会转发给下一个处理者。

观察者模式(Observer)

  • update(): 观察者接收到通知时调用的方法。
  • subscribe(): 注册观察者的方法。
  • unsubscribe(): 注销观察者的方法。

策略模式(Strategy)

  • algorithm(): 策略接口中定义的操作。

模板方法模式(Template Method)

  • templateMethod(): 定义算法骨架的方法。

访问者模式(Visitor)

  • visitXXX(): 对不同类型的元素执行操作的方法。

状态模式(State)

  • handle(): 根据当前状态处理请求的方法。

备忘录模式(Memento)

  • saveMemento(): 保存当前状态的方法。
  • restoreMemento(): 恢复状态的方法。

迭代器模式(Iterator)

  • next(): 移动到下一个元素。
  • hasNext(): 检查是否有更多元素。

中介者模式(Mediator)

  • mediate(): 中介者协调各个同事对象的方法。
  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值