程序员有哪些借口可以让自己写出低质量的代码?看完深有感触!

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統

提问:程序员有哪些借口可以让自己写出低质量的代码?

写出低质量的代码的特征包括但不限于:

·心安理得地写出低质量的代码

·最终写出了低质量代码却不在之后改善它

低质量的特征包括但不限于:

·文件关系混乱

·注释过期、不明确或者没有

·不检查API或者函数返回的errorcode或者exception

·没有单元测试等自动化测试过程

·到处复制代码,公用的部分不整理成内部库



匿名观点


  • ·    我很久很久以前曾经经历的一个公司特别傻比,人力资源和svn管理员不懂程序。

  • ·    作为服务端的主程序,一直以来都是代码精简,效率最优,没有冗余为毕生追求。

  • ·    突然我无意中发现了一个秘密,我的绩效居然不如几个公司刚招进来的新手。

  • ·    我每天刻苦努力,优化代码,让公司的服务端7*24稳稳跑在服务器上,还一心研究各种热切换,换来绩效考核好久没有优秀了。

  • ·    这究竟是为什么呢,后来好心人告诉我,人力资源说了,他们看了svn的日志记录,其他人工作很努力,每天提交很多代码,每天新编写很多很多代码文件,贡献了好多好多的劳动成果。

  • ·    而看看你这个号称技术排第一的家伙,根本就没干活嘛,3个月下来,你一共就写了这么十来个cpp和.h,每天改来改去就这么几个文件,还好多天差不多行数的位置回改,根本就一直在偷懒。

  • ·    我听完以后以后直接口吐鲜血,无语至极了。

  • ·    然后我就申请离职了,在那个公司剩下不多的日子了,我为了心安理得的拿最后2个月的工资,为了让老板知道其实我一直很努力,我在最后一个月更新了几千个文件,让服务端的内核稳定度下降了好几个档次,内存消耗上涨了好多个数量级,并且把容易读,容易后续扩展的部分,全部用c++最高级的模版进行扩展,同时删 掉了我以前用汇编写的优化代码。

  • ·    嗯,我想以后这个公司估计会倒闭,我走了以后,再也没有人能维护这份代码了,估计3个月以后,我自己也搞不定了。
    然后我就离职了,离职之前老板大夸我厚道,最后一个月还给公司做了这么多的事情,别人走都是删代码,我居然还毫无保留的为公司做出贡献。

  • ·    然后我走了不到半年,公司就呵呵了。

  • ·    我想那是我此生唯一写垃圾代码写的心安理得的一次机会了。




曾经是某电信公司的网站及应用负责人的观点


  • ·    每一个程序员在他的职业生涯中某一天都会突然获得开示,这种开示在通常某一个夜晚悄然降临,有时是以图灵本人托梦的形式出现。这一开示的主要内容如下:

  1. 程序员是真正理解思维和逻辑真谛的人。非程序员是被蒙蔽的无知者。

  2. 每一个程序员对于世界上其他程序员有着不可推卸的责任。每一个程序员都必须尽力维护程序员这一高贵种族的延续,并保证世界的命运控制在程序员手中,既不被无知者淹没,也不被机器智能取代。

  3. 完成这一使命的唯一方式,是保证稳定地出产低质量,难以理解,修改和维护的代码。每一个负责任的程序员,他每一年的产出,必须为另外三个程序员制造一年的就业机会。唯此,程序员一族可生生不息,整个IT行业欣欣向荣。

  4. 图灵大神在冥冥中微笑,他的纸带机将嗒嗒作响,直至永恒。




无节操的吐槽爱好者,写得一手萝莉的C++的观点


  “别想太多,先让代码work起来,大家都这么干的!”简直是神借口啊!

-----------------------------------------------------------------

  • 心安理得地写出低质量的代码

    亲,我是个傻逼来的,从来就没见过好代码或者根本不知道好代码长啥样子。我一直写烂代码,专注烂代码30年,挖坑挖到天荒地老。这不叫心安理得,而是天真无邪烂漫蠢!!!因为无知,所以不存在良心被谴责的问题。

  • 最终写出了低质量代码却不在之后改善它

    代码能work,我看不出有bug。喂喂,QA也测不出有bug啊。写单测浪费时间啦,我还有更多的代码要写。再说,这个 东西也不好测试啊,别太认真啦。。。由于原因A,我那么烂,我根本就不知道我写的代码很烂啊啊啊啊!
    哦哦,还有还有,我今天已经加班到11点了啊,确实不想再clean up以前的mess了。哦哦哦!不对,那些烂代码是离职的大石君写的。太君,不是我的错啊,我只是带路的啊啊啊!

  • 综上所述:
    不知者不罪,我都不知道我的代码烂,那何来改善?或者,我加班加成狗,哪有时间改善?

    PS:有鉴于我实在太烂了,有可能越改越烂,化神奇为腐朽,而且还会引入更多的bug。不不不!QA会测出来的!我绝壁不能这么干!!!既然能work,就让它这样好了恩恩。





前端码畜,INTJ,各种秒收FLAG的观点


LZ真的觉得程序员写出低质量的代码是需要理由的吗?

非也,大多数程序员只把写代码当作谋生的手段而已,上个班、领点钱。

Because they do not care.

写出高质量的代码,反而是需要理由的。



外资银行IT Payment Development的观点


首先我要向大家检讨,这样恶意求赞的方法是不对的,所以如果大家觉得我说得故事没意思可以取消赞。 (⊙_⊙!)

(啊喂!我说取消赞你就真取消赞啊, 酱紫还能愉快的答知乎上题目了吗?)

---------------------------------------------------

当我还是个实习僧的时候,我做了个项目,将在新加坡,台湾,马来西亚等地区分行上线。

一个小小实习僧就接了几百万美刀的项目啊!有多紧张多害怕你造吗?那种既喜欢又害怕的心情就跟便秘一样你造吗???
满心欢喜颤抖着接过User Requirement,洋洋洒洒的英文好鸡冻啊。

然后我一个月不到完成了第一阶段的Coding,我蹦啊跳啊到老板面前,‘Samseng,请赐予我高级武功秘籍吧’ ‘纳尼?没、、没了?⊙﹏⊙b汗’

满怀忐忑的上交了代码,(中间省略1万字打酱油的时间)莫名其妙就成功上线新加坡了。

台湾User Acceptance Testing 的时候,突然来问题了。 客户姓名还有地址栏很多繁体字显示不出来啊摔!
台湾嗲妹(后来才知道是大妈,为毛大妈的声音都这么嗲啊摔!默默对着声音撸了无数管了让我以后如何面对啊)说,老湿,怎么这么不给力啊。
我。。。。。。

问题最后发现是,中文字录入的时候格式是ASCII,一个字符占2个字节,输出到目标系统的时候是UTF-8,一个字符占3个字节,但是设计的时候,没有考虑到(鄙视所谓Architect)全部规定长度20.
问题发现了,如何解决呢?
台湾da嗲ma妹说,你介系统有bug啦,赶紧帮人家解决啦。
我老板默默拿出用户签的设计书sign-off文档。
台湾da嗲ma妹说,客户的名字都显示不出,客户都走了啦。
我老板默默拿出用户签的用户需求sign-off文档。
台湾da嗲ma妹找到大老板,你们的人都不给伦家解决问题,真系讨厌啦
大老板面无表情,烟雾弥漫中,若隐若现的声音传来,‘加钱’
台湾da嗲ma妹只好找到我,老湿,你要给力啊老湿
我。。。。
我想了个办法,超出20字符的我全部砍掉,强行把第19、20位字符赋空,于是顶多显示18/3 = 6个字。
台湾da嗲ma妹说,不给力啊,老湿
我。。。。那加钱吧。。。

台湾da嗲ma妹以讯雷不及掩耳盗铃儿响叮当机立断章取义博云天鸡不可泄露之势说,’那就按你说的方法做吧,谢谢,再见!‘(喂喂,加点钱能死吗?话说你为什么不发嗲了啊。T_T)
于是我瞒着老板给她写了这个fix。

(台湾上线一片坎坷,差点最后上线失败的说)

终于来到马来西亚了,这次换了个马来华人大叔。
我说,大叔,你要做好准备,台湾出了很多问题的。
大叔说,哦。
我说,大叔,这些question description的邮件你拿去,他们都不肯加钱呢。
大叔说,哦。
我说,大叔,那马来西亚就和台湾一样,就这样放了?
大叔说,哦。
我说,大叔,你不考虑考虑加钱强化强化点么?
大叔说,哦。
我。。。。。。。。。

然后,大叔转身找到马来技术部门自己开发了个类似的系统。。。。。。。。。。。。。。。

我终于明白那个等咱有了钱,豆浆买2杯,喝一杯倒一杯的哏了。

这边的项目都是先出钱再开始的,也就是说马来弄了2套一样的系统。。用一套,摆着鄙视一套。。

后来我问大叔,你们为什么不给我加钱,要自己做一套呢?
大叔说,你们,不能太惯。
我。。。。。。。。

—————————————————

谢不邀:

这个问题我必须回答一下,我从上家公司离职前也写了不少低质量代码。原因倒不是我有多么不负责任,而是老板让我这样。

事情是这样,走之前最后一个项目,本着好聚好散的态度,我以平常态度完成了代码,结果提交给老板审查的时候,老板说,你写这么复杂干嘛?给多少钱做多少事,并且你写这么复杂,以后谁来维护?把这些边路条件判断全删了,不用catch这些exception了,死就让他死了。到时候用户会加钱来增强功能的 blabla

