如何让命名变得优雅

简介:

1.概述

  在写这篇文章时,我也是酝酿了许久;在平时编码时,也经常苦于如何命名让变量,函数及类变都优雅,美观。因为,有时候看回过头来看代码发现,一 个变量或是函数名特别是有单词组合都时候,会觉得有些单词组合在一起,看起来很别扭。举个例子,如类型统 计:typeStats,statsType,categoryStats,statsCategory。其中2看的最别扭,3其次,1和4都还可以接 受。当然这个也不是说2,3不行,这里我只是想说明命名之前,我尽可能的多组合自己的变量,使最后的命名更加优雅。

2.心得

  这里总结一下自己在平时多使用心得,故总结以下心得:

  2.1不同多代码段采用不同段命名长度

类型 长度
循环变量 1
方法 1-2
2-3
全局变量 3-4

 

  2.2对变量采用具体对命名方式

  “value”,“equals”,“data”在任何情况下都不是一种有效对命名方式。

  2.3采用有意义对命名

  变量的名字必须能够准确反应它的含义和内容。

  2.4变量不需要前缀标签来表示自己使一个变量

  如: n_,obj_,_p

  2.5遵循公司的变量命名规则,在项目中坚持使用同一种变量命名方式

  如:txtUserName,lblUserName,cmbIsAdmin等,否则会对可读性造成影响,而且会令查找/替换工具(find/replace tools)不可用。

  2.6遵循当前语言对变量命名规则

  在命名使,要和当前的命名规则匹配,不要另起规则。常见的问题:userName,username,UserName,USER_NAME等。

以Java的规则为例:

  • 类名使用驼峰命名法:AppDedail
  • 包名使用小写:cn.company.utils(cn.company.业务名)
  • 变量使用首字母小写的驼峰命名法:appInfo
  • 常量使用全大写:MAX_SIZE
  • 枚举类采用驼峰命名法,枚举值采用全大写:Configure,APP,APP_NAME
  • 除了常量和枚举值以外,不要使用下划线:“_”

  2.7在同一个类不同的场景中不要复用变量名

  

public class App{
      public App(String appName){
            String name = appName;
            // ....... 省略后面的代码 ......  
      }  
      
      public void show(AppDetail app){
            String name = app.getAppName();// 构造方法中已使用name变量
            String appName = app.getAppName();
      }
}

  如:在方法,初始化方法和类中,这样做可以提高可读性和可维护性。

  2.8不要对不同使用目的对变量使用同一变量名

  同2.7一样,赋予它们不同的名字,这样对保持可读性和可维护性很重要。

  2.9变量名不要使用非ASCII字符

  这样做的后果会导致在跨平台使用时产生问题。

  2.10不要使用过长的变量名

  变量名不要超过50字符,过长的变量名会导致代码丑陋和难以阅读,还可能因为字符限制在某些编译器上存在兼容性问题。

  2.11仅使用一种自然语言来命名

  例如:在同时使用英语和日文来命名会导致理解不一致和降低代码的可读性。

  2.12使用有意义的方法名

  方法名必须准确表达该方法的行为,在多数情况下以动词开头,如:createPassword。

  2.13遵循公司的方法命名规则

  在项目注坚持使用同一种方法命名方式,如:getTxtUserName(),isAdmin(),updateUserInfo(),否则会对可读性造成影响,而且会令查找/替换工具不可用。

  2.14遵循当前语言的变量命名规则

  在命名时,不要不统一的使用大小写字母,如:

  以Java为例:

  • 方法使用首字母大小写的驼峰命名法:getStudentInfo
  • 方法参数使用首字母大小写的驼峰命名法:insertStudentInfo(Student stu)

  2.15使用有意义的方法参数命名

  这样做可以在没有文档的情况下尽量做到“见明知意”。

3.总结

  细节很重要,平时编码时需要注意的一些细节,时刻记住,我们编码是为了让别人更好的去阅读你的代码,而不是“迷惑”别人。一次在阅读代码时发现以前一哥们写的注释,我瞬间内心暖暖的。大概内容如下:

private int getSummary(Manager manager){
       //  为了BT的需求,破坏了代码优雅的结构( ̄▽ ̄)
}
  最后说一句,同是程序员,程序员何苦为难程序员!!!
目录
相关文章
|
2月前
|
人工智能 安全 API
2026 最新版 OpenClaw 快速安装与常见疑问解答(包含新安装包)
提供 2026 最新版 OpenClaw 的快速安装流程,省去复杂配置步骤,并汇总用户在安装和使用中高频出现的疑问,统一进行清晰解答。
idea 懒人神器 保存自动格式化 Save Action插件
idea 懒人神器 保存自动格式化 Save Action插件
1664 0
idea 懒人神器 保存自动格式化 Save Action插件
|
11月前
|
存储 监控 安全
RFID技术让停车场进出入更高效
随着生活水平提高,私家车普及导致小区车位紧张。RFID技术应用于停车场管理,通过电子标签自动识别车辆信息,提升进出效率,减少等待时间,优化停车体验,并助力智能交通发展。
|
Prometheus Cloud Native 网络安全
Prometheus+Grafana+Alertmanager部署教程(超详细)
Prometheus+Grafana+Alertmanager部署教程(超详细)
3377 0
Prometheus+Grafana+Alertmanager部署教程(超详细)
|
Rust 安全 前端开发
30天拿下Rust之图形编程
30天拿下Rust之图形编程
577 0
|
XML Java 测试技术
《手把手教你》系列基础篇(八十二)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-上篇(详解教程)
【6月更文挑战第23天】TestNG 是一个用于自动化测试的 Java 框架,它自动生成测试报告,包括 HTML 和 XML 格式。报告可在 `test-output` 文件夹中找到。要创建测试用例,可创建一个实现了 `@Test` 注解的方法。通过 `testng.xml` 配置文件来组织和执行测试。默认报告包括测试结果、失败点和原因。用户还能实现 `ITestListener` 和 `IReporter` 接口来自定义报告和记录器。
355 2
|
存储 弹性计算 安全
2024年阿里云服务器2核2G和2核4G配置可选实例规格及收费标准与优惠价格参考
阿里云服务器2核2G和2核4G配置可选实例规格及价格是多少?根据阿里云2024年的收费标准及活动价格来看,2核2G配置轻量应用服务器的最优惠的价格是61元1年,云服务器2核2G配置的价格为99元1年,轻量应用服务器2核4G的价格为165元1年,通用算力型u1实例2核4G的价格为199元1年。不同实例的价格有所不同,下面是2核2G和2核4G配置可选实例规格详解及优惠价格参考。
2024年阿里云服务器2核2G和2核4G配置可选实例规格及收费标准与优惠价格参考
|
机器学习/深度学习 人工智能 算法
机器学习【教育领域及其平台搭建】
机器学习【教育领域及其平台搭建】
515 6
|
存储 监控 NoSQL
|
机器学习/深度学习 人工智能 搜索推荐