`

你的代码写的很烂

阅读更多

转自:http://www.iteye.com/topic/738055

 

我有一个很熟的朋友,他现在忙的不可开交。他手上有一大堆没有完成的合同,而且一个跟他一起开发的助手也离他而去。于是,在三个大客户的催命鬼时的督促下,他已经连续好几个星期没休息了。

其中有个客户跟他讨论他给这个客户做的iPad应用程序,客户告诉他“我们花钱雇了另外一个程序员来审查你的代码,他说你的代码写的很烂。”

 

当他告诉我这个故事时,我只是微微一笑,想起了我以前是怎么唾弃别人的代码的。当我刚开始编程时,我看到过一段程序,我认为那是毋庸置疑的写的很烂的,我删掉了那段代码,用自己认为更好的方面重新写了一遍。当我变成的成熟后,我回头再看,发现我所删掉的那段代码其实是用了一个很好的设计模式,而我重写的确是丑陋无比。

我就这样被上了一课。

之后的日子里,我经常会遇到我认为是丑的不能再丑的代码。尽管如此,我也不通篇否定它们了,我只会在其中找一些特别的无法容忍的部分重新编写。可 10次中有9次,当我快要完成时,我发现了一个问题使我不得不对自己说“哦,怪不得他们要写成这样了”,然后把代码恢复成原样,或也使用同样“丑的不能再丑”方式完成它。

现在我变的更成熟了,我可以充满自信的告诉你,我再也不会看着别人编的代码说“哦,这代码很烂”了。我知道,在没有了解整个程序的解决方案之前,你不可能就那么轻易的判断代码的好和坏。真的,有时候它看起来很傻,或完成的不好,或没有文档标注(我的意思是自我注释),然而,你根本就不可能知道程序员在写这段代码时脑袋里是怎么思考的。更多的情况是,他们要选择这样做是有一定的理由的,除非去深入的研究它们,你不可能再有其他简单快速的方法来理解程序的上下文环境。

所以,每当听到有人看着别人的代码说很烂时,我只会微微一笑,让我想起我当年的天真和盲目自信。的确,我以前坚信自己是个出色的开发人员,坚信知道每种算法的最优设计。我很想念当时的自大,但是我很高兴现在学到的这些理念,我知道,我唯一能鄙视的代码只能是我自己的代码,鄙视的原因就是我不能使它变的更好。

 

翻译来源:外刊IT评论

分享到:
评论

相关推荐

    十种更好的表达“你的代码写的很烂”的方法

    十种更好的表达“你的代码写的很烂”的方法。如果你有一个同事,他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:...

    驯服烂代码

    , 全书共20章,分为四个部分:第一部分(第1~10章)首先通过测试后行和测试先行两种方法完成了一个名为“码农酒店”(世界时钟)的编程操练题目,然后对这两种方法...,读者能非常直观看出哪一种方法更容易写出烂代码...

    很早以前写的第一个项目。基于Nodejs,MongoDB的博客系统。代码很烂,仅有一点点的参考价值。存在XSS漏洞.zip

    很早以前写的第一个项目。基于Nodejs,MongoDB的博客系统。代码很烂,仅有一点点的参考价值。存在XSS漏洞.zip

    《Python学习工程代码合集》

    《Python学习工程代码合集》需要自取,没有积分可以私信发。里面包含1到15章所有涉及到的代码,里面的课程是b站上马士兵的课程,可以根据我之前发的笔记结合着代码去听课,自己也省事了。当然,请阁下随意,不喜勿喷...

    CloudDisk:快云网盘全部原始代码,部分代码写得很烂,有空重构吧。。

    CloudDisk:快云网盘全部原始代码,部分代码写得很烂,有空重构吧。。

    语音对话机器人代码

    详细介绍了基于讯飞语音以及图灵机器人的实现代码,刚刚入门,代码写的很烂,不过运行起来速度跟的上

    关于烂代码的那些事1

    1.摘要最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周。为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一

    esp8266代码

    那个时候的代码写的很烂,大家看的话看控制的方法就好了,可以优化的自己优化! 调试时候先用窗口助手调试啊,没试过一台电脑用两个串口助手的。。可以用两台电脑啊! 先确保8266能够通过串口助手发送的信息按照你...

    魔方复原程序 附代码

    代码是我大学时候写的,那时候刚学会C语言,代码非常烂,但是功能都实现了,现在也觉得那些功能不错,呵呵。要是谁有兴趣重构一下代码,别忘了发给我一份,谢谢。 界面是用VB写的,代码我已经找不到了,核心算法是C...

    代码能不能不要写得这么烂?!

    我是一个研二的即将实习和毕业的普通屌丝研究生,带着几个研一的同学一起做数据挖掘项目。为了在毕业的时候防止青黄不接导致老师不让我毕业,于是从他们刚进实验室起,就“开始了设计模式和代码风格的培养”。

    java 贴吧合影小程序

    感兴趣的同学可以完善一下代码、比如可以改成多线程、优化代码、我是把每个用户头像都下载到D盘、其实完全不用这样、你可以把Image对象存到list中、然后改一下相关代码就ok了、最近赶着期末复习、代码写的很烂、多多...

    异味代码到底有多糟糕?衡量代码异味的影响

    前辈曾经教导我们,作为开发人员,我们最主要的职责就是不要写烂代码。除非你是单兵作战并且只是写几行很快就会弃用的Perl脚本而已,否则最重要的一点,就是你写的代码必须易于阅读和理解。在软件产品的整个生命周期...

    关于烂代码的那些事

    刚入程序员这行的时候经常听到一个观点:你要把精力放在ABCD(需求文档/功能设计/架构设计/理解原理)上,写代码只是把想法翻译成编程语言而已,是一个没什么技术含量的事情。当时的我在听到这种观点时会有一种近似...

    蓝牙串口双发收发协议,写的很烂,适合入门的学生!!

    我把压缩包放这里了,word文档是我的解说,希望大家可以耐心点看,我第一次写这种,如果里面的bug能解决了我希望可以告诉我,其实这个代码不是为了让你使用,仅仅只是为了让你认识到这个思路而已,希望大家可以顺便...

    十种更好的表达同事代码有缺陷的方法

    他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:自己默默的帮他整理清楚、向上级抱怨、向其他同事背后唠叨此事、闷...

    BECKHOFF项目源代码

    这是首个项目,主要是开关量控制和时间定时,写得很烂,但可以为大家提供实际范例 无私开源 之所以设这么高的分,是因为只有真正需要它的人,才懂得它的价值。 有问题请发邮件给我 47537815@qq.com

    关于烂代码的那些事(上)

    作为程序员:不要奢望其他人会写出高质量的代码,不要以为自己写出来的是高质量的代码。

    这是大一使用C语言写的图书馆信息管理系统,代码比较烂。.zip

    管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: ...

Global site tag (gtag.js) - Google Analytics