你好,我是坚持分享干货的 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
,因为太短且不具备辨识度。
开发常用缩写参照
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
组合词缩减
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
其他
用户信息相关
userName
->uName
userEmail
->uEmail
userPassword
->uPwd
文件操作相关
filePath
->fPath
fileSize
->fSize
fileExtension
->fExt
时间相关
currentTime
->curTime
网络请求相关
requestURL
->reqURL
responseData
->resData
responseCode
->resCode
最后
你们有见过哪种变量名很长,可以在评论区留言,让大家一起讨论下如何缩短它!
- EOF -
文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~
推荐阅读 点击标题可跳转
最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。
长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:
回复下方「关键词」,获取优质资源
回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版
回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版
👇关注我的公众号👇
告诉你更多细节干货
欢迎围观我的朋友圈
👆每天更新所想所悟