天天看点

如何拥有一个优雅的变量名?

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

来源:网络

我有一个同事,能力很强,BUG率很低。

但我每次看他的变量命名,都有种想打人的冲动,也不是我太菜,只是.....(直接上代码吧。)

totalNumberOfItems = 150
averageProcessingTime = 5.25
maximumAllowedConnections = 100
configurationSettings = {"timeout": 30, "retries": 5}
initializationParameters = {"mode": "auto", "threshold": 0.75}
temporaryFilePath = "/tmp/data.txt"
currentUserSession = "abc123xyz"
databaseConnectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
applicationErrorMessage = "An unexpected error occurred."
userAuthenticationToken = "abcdef123456"
           

这样看起来还好,但是结合到到应用中就会变成这样:

public class AppDemo {
public static void main(String[] args) {
// 定义变量
int totalNumberOfItems = 150;
double averageProcessingTime = 5.25;
int maximumAllowedConnections = 100;
// 配置设置
 Map<String, Integer> configurationSettings = new HashMap<>();
 configurationSettings.put("timeout", 30);
 configurationSettings.put("retries", 5);
// 初始化参数
 Map<String, Object> initializationParameters = new HashMap<>();
 initializationParameters.put("mode", "auto");
 initializationParameters.put("threshold", 0.75);
// 临时文件路径
 String temporaryFilePath = "/tmp/data.txt";
// 当前用户会话
 String currentUserSession = "abc123xyz";
// 数据库连接字符串
 String databaseConnectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
// 应用程序错误信息
 String applicationErrorMessage = "An unexpected error occurred.";
// 用户认证令牌
 String userAuthenticationToken = "abcdef123456";
// 输出变量值
 System.out.println("Total Number of Items: " + totalNumberOfItems);
 System.out.println("Average Processing Time: " + averageProcessingTime);
 System.out.println("Maximum Allowed Connections: " + maximumAllowedConnections);
 System.out.println("Configuration Settings: " + configurationSettings);
 System.out.println("Initialization Parameters: " + initializationParameters);
 System.out.println("Temporary File Path: " + temporaryFilePath);
 System.out.println("Current User Session: " + currentUserSession);
 System.out.println("Database Connection String: " + databaseConnectionString);
 System.out.println("Application Error Message: " + applicationErrorMessage);
 System.out.println("User Authentication Token: " + userAuthenticationToken);
 }
}
           

如果业务逻辑再复杂点,代码我觉得就不能看了。

我觉得会命名简洁的缩写变量名让代码观感有质的提升!!

请看以下代码!

import java.util.HashMap;
import java.util.Map;

public class AppDemo {
public static void main(String[] args) {
// 定义变量
int ttlItems = 150;
double avgTime = 5.25;
int maxConns = 100;
// 配置设置
 Map<String, Integer> config = new HashMap<>();
 config.put("timeout", 30);
 config.put("retries", 5);
// 初始化参数
 Map<String, Object> initParams = new HashMap<>();
 initParams.put("mode", "auto");
 initParams.put("threshold", 0.75);
// 临时文件路径
 String tmpPath = "/tmp/data.txt";
// 当前用户会话
 String curSess = "abc123xyz";
// 数据库连接字符串
 String dbStr = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
// 应用程序错误信息
 String errMsg = "An unexpected error occurred.";
// 用户认证令牌
 String authTok = "abcdef123456";
// 输出变量值
 System.out.println("Total Items: " + ttlItems);
 System.out.println("Average Time: " + avgTime);
 System.out.println("Maximum Connections: " + maxConns);
 System.out.println("Configuration Settings: " + config);
 System.out.println("Initialization Parameters: " + initParams);
 System.out.println("Temporary File Path: " + tmpPath);
 System.out.println("Current User Session: " + curSess);
 System.out.println("Database Connection String: " + dbStr);
 System.out.println("Application Error Message: " + errMsg);
 System.out.println("User Authentication Token: " + authTok);
 }
}
           

如何命名优雅的缩写变量名?

变量名缩写规则通常涉及以下几项原则:

简洁明了

变量名应尽量简短,但同时要有意义,能够反映变量的内容或用途。

例如,

totalCount

可以缩写为

tCount

去除元音

可以去掉变量名中的元音以缩短长度。

例如,

comment

可以缩写为

cmt

total

可以缩写为

ttl

一个单词超过8个字母的,建议使用缩写。

使用驼峰式命名

对于多个单词组成的变量名,采用驼峰式命名法,使每个单词的首字母大写,紧凑在一起。

例如,

userName

可以缩写为

uName

避免歧义

即使是缩写,也要确保变量名不易混淆或产生歧义。

例如,

maximum

可以缩写为

max

,但不要缩写为

m

,因为太短且不具备辨识度。

开发常用缩写参照

  1. Identifier(标识符)
  • identifier

    ->

    id

  • Message(消息)
    • message

      ->

      msg

    • messages

      ->

      msgs

  • Number(数字)
    • number

      ->

      num

  • Length(长度)
    • length

      ->

      len

  • Index(索引)
    • index

      ->

      idx

  • Count(计数)
    • count

      ->

      cnt

  • Value(值)
    • value

      ->

      val

  • Parameter(参数)
    • parameter

      ->

      param

    • parameters

      ->

      params

  • Temporary(临时)
    • temporary

      ->

      tmp

  • Configuration(配置)
    • configuration

      ->

      config

    • configuration

      ->

      cfg

  • Information(信息)
    • information

      ->

      info

  • Database(数据库)
    • database

      ->

      db

    组合词缩减

    1. User Profile(用户资料)
    • userProfile

      ->

      uProf

  • Session Token(会话令牌)
    • sessionToken

      ->

      sessTok

  • Transaction ID(交易ID)
    • transactionID

      ->

      transID

  • Maximum Value(最大值)
    • maximumValue

      ->

      maxVal

  • Minimum Value(最小值)
    • minimumValue

      ->

      minVal

  • File Name(文件名)
    • fileName

      ->

      fName

  • Database Connection(数据库连接)
    • databaseConnection

      ->

      dbConn

  • Configuration File(配置文件)
    • configurationFile

      ->

      cfgFile

  • Application Programming Interface(应用程序接口)
    • applicationProgrammingInterface

      ->

      api

  • Primary Key(主键)
    • primaryKey

      ->

      pk

    其他

    1. 用户信息相关
    • userName

      ->

      uName

    • userEmail

      ->

      uEmail

    • userPassword

      ->

      uPwd

  • 文件操作相关
    • filePath

      ->

      fPath

    • fileSize

      ->

      fSize

    • fileExtension

      ->

      fExt

  • 时间相关
    • currentTime

      ->

      curTime

  • 网络请求相关
    • requestURL

      ->

      reqURL

    • responseData

      ->

      resData

    • responseCode

      ->

      resCode

    最后

    你们有见过哪种变量名很长,可以在评论区留言,让大家一起讨论下如何缩短它!

    - EOF -

    文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

    推荐阅读 点击标题可跳转

    1、Python 项目工程化最佳实践

    2、Python 可以比 C 还要快!

    3、streamlit,一个超强的 Python 库

    4、豆瓣8.9分的C++经典之作,免费送!

    5、Python 3.12 版本有什么变化?

    最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

    如何拥有一个优雅的变量名?

    回复下方「关键词」,获取优质资源

    回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

    告诉你更多细节干货

    欢迎围观我的朋友圈

    👆每天更新所想所悟