引言
在软件开发中,命名通常被视为最棘手的挑战之一,因为它会影响代码的清晰性和可维护性。就如同在日常生活中,名字对于识别人、地点和事物至关重要一样,代码中的命名对于使代码易于理解和管理也必不可少。由于代码是由人编写的,所以在开发代码库时采用良好的命名规范非常重要。
我将分享《代码整洁之道》一书中关于良好和不良命名实践的一些关键见解,并附上示例来阐释这些概念。命名不仅关乎你如何标识自己的工作,还关乎其他人日后如何理解它,因此,它在软件开发中起着至关重要的作用。
使用表意明确的名称
选择能够清晰描述变量、方法或类用途的名称,让代码更易于理解。
// 糟糕的代码
int d;
// 整洁的代码
int daysUntilExpiration;
避免造成误导
避免使用可能产生误导或令人困惑的名称,这类名称可能会使代码更难理解。
// 糟糕的代码
int temp = 20; // “temp”代表什么?是温度?还是临时值?
// 整洁的代码
int temperatureCelsius = 20; // 清晰且明确的变量名
做出有意义的区分
确保名称能对实体进行有意义的区分,避免那些没有清晰表意作用的细微差别。
// 糟糕的代码
int data;
int data1;
// 整洁的代码
int userData;
int adminData;
使用便于发音的名称
使用易于发音的名称,以增进关于代码的交流沟通。
// 糟糕的代码
int genymdhmsepch; // 生成日期、年份、月份、日期、小时、分钟、秒(时间戳形式)
// 整洁的代码
int generationTimestampEpoch;
使用便于搜索的名称
使用易于搜索的名称,这有助于代码的导航和维护。
// 糟糕的代码
int x; // 某个重要的值
// 整洁的代码
int maxUserCount;
避免需额外解读的名称
选择那些不需要读者在脑海中进行额外解读或映射的名称。
// 糟糕的代码
int r; // 半径?比率?排名?
// 整洁的代码
int gardenRadius;
类名
类名应当是名词或名词短语,能够清晰地描述其所代表的实体。
// 糟糕的代码
class Data;
// 整洁的代码
class Customer;
方法名
方法名应当是动词或动词短语,用于描述所执行的操作。
// 糟糕的代码
void data(); // 它是做什么的?
// 整洁的代码
void saveCustomerData();
对每个概念使用单一词汇
在整个代码库中,对于特定概念要始终使用同一个术语来指代。
// 糟糕的代码
fetchData();
getUserData();
retrieveAdminData();
// 整洁的代码
fetchData();
fetchUserData();
fetchAdminData();
根据项目领域使用名称
使用项目领域内的术语,使代码更贴合其上下文,更直观易懂。
// 糟糕的代码
int count; // 在图书馆系统中不清楚它指代什么
// 整洁的代码
int overdueBookCount; // 在图书馆系统的语境下清晰明了
添加有意义的上下文
在名称中提供足够的上下文信息,以便代码能够独立被理解。
// 糟糕的代码
int value; // 什么的数值?
// 整洁的代码
int orderValue;
结论
总之,在软件开发中,命名是一项关键且具有挑战性的任务,它对代码的清晰性和可维护性有着重大影响。就像日常生活中的名字对于清晰沟通至关重要一样,代码中的名字对于确保代码库易于理解和管理也起着关键作用。
糟糕的命名会导致代码理解和维护上的混乱与困难,这就好比我独特的名字“阿基纳”常常引起混淆和发音错误一样。通过采用诸如《代码整洁之道》一书中所概述的良好命名实践,我们能够提升代码的可读性和可维护性。
有效的命名会影响代码的清晰性和可维护性,使其成为软件开发中极具价值的一个方面。
我计划撰写这本书的总结以及关键要点,以此提醒自己整洁代码的重要性,并与他人分享这些知识。
写在最后
如果你觉得这篇文章有意思,请考虑点赞并分享给其他人,让更多人能够看到它。
如果你对技术和软件开发感兴趣,我邀请你探索我的其他文章。你会发现一系列涉及编码、应用创建以及最新技术趋势等领域的主题。无论你是经验丰富的开发者还是刚入门的新手,这里都有适合你的内容。
关注我的公众号【AIGC前沿洞察】获取更多内容