最近一个工作4年的老同事离职了,领导让我接手维护他的功能并把代码交给我。
我拿到代码一看,变量命名大部分都是 fuck,shit 之类的粗话,甚至 for 循环用于 break 的 label 也命名为 FUCK_FOREACH,JUnit 测试导出的文件也带有 Fuck 字样,而且通篇没有注释,应该就剩数据库的表命名没带粗话了。。。
我这里没有 code review,貌似领导也不知道,不知道那个老同事经历了什么,我的天!!!
你们会在代码里带粗话吗?
「 被命名逼疯的节奏 」
说真的,看到这些代码的时候,我下意识的揣测这位老哥,一定是被变量命名给逼疯了。
当你代码敲多了,就会深有体会,天知道变量名有多难取?!我绝大数情况下是不会用脏话的,不管是调试代码还是注释,除非要用作很强烈的状语,比如:
var theList - 列表
var theLongList - 长列表
var theFxxkingLongList - 超 TM 长列表
如果逼到让我不得不夹带粗话来命名,我一般都会进行自我洗脑:命名最重要的是语义明确,执行的话不管用什么单词,编译后都只是地址而已。
我相信,曾经在代码里带过粗话的,不在少数。
很多程序员英语不好,有时候实在不知道该怎么描述的时候,比如://这段代码是用来干掉一个 bug -> just fuck a bug!
有时候遇到比较蛋疼又让人来火的 bug,调试时的日志中可能会写一些,但是一般问题解决之后,日志我都会删除。
命名有时候真的令人捉急,让人头大,情有可原。
「 小伙儿戾气太重 」
除了被命名逼疯,还有一类程序员,戾气太重,纯粹是为了宣泄。
我曾经见过一些程序员,在debug 打 log 的时候会写 wtf、fuck、shit - -。。。
我在想,这是对公司有多大怨念。说真的,看到别人将粗话写在注释里面的话,只要不影响阅读就没事儿。写在文档里面的话,就想掀桌子了。
当然,我也在猜想这些夹带在代码中的粗话,是在怎样的开发场景中诞生的,会不会是加班时的产物呢?也不一定。
之前忘了在哪看到,一个哥们半夜加班时,哭诉重构项目里的变量全是用食物命名的,此时当事人早已哭晕在厕所。
假如有负面情绪,就自我调整吧,别写进代码里。写进去可能就没劲了,被别人看到会感觉你这人戾气很重,不好相处。
再说,如果是为了效率,这种随便的字符串不都是 fsdfddaf 就完了,何必f**k呢?
说真的,变量命名这块儿,公司有规定按规定来,没规定哪那么多戏。
「 都成年人了,专业点好么 」
如果变量命名大部分都是 fuck,shit 之类的粗话,这就有点过分了。
说的严肃点,没有职业精神。
不得不说,开发过程,调试过程,思考过程有时候我也会写。但是,当思路梳理清晰后,我会重新起一个准确的命名。
有时候debug 的时候输出的调试信息会带 fuckXXX 的,但是 debug 完了自然就删了。这就没事,权当是程序员的自娱自乐。
其实我感觉脏话作为动词 /助词都没啥问题,毕竟不影响别人阅读代码。
但是作为名词或者句子就是很没水平的行为了,这种人就算不用脏话命名变量,估计也是拼音和 ABC。
个人感觉工作是工作,聊天是聊天,和关系亲密的朋友之间聊天的话,各种卧槽尼玛四不四撒怎么说都没关系,工作的话还是要以工作的态度来面对,像 fuck 这种表达感情的词写在注释中简直毫无意义,还不如精准的进行业务描述或者错误描述。
说到底,代码这东西,一个作用是让机器阅读,另一个重要的作用是让人阅读。一个好的变量名,能帮助阅读者了解变量的作用,也辅助了对整段代码的理解。
所以,不管你是新手还是老鸟,务必了解行业规范,切勿为了标新立异而违反规范。
我自己是一名从事了6年开发的老程序员,业余的时候在这里分享一些互联网资讯给大家,
原文地址:https://blog.51cto.com/14284898/2382913