最近一个工作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年开发的老程序员,业余的时候在这里分享一些互联网资讯给大家,
如果你依然在编程的世界里迷茫,对前端开发感兴趣,不知道自己的未来规划,可以加入web前端学习交流群:784783012 里面可以与大神一起交流并走出迷茫。新手可免费领取学习资料,看看前辈们是如何在编程的世界里傲然前行不停更新最新的教程和学习方法(详细的前端项目实战教学视频),有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入
点击:加入
网友评论