于是,我走之前写了一段极简单毫无任何错误判断的代码。
—————————————————
如果赞过50我明天再分享几个奇葩案例给大家把,卖方市场强势的it领域就会诞生很多大家平时见不到的情况



“令狐冲”的观点



  • 严格来说,这不是问题的答案,而是针对高票答案的一个评论,但是一不小心超过了字数限制,只好发表在答案下面。

    这是个很有意思的答案,除了答案本身,还包括答案下的评论。

    答案下的评论分为两派,赞成派基本可以断定都是开发人员,相反提出异议的也可以断定大都不是开发人员,并且也可以断定反对派也大多是行业相关人员。说到底,对这个答案的评价基本上围绕着各自的切身利益展开。

    答案本身很精彩,不过很可惜,答主的行为在现实中不太容易发生。这无关法律、道德等方面的问题。一个习惯于高质量代码的程序员,实际上不大可能写出质量非常低劣的代码,并且还能让其正确运行。即使刻意的去编写这样的代码,删去优化的部分,恐怕仍然比没有质量意识的新手写出来的质量要高的多。

    恐怕不少程序员都动过类似的念头,最后没有付诸行动原因一般不是道德上的,而是工作量太大,没有可操作性。而且这个问题论及道德也很是怪异,“我按照你们的标准做了,怎么就不道德了?”

    看起来很讽刺,这个答案的矛头自然指向的是公司的管理层。粗略看来,似乎是这位程序员导致了公司的倒闭,但是纠其本质,使公司倒闭的是其制度。由于在制度上追求低劣的代码,就算这位程序员没有最后那两个月的行为,公司不倒闭也只能苟延残喘而已。

    这个答案基本上反映了软件行业中非程序员群体(包括部分程序员)和程序员群体对待质量标准以及评价体系上的巨大鸿沟,在很多水平较高的软件公司也是存在的,从评论中那么多反对的声音就可以看的出来。有人据此评价程序员的整体素质以及人格特征,但是从这些赞同的评论中恰恰可以说明程序员群体在这两个方面做了多少努力。一方面,程序员在尝试着按照世俗体系的标准做事,另一方面却要纠结于世俗体系带给软件开发的恶果。

    相比较赞同的评价以外,评论反对意见都显得文字很长,而且言辞激烈。这折射出一个现象,公司老板和产品经理一类的人由于对软件开发的不了解,对软件的开发以及程序员做事的方法和态度充 满了恐惧,只能一再的试图从道德的角度来约束程序员的行为。而这种道德的表达实际上平时根本没有落点,只有程序员自己陈述一些事实以后才有机会。

    不过上一段陈述其实不太严谨,因为从答案中可以看出,HR和svn管理员以及这位公司的老板也在进行着道德标准的表达,具体内容就是:“你看,这个人平时提 交这么点代码,工作一点都不努力,没有职业道德!”,程序员最后的行为虽然违背了自己的良心,但是却符合了这些人的道德标准。

    但是从社交的角度来讲,是写了很多烂代码让老板高高兴兴,然后和公司快快乐乐的分手好些呢,还是最后两个月什么都不干,留下优美但无人认可的代码然后黑着脸离开公司好呢?那些在评论中看不起程序员性格特征的却又对程序员有很多要求的同学们,正是你们让程序员们两头不是人,是不是可以试着收回你们的双重标准?

    请再仔细想一想,如果那位程序员自己不说,这世上有谁会认为他做了违背良心的事呢?绝大多数人恐怕都会像他的老板一样,大夸其厚道,负面的评价顶多是后来的程序员大骂其代码烂,而根本不会想到他是故意的!

    当然,这位程序员的行为并不值得提倡。

    ————

  • 最后为避免被折叠,补充一个和问题本身相关的答案:因为写高质量的代码并不能确保升职和加薪,而且还有可能起到反效果。

  • update:
    有个别反对者强调自己也是开发人员,这并没有什么奇怪。以上文字一开始就持谨慎态度,并没有把这两个群体绝对化,事实上不懂编程但同情开发人员的人也大有人在。这件事说到底还是个利益问题,出现在利益上存在处于反面情况的程序员一点都不奇怪。这一个群体有如下几种可能:

  • 1.管理层、骨干或换工作可能比较小的程序员

  • 2.公司流程比较规范,没有切身体会

  • 3.本身没有能力写出高质量的代码,因此对这位程序员的遭遇没有共鸣

  • 4.本身没有能力写出高质量的代码,因此是这种制度下的既得利益者

  • 5.真的能够客观理性的看待问题



来源:知乎



CocoaChina 2015-08-23 08:43:57

[新一篇] 盤點史上最具毀滅性的軟件Bug

[舊一篇] 高薪IT工作者做的工作是什么?
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表