美文网首页前端学习
代码里带粗话,是被命名逼疯还是戾气太重?

代码里带粗话,是被命名逼疯还是戾气太重?

作者: 1194b60087a9 | 来源:发表于2019-04-15 11:49 被阅读0次

    最近一个工作三年的老同事离职了,领导让我接手维护他的功能并把代码交给我。

    我拿到代码一看,变量命名大部分都是 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 这种表达感情的词写在注释中简直毫无意义,还不如精准的进行业务描述或者错误描述。

    「 程序员的自我修养 」

    我觉得,写出一段优美,健壮,可读性高的代码,是一个程序员最基本的自我修养。

    在程序员这个圈子很久了,就发现,程序员这货,都喜欢这套,“这个接口干嘛用的,有文档么”,“自己看代码去”。很多时候都是一脸黑。

    尽管程序员阅读别人代码技术都是一流,不管你是有没有注释,不管你是怎么循环嵌套,也不管你是怎么命名,他们都能耐心的,把代码分析个所以然来。

    但,对于程序员这个视时间宝贵如生命,分分钟都能创造几百万价值的群体来说,您行行好,给我们省点时间吧,把变量是干啥用的,说清楚呗,没准节省的这几分钟,多赚个几万,还能请大家出去嗨呢。

    每每看到部门的某大神,用一个神一般的变量名“flag”,我就有吐血的冲动,他还将这个flag一直雪藏,不用,只是传递到第n个方法才使用,顿时心力交瘁,我的天,这个flag都是是干嘛用的啊,后来才明白,是isPay的意思,用来标识用户是否支付成功了。

    当时一口老血吐屏幕上,心里狂吐槽,老兄,你命名个isPay会死么,我的脑细胞这么不值钱么。

    到后来看到,去魔法数字,用int NUM_7 = 7,而不是MAX_MEMBERS来表示最大成员、用x y z来命名变量名,各种只有作者,或者作者后来都忘了的独特命名方式,都见怪不怪了。

    更有甚者,一个变量命名为passed,作用居然是“未通过”的意思,当时就石化了,作者还真是用心良苦,这都要考我细心不细心。

    说到底,代码这东西,一个作用是让机器阅读,另一个重要的作用是让人阅读。一个好的变量名,能帮助阅读者了解变量的作用,也辅助了对整段代码的理解。

    所以,不管你是新手还是老鸟,务必了解行业规范,切勿为了标新立异而违反规范。

    今天就讲这么多,如果你有相同的经历或者不同的想法,欢迎在留言区告诉我~

    十五年编程经验,整理了一批2019年最新WEB前端教学视频,帮助自学前端,想转行学习前端的同学,不论是学习规划、学习路线、学习资料、问题解答。加入WEB前端学习群:296212562。解决你学习路上所有的难题。

    相关文章

      网友评论

        本文标题:代码里带粗话,是被命名逼疯还是戾气太重?

        本文链接:https://www.haomeiwen.com/subject/dufuwqtx.html