程序员要考哪些证有哪些借口可以让自己写出低质量的代码

深夜食堂 · 此生唯一的垃圾代码
除了「deadline 紧」以外,程序员还有什么借口可以让自己写出低质量的代码?
我很久很久以前曾经在一家公司,人力资源和 svn 管理员不懂程序。
作为服务端的主程序,一直以来都是代码精简,效率最优,没有冗余为毕生追求。
突然我无意中发现了一个秘密,我的绩效居然不如几个公司刚招进来的新手。
我每天刻苦努力,优化代码,让公司的服务端 7*24 稳稳跑在服务器上,还一心研究各种热切换,换来绩效考核好久没有优秀了。
这究竟是为什么呢,后来好心人告诉我,人力资源说了,他们看了 svn 的日志记录,其他人工作很努力,每天提交很多代码,每天新编写很多很多代码文件,贡献了好多好多的劳动成果。
而看看你这个号称技术排第一的家伙,根本就没干活嘛,3 个月下来,你一共就写了这么十来个 cpp 和.h,每天改来改去就这么几个文件,还好多天差不多行数的位置回改,根本就一直在偷懒。
我听完以后以后直接口吐鲜血,无语至极了。
然后我就申请离职了,在那个公司剩下不多的日子了,我为了心安理得的拿最后 2 个月的工资,为了让老板知道其实我一直很努力,我在最后一个月更新了几千个文件,让服务端的内核稳定度下降了好几个档次,内存消耗上涨了好多个数量级,并且把容易读,容易后续扩展的部分,全部用 c++ 最高级的模版进行扩展,同时删掉了我以前用汇编写的优化代码。
嗯,我想以后这个公司估计会倒闭,我走了以后,再也没有人能维护这份代码了,估计 3 个月以后,我自己也搞不定了。
然后我就离职了,离职之前老板大夸我厚道,最后一个月还给公司做了这么多的事情,别人走都是删代码,我居然还毫无保留的为公司做出贡献。
然后我走了不到半年,公司就呵呵了。
我想那是我此生唯一写垃圾代码写的心安理得的一次机会了。还可以输入150字
标题已超出10个字
您发布过于频繁,请2分钟后重新发布
登录后才可以发表评论哦!可以选择
赶紧当第一个评论者吧!
您可能感兴趣的新闻:
24小时挨踢1024 TOP 10
服务器提了一个问题
翻译成白话就是:大家都是狗,为什么你可以不吃屎?
遇到灾祸先断网是掌握宇宙真理国家的常规手段了
请问服务器宕机是一种什么样的体验。
每次看到顶配版三个字,都莫名戳中笑点
外来的和尚三观正哈
早15年又有什么卵用
我的白日梦是得到抽屉里所有的女人!这样会提高我的创造力~
应该是:大家都是屎,为什么有狗吃你,没狗来吃我?!程序员应该如何测试自己的程序代码(2)_单元测试方法_领测软件测试网
程序员应该如何测试自己的程序代码(2)
发表于:来源:淘测试作者:刘湛点击数:
单元测试是最基本的,也是最容易执行的,更是成本最低的一种测试方法,让开发做好单元测试,可以说是有了开发自测。开发不讨厌写代码,而且还擅长
  单元测试是最基本的,也是最容易执行的,更是成本最低的一种测试方法,让开发做好单元测试,可以说是有了开发自测。开发不讨厌写代码,而且还擅长写代码,但是开发厌恶搭建测试环境准备测试数据,而这恰恰是测试擅长的,那么,可以考虑针对单元测试可以为开发做些什么。就单元测试来说,除了xunit,Mock是最好的单元,让开发掌握了mock技术,然后让开发了解单元测试思路,开发会爱上单元测试的,开发也希望自己写的代码有测试代码保证。关于单元测试,衡量的最常用的标准就是持续集成和代码覆盖率,让开发写单元测试代码,还要让开发能够对单元测试有成就感,当开发的单元测试代码每天都被构建并且将测试结果发送给开发,当有代码变动引起了单元测试构建,构建结果发现了bug,开发会认识到单元测试的价值,会热衷于进行单元测试,如果开发写的代码覆盖率很高,对开发来说,也是一种成就感。
  4. 代码review
  开发完成了单元测试,组织开发进行代码review也是非常有必要的,代码review不完全是为了找出代码中的错误,更重要的是可以让有经验的开发对代码的设计进行审查,降低代码的复杂度,耦合性,减少重复无用的代码,能够使得代码更好的和其他系统进集成,同时,测试参与代码review,可以对代码的可测性提出建议。
  代码review看起来很美好,但是执行起来却绝非易事,因为开发实现了某个功能,review的时候却发现这种实现方式不是很美好,开发会觉得反正功能是可用的,等后面有时间再进行修改,这样的理由也无可厚非,但是,现在的修改可能只是一两个小时,后面的修改却是一两个日常,让开发或者开发TL意识到这种时间的差别,可能对代码review的接受程度会更高
  5. 集成测试
  我们做的接口测试,无论是service的接口测试还是层的接口测试其实就是集成测试,因为都需要依赖一定的外部环境,比如,比如其他系统提供的接口,接口测试一般是在开发编码完成以后进行,要进行开发自测,接口测试可以提前进行,在开发进行设计的时候,产品/项目需要几个接口,这些接口需要哪些参数,实现什么功能其实已经是确定好了的,那么根据接口的定义,测试可以提前进行接口测试的准备,比如接口的设计,测试环境搭建,测试数据准备,根据这些内容看是否需要为产品,项目的接口测试开发新的接口测试的框架,这些都可以在开发进行编码的时候完成。
  开发编码完成后,或者开发一两个接口提测后,测试可以先行进行接口测试,理顺测试环境,等开发编码都完成后,集中开发/测试的力量,一鼓作气将接口测试完成,编码对开发来说不是什么难事,如果开发准备好了测试环境,有测试用例,有测试框架,开发完成接口测试的速度还是相当快的。
  这里需要说明的是,开发可能会觉得单元测试做了,怎么还要做接口测试,单元测试和接口测试关注的重点不一样,所以并没有重复之说,而且,单元测试和接口测试是最底层,成本最低,且最容易自动化的测试手段,而且也是以开发最擅长的编码方式进行。
  开发写接口测试,并不是说接口测试的工作也完全由开发来做,接口测试应该是开发和测试共同配合来完成,分别发挥各自的优势又能分别学习各自的优势。通过接口测试,开发可以学习测试思维,测试技巧,而开发也可以从开发那边学习到开发技巧,更重要的是,做好了接口测试,在后续系统测试阶段,就算是发现了bug,修改了代码,通过跑单元测试和接口测试代码,完全可以第一时间到改动是否影响了其他代码,而不用非要等的时候才能验证。
  6. 页面自动化
  进入系统测试阶段,开发的主要工作变成了修改bug,工作变得相对轻松了,而传统意义上的测试工作真正开始了,测试的工作开始繁重,如果前期的单元测试,接口测试做的出色的话,这个阶段发现的bug可能更多的集中于前端bug或者就是需求变更,前端bug的预防减少,涉及到前端测试的内容,暂时不进行讨论,真正功能性的bug是相对较少的,这个时候开发可以做什么,可以做页面自动化的脚本编写。编码是开发擅长的,只要开发掌握了框架,知道哪些用例需要写自动化脚本,开发写自动化脚本是非常快速的。至于开发自动化框架的可以在项目需求阶段进行,用例的抽取可以在测试设计阶段完成。
  这样,在项目测试阶段,单元测试,接口测试在持续的进行,可以快速发现,定位代码变化引起的问题,降低沟通成本,增加开发空余时间用来写自动化脚本,等项目测试完成后,页面自动化脚本又可以基本完成,立体的一套自动化测试体系初步构建完成,在这个过程中,开发和测试密切配合降低了无谓的沟通成本,提高了产出效率,增强了项目的质量。
  7. 项目维护
  产品发布了,并不意味着产品的结束,各种新的需求都会以日常的形式来进行,日常有大有小,而针对日常的测试也应该视日常大小而进行,一些小的,简单的日常完全可以由开发自己开发并测试完成,通过前面在项目中的自测过程,开发对测试流程非常的属性了,小日常完全可以应付,并且当开发认为没有测试去测试的时候,自测会更加认证,而对于一些大日常的测试,则可以参考前面整个的流程进行开发自测的展开。其实,在项目维护阶段,针对不同的子应用或者模块,可以形成模块开发负责制,每个模块,应用都有一个开发进行负责,负责人对自己负责模块的需求,开发,质量保证都需要了解,这样可以增加开发的质量意识,降低变化引起的风险。
  开发自测看起来很美好,但是实施起来却存在,首先,开发会排斥进行测试,其次,开发做测试会比较随意喜欢一次性的测试,第三,开发会认为自己的测试不专业,还需要测试进行测试浪费资源。因为这些原因,开发自测不是一蹴而就的,需要不断的推进,为开发自测提供基础支持,让开发养成自测的习惯,并且意识到自测对于保证项目质量,提高效率的重要性,只有开发从心底愿意进行自测,开发测试才算是真正运行有效的。
  开发自测的目的并不是增加开发的工作量,降低测试的工作量,而是要弱化开发/测试的角色,降低开发/测试的对立,通过开发和测试的共同努力,扬长避短,形成一套立体的质量保证体系。
原文转自:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)十天内免登录
& 女程序员
&select name="site" class="left"&
&option value="网易" selected="selected"&新闻&/option&
&option value=""&网页&/option&
“知乎”网站上有人问:有什么借口让自己写出低质量的代码?一位匿名用户的回答获得高票:我是个女程序员,反正我就是来活跃气氛的。刚入职百度3个月的女程序员王一娇听过这个段子,没等记者说完就接出了后半句。
部分从事 iOS 开发的程序员指出,PPSync 是盘古越狱工具中绑定的插件,通常被称为中国版本的 AppSync,其实代码写得乱七八糟,经常会造成 Safari、Mail、天气等 iOS 应用闪退。还有 SpringBoard 图标消失、应用崩溃、随机 respring 等故障。
(Passion Projects)的系列论坛来推动女性在科技产业的地位。然而,这一论坛的开创者朱莉 安 霍瓦斯(Julie AnnHorvath)却表示,她已经因为遭遇性别歧视而离开了GitHub。
雅虎工程师潘敏:女性也可以做程序员雅虎工程师潘敏:女性也可以做程序员2月26日,北京雾霾已持续超过100小时,道路上的提示牌都在提醒人们尽量避免出行。上午10点,当记者到达雅虎北京全球研发中心的办公室时,茶水间阿姨正在收拾免费早餐的...
阿达·洛芙莱斯(Ada Lovelace)的名字是否使你想起什么呢?没有?它应该在电脑、平板或手机上出现过。这位维多利亚时代的女士、三个孩子的母亲出生于1815年,是世界上第一个计算机程序员。查尔斯·巴贝齐(Charles Babb...
当我们感觉自己很擅长一件事的时候,才会真正地去学习它,花费大量的时间和精力,全身心投入,直到非常精通为止。这种自信的感觉是一种强大的动力,只要我们想要做就一定能做到的信念称为自我效能(self-efficacy)。
作为全球好评度最高的企业,谷歌公司近日也遭到了旗下一位女员工的吐槽,而原因竟然是“性别歧视”。一位名为Julie Pagano的女程序员,在她的博客中这样描述:有时候成为一名软件工程师,就意味着备受煎熬和举步维艰,因为你根本无法阻止...
在香港出生的,号称史上“最强女程序猿”的Corrinne Yu(于国荔),自从2008年以来她一直在微软旗下343工作室的《光环》开发团队担任引擎程序员,而日前有消息称Corrinne Yu将要离开343并跳槽到顽皮狗担任PS4的图形编码工作。
&select name="site" class="left"&
&option value="网易" selected="selected"&新闻&/option&
&option value=""&网页&/option&
热门搜索:除了「deadline 紧」以外,程序员还有什么借口可以让自己写出低质量的代码? | Hello world!小组 | 果壳网 科技有意思
106539人加入此小组
原帖zhihu提问除了「deadline 紧」以外,程序员还有什么借口可以让自己写出低质量的代码?写出低质量的代码的特征包括但不限于:心安理得地写出低质量的代码最终写出了低质量代码却不在之后改善它低质量的特征包括但不限于:文件关系混乱注释过期、不明确或者没有文档过期、不明确或者没有架构乱设计不检查用户输入的错误情况不检查API或者函数返回的errorcode或者exception没有单元测试等自动化测试过程编译起来很难到处复制代码,公用的部分不整理成内部库----------------------------------最佳答案------------------------------------匿名用户我很久很久以前曾经经历的一个公司特别傻比,人力资源和svn管理员不懂程序。作为服务端的主程序,一直以来都是代码精简,效率最优,没有冗余为毕生追求。突然我无意中发现了一个秘密,我的绩效居然不如几个公司刚招进来的新手。我每天刻苦努力,优化代码,让公司的服务端7*24稳稳跑在服务器上,还一心研究各种热切换,换来绩效考核好久没有优秀了。这究竟是为什么呢,后来好心人告诉我,人力资源说了,他们看了svn的日志记录,其他人工作很努力,每天提交很多代码,每天新编写很多很多代码文件,贡献了好多好多的劳动成果。而看看你这个号称技术排第一的家伙,根本就没干活嘛,3个月下来,你一共就写了这么十来个cpp和.h,每天改来改去就这么几个文件,还好多天差不多行数的位置回改,根本就一直在偷懒。我听完以后以后直接口吐鲜血,无语至极了。然后我就申请离职了,在那个公司剩下不多的日子了,我为了心安理得的拿最后2个月的工资,为了让老板知道其实我一直很努力,我在最后一个月更新了几千个文件,让服务端的内核稳定度下降了好几个档次,内存消耗上涨了好多个数量级,并且把容易读,容易后续扩展的部分,全部用c++最高级的模版进行扩展,同时删掉了我以前用汇编写的优化代码。嗯,我想以后这个公司估计会倒闭,我走了以后,再也没有人能维护这份代码了,估计3个月以后,我自己也搞不定了。然后我就离职了,离职之前老板大夸我厚道,最后一个月还给公司做了这么多的事情,别人走都是删代码,我居然还毫无保留的为公司做出贡献。然后我走了不到半年,公司就呵呵了。我想那是我此生唯一写垃圾代码写的心安理得的一次机会了。----------------------------------其他观点------------------------------------伊只 :551,哪怕答主不改代码,离职后也不一定有人能维护那份(还包含汇编的)代码吧。 2,答主最终做了老板和人力的人热情期待且热烈拥护其做的事,一个愿打一个愿挨。答主自降身价固然不值,但答主不过是与另外那批人做了一样的事情,为啥答主做了众人就反应那么大?无非是因为他牛,不牛就没人在意。创造力大破坏力也大。自古以来把牛人惹恼都不是什么好事,请神容易送神难嘛!(所以请善待公司里的大牛们啦!) 3,何况说不定答主没他说的那么牛,楼上的一批人在着急啥?无非是担心自家后院也来这么个“纵火犯”,损害自家利益。然而如果自家满墙已经贴着“玩火有奖”的标语(如答主原公司制度情况)却视而不见,不思考如何对自家规则修改和预防,却在这大讲道德礼节“替他人教子”,岂不比答主原公司更可悲?
+ 加入我的果篮
每一个程序员在他的职业生涯中某一天都会突然获得开示,这种开示在通常某一个夜晚悄然降临,有时是以图灵本人托梦的形式出现。这一开示的主要内容如下:程序员是真正理解思维和逻辑真谛的人。非程序员是被蒙蔽的无知者。每一个程序员对于世界上其他程序员有着不可推卸的责任。每一个程序员都必须尽力维护程序员这一高贵种族的延续,并保证世界的命运控制在程序员手中,既不被无知者淹没,也不被机器智能取代。完成这一使命的唯一方式,是保证稳定地出产低质量,难以理解,修改和维护的代码。每一个负责任的程序员,他每一年的产出,必须为另外三个程序员制造一年的就业机会。唯此,程序员一族可生生不息,整个IT行业欣欣向荣。图灵大神在冥冥中微笑,他的纸带机将嗒嗒作响,直至永恒。
最大的借口就是水平低,工资低工资低请不来牛人于是没有太大压力,水平低所以写不出好代码,结果就是混日子直到混死为止
每一个程序员在他的职业生涯中某一天都会突然获得开示,这种开示在通常某一个夜晚悄然降临,有时是以图灵本人托梦的形式出现。这一开示的主要内容如下:程序员是真正理解思维和逻辑真谛的人。非程序员是被蒙蔽的无知者。每一个程序员对于世界上其他程序员有着不可推卸的责任。每一个程序员都必须尽力维护程序员这一高贵种族的延续,并保证世界的命运控制在程序员手中,既不被无知者淹没,也不被机器智能取代。完成这一使命的唯一方式,是保证稳定地出产低质量,难以理解,修改和维护的代码。每一个负责任的程序员,他每一年的产出,必须为另外三个程序员制造一年的就业机会。唯此,程序员一族可生生不息,整个IT行业欣欣向荣。图灵大神在冥冥中微笑,他的纸带机将嗒嗒作响,直至永恒。
最合理的借口不是“刚找了个男朋友”么?
别人这么写,我也只能这么改,稳定压倒一切。。。
引用 的话:每一个程序员在他的职业生涯中某一天都会突然获得开示,这种开示在通常某一个夜晚悄然降临,有时是以图灵本人托梦的形式出现。这一开示的主要内容如下:程序员是真正理解思维和逻辑真谛的人。非程序员是被蒙蔽的无知...祖师爷图灵是个同性恋,万一他托梦说看上我了这可如何是好
引用 的话:祖师爷图灵是个同性恋,万一他托梦说看上我了这可如何是好请用逻辑证明你不爱他
唯一的理由估计会是我被惹着了。就像知乎那位。还好目前的项目没这么2Bdeadline再紧能紧哪去?连续72小时不是没干过,质量照常。比这还紧的恕我没见过。嫌工资少我会直接走人…
最常见的理由不是需求天天变进度却不准变么
键盘不好用,鼠标不好用,显示器太小,敲代码太累
引用 的话:最常见的理由不是需求天天变进度却不准变么233 看来我这边客户还算讲理。
引用 的话:233 看来我这边客户还算讲理。客户通常都听得懂人话,毕竟没智商的人根本无法成为客户。但当你遇到领导的时候,一切就都不一样了。
引用 的话:客户通常都听得懂人话,毕竟没智商的人根本无法成为客户。但当你遇到领导的时候,一切就都不一样了。…?我们一般是客户提出改需求时就顺便也提了延进度的,领导也得听客户的,so…
(C)2013果壳网&京ICP备号-2&京公网安备

我要回帖

更多关于 程序员一年敲多少代码 的文章

 

随机推荐