哥们儿,今天想跟大家唠唠我这些年是怎么一步步搞定那些让人头大的代码命名的。说起来都是泪,以前每次开新项目,或者写个新功能,最纠结的就是给变量、函数、类起名字。你是不是也这样?
刚开始那会儿,我真是野路子出身,写代码那叫一个随心所欲。比如一个列表,我就叫它list1,下一个就是list2。循环变量不是i就是j,再多就直接k、l招呼上。时间一久,自己都看不懂自己写的啥玩意儿。尤其是有时候项目放了一段时间,再回头看,简直像看天书,改个bug都得从头到尾重新捋一遍逻辑。那时候头发真是掉了一大把,每次写代码都感觉自己像个没头苍蝇。
后来吃亏吃多了,我才意识到,代码命名这玩意儿,真不是小事,它直接影响你能不能顺畅地接着写下去,也影响别人能不能看懂你的代码,更别说团队协作了。我就下定决心,得把这块儿好好补起来。
起步:先从“抄作业”开始
我尝试的方法就是“抄作业”。我跑到GitHub上,专门找那些评分高、很多人用的开源项目。我就挑那些跟我业务比较相关的项目,比如我当时在做数据处理,就去找那些数据分析或者工具类的项目。我一个文件一个文件地翻,一行代码一行代码地看,去琢磨人家是怎么给变量、函数甚至文件名起名字的。我发现,那些好的项目,命名是真的讲究。比如一个存储用户信息的变量,人家会叫userInfo或者userProfile,而不是简单的data。一个处理文件的方法,会叫processFile或者handleFileUpload,一看就知道它是干嘛的。我就把这些觉得好的命名方式记录下来,自己写的时候就尝试模仿。
进阶:跳进大厂的“命名规范”坑
光“抄作业”还是不够系统。我就开始在网上搜“大厂命名规范”,或者“编程命名最佳实践”。我发现很多大公司,比如谷歌、阿里巴巴、腾讯这些,都有自己的内部代码规范文档,有些是公开的。我就去找这些文档来看。这些文档里头写的可细了,比如变量用小驼峰,类名用大驼峰,常量全大写加下划线,布尔类型变量要加is或has前缀等等。虽然一开始看觉得条条框框特别多,有点死板,但是照着做了一段时间,我发现代码一下子清晰了很多。我那时候还专门建了个本地的文本文件,把这些规范都拷进去,每次写代码前都瞄一眼,慢慢地也就形成了习惯。
实战:利用IDE和插件来辅助
光靠脑子记肯定不行,有时候写着写着就忘了。我就开始利用手里的开发工具。我用的那些IDE(比如VS Code、IntelliJ IDEA),它们都有很多插件。我就去找那些跟代码规范或者代码质量相关的插件。这些插件往往能帮你检查代码,发现那些不符合规范的命名。比如你定义了一个变量叫a,它可能会警告你,“这个变量名太短了,不容易理解”。还有些插件,你输入一半的单词,它就能给你推荐一堆相关的词,帮你找到更合适的命名。我记得当时有一个专门针对Python的插件,我写一个函数,刚敲def get_user_,它就能蹦出get_user_info、get_user_profile这些选项,简直是懒人福音,也省去了我自己冥思苦想的时间。
交流:跟同行“胡说八道”
除了自己看文档、用工具,我还喜欢跟同行们瞎聊。我经常在一些技术社区、或者我们公司内部的聊天群里,看到有人讨论代码命名的问题。有时候遇到一些特别难命名的功能,我就会直接把我的困惑抛出来,大家一起集思广益。比如有一次我负责一个“撤销操作”的功能,开始我叫它rollback,结果有人说rollback听起来像数据库回滚,容易误解,不如叫undoAction或者revertChange更贴切。跟他们一交流,我才发现,原来命名还需要考虑语境和避免歧义。这些活生生的讨论,比你看一万遍规范文档都管用。我还会刻意去关注一些知名的技术博主,看他们平时怎么分享代码经验的,尤其是那些关于代码可读性、可维护性的文章,里面总会提到命名的问题,我都会认真琢磨。
就这么一点一滴地积累下来,从一开始的瞎胡闹,到后来的有章法,再到现在的习惯成自然。现在我写代码,基本上不会再为起名字发愁了。好的命名就像给代码穿上了合适的衣服,让人一眼就能看明白,代码读起来也顺畅多了,自己维护起来更是省心。要是你也在为代码命名发愁,不妨试试我上面说的这些法子。找找开源项目,看看大厂规范,用好你的IDE插件,再多跟同行交流交流,慢慢地,你也能轻松搞定这些“CS好名字”的。
