`
找不着北
  • 浏览: 315266 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

你的代码写的很烂

阅读更多

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

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

 

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

我就这样被上了一课。

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

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

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

 

翻译来源:外刊IT评论

 

:)

 

分享到:
评论
81 楼 sunnodbird 2010-08-17  
有些时候确实看到了很多很烂很烂的代码
80 楼 liyun_1981 2010-08-17  
说下个人看法,觉得最核心最基本的有3点,按照烦躁等级降序排列下,呵呵:
1、变量名、方法名、类名大多数看不懂字面意思或与实际功能文不对题的。
2、性能问题明显的。
3、大多数方法不利于测试的。
79 楼 抛出异常的爱 2010-08-17  
dmqianlicao 写道
很多时候,那个看上去像一坨屎的代码,往往才是整个项目的精华。
鲜花插在牛粪上,人们都只看见了鲜花,却不知道,如果没有牛粪,鲜花早枯萎了。

的确不到20%复杂代码承担大多数逻辑.
但不到20%复杂代码拥有buglist上80%空间.
78 楼 dmqianlicao 2010-08-17  
很多时候,那个看上去像一坨屎的代码,往往才是整个项目的精华。
鲜花插在牛粪上,人们都只看见了鲜花,却不知道,如果没有牛粪,鲜花早枯萎了。
77 楼 庄表伟 2010-08-17  
代码是有质量高低之分的,如果这点都不承认,就会陷入:“代码无所谓好坏,随便怎么写都可以的”误区。

不要妄下断言,不要第一时间否定别人的智力成果,这都不错,但是:“世上没有烂代码”,就是错了。
76 楼 qaz1234 2010-08-17  
抛出异常的爱 写道
qx8668 写道
特例吧,
十个烂代码,九个真的烂,
只有一个是例外

烂代码一般都是烂
只是看的人有没有本事
把烂代码改成好的代码.

我见的人中十个有九个没这个能力.


这位抛TX总能说到点子上。
看上去烂代码,感觉真烂,于是想改成好代码。 没想到,还真不容易,自己改完的代码居然更烂。于是得到结论:原来这段代码不烂!
好比,碰到一个傻子,心想,这个人虽然傻,其实更大的问题是没有碰到好老师,让我教教,也许就逐渐地能做好正常人的做的事情,于是就教,教啊教,没教会啥,还被傻子给揍了一顿;心想,原来傻子不傻,至少还知道吃饭睡觉,还知道生气揍人。不光别说他傻,我还要学习他能以平静的心态对待生活的心态,这样物价再怎么涨,我等挨踢人士生活就不那么累了。
重构的定义,从来都不是在不伤筋动骨的情况下,把烂代码改成好代码。
75 楼 hanyu87 2010-08-17  
开发习惯不一样,
74 楼 ccx007 2010-08-17  
受益....
73 楼 mikeshi 2010-08-17  
lym6520 写道
等你看懂程序,再来说他好坏,不要一看到代码就下定论。

但是有些坏气味还是一眼就可以看出来的,比如大段的重复代码,这个是初级程序员很容易犯的错误。另外就是函数过大,明明可以分成多个函数,但是都写在一起,难以调试和测试。另外一个容易犯的错误是类的职责不清,明明是其他类的功能或者说这几个功能可以分出去作为一个单独类的,但是都写在一个类下面。这些和时间紧不紧我觉得关系不是很大,凭借着IDE强大的重构功能,都可以在几分钟中旧可以搞定的,关键就是有没有这个Sense。我很同意之前一位兄台所言,只要心里有这么一根筋在,比较注意代码的可维护性的,都不会写出过分的代码,即使目前能力不足,也会在短期内得到很大的提升的。问题在于,目前IT这个行业,由于“民工”一词流传广泛,使得很多兄弟真的以民工来要求自己,不求上进,终日得过且过,这样的人,当然会写出很烂的代码的。

另外,这篇文章有哗众取宠之嫌,人家那个人,可能所谓的“很烂”的代码,在我们眼里也是很精彩的也说不定呢。我们是在用我们心目中那个“很烂”的标准在套那篇文章作者所谓的“很烂”的标准,所以会得出“世上本没有很烂的代码,只不过你没有看懂所以误会了”这样很十三的结论。
72 楼 shaobaitou 2010-08-17  
zhys513 写道
shaobaitou 写道

我们经理跟我这样说的:"黑猫,白猫,能抓到老鼠的就是好猫!"

难道你们经理就是传说中的小-平同志,哈哈!


   嘿,不说还真没注意奥,有点像奥,
   只有身材方面比其乐观.
71 楼 lym6520 2010-08-17  
等你看懂程序,再来说他好坏,不要一看到代码就下定论。
70 楼 tedadeshu 2010-08-17  
每段代码都有它的亮点,抱着学习的态度,少点鄙视的眼光
69 楼 xyang81 2010-08-17  
说别人代码烂的前提是要有依据,如果你在说别人的代码很烂的时候,你能写出那样的代码吗?
68 楼 william_ai 2010-08-17  
烂代码,看着不爽,全部删掉,但是这个是有前提的。就是,你个人的能力到底在什么水平上。
67 楼 C.T 2010-08-17  
非常有感受啊,在开发过程中,有时真的不得已要写一些烂的代码,写的时候,连自己都觉得很痛苦啊,关键我觉得是,不能一味地否认其他人,要看出亮点啊
66 楼 wangdgsc 2010-08-17  
我觉得,写好代码是一个习惯,如果你是在编写代码的同时想着代码质量,再怎么烂,也不会烂到骨子里面去,除非,根本就没有那个意识,那当然没办法,如果是接手别人的项目,看到烂代码那只是说自己倒霉,还有,我记得好像是重构,改善现在代码设计一书中说过,除非特殊的情况,否则不要对代码进行优化,我觉得,还是蛮有道理的
65 楼 清晨阳光 2010-08-17  
弱弱地问一句,SQL写在Web层里算不算烂代码?在不赶工期的情况下,有的人就是这么做的,而且还是SQL拼接式的写法,很容易注入。
64 楼 mingjian01 2010-08-16  
有时候,不好的代码是由于项目时间太紧造成的
63 楼 lifajun350 2010-08-16  
烂代码,有时候是为了节约时间,所谓好的代码,也许会浪费很多时间
62 楼 zhys513 2010-08-16  
shaobaitou 写道

我们经理跟我这样说的:"黑猫,白猫,能抓到老鼠的就是好猫!"

难道你们经理就是传说中的小-平同志,哈哈!

相关推荐

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

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

    驯服烂代码

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

    驯服烂代码 在编程操练中悟道-完整版.pdf

    ### 驯服烂代码 在编程操练中悟道 #### 核心概念与知识点解析 **1. 烂代码定义与识别** - **定义**:烂代码是指那些难以理解、难以维护、效率低下、易出错的代码。这类代码通常违背了一些基本的编码规范与最佳...

    关于烂代码的那些事1

    1. 写烂代码变得容易:文章指出,随着编程语言的进步和工具的完善,程序员可以更快地编写代码,但这也可能导致忽视代码质量。很多程序员并不注重代码的可读性和可维护性,只需满足功能需求即可。虽然这样的代码可能...

    《Python学习工程代码合集》

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

    后台管理系统模板简单框架,自己写的,写的很烂

    【标题】:“后台管理系统模板简单框架,自己写的,写的很烂” 这个标题表明这是一个由个人开发者编写的后台管理系统模板的基础框架。尽管作者自谦地表示“写的很烂”,但这样的框架对于初学者或者快速搭建原型来说...

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

    这个项目对于初学者来说,是一个很好的实践案例,展示了如何使用Node.js和MongoDB构建一个基本的Web应用。虽然代码质量不高,但可以通过分析和重构来学习如何改进代码组织、错误处理、安全性以及性能优化等方面。...

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

    【代码风格与编程规范】 代码风格和编程规范是软件开发中的重要组成部分,它们不仅影响代码的可读性和可维护性,而且对团队合作和长期项目的成功有着深远影响。标题和描述中提到的情况揭示了一些常见的代码编写问题...

    00丨开篇词丨一对一的设计与编码集训,让你告别没有成长的烂代码!1

    在Google工作的经历让作者意识到,仅仅能解决问题的代码并不足够,真正优秀的程序员能够写出易于维护、扩展和理解的“好用”代码。通过掌握编写高质量代码的技巧、方法和理论,可以提高编写代码的效率,避免陷入重复...

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

    10. 编程规范与注释: 尽管代码质量可能不高,但良好的编程习惯,如变量命名、代码缩进和添加注释,对于理解和改进代码至关重要。 总的来说,这个项目是一个初级程序员尝试应用C语言解决实际问题的实例,它体现了...

    esp8266代码

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

    魔方复原程序 附代码

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

    java 贴吧合影小程序

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

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

    在开源领域,发布源代码意味着社区的开发者可以自由地查看、修改和分发这些代码,这促进了技术的共享和创新。CloudDisk的开源特性使得它对开发者具有高度的吸引力,他们可以深入理解系统的工作原理,甚至贡献自己的...

    能说明你的Javascript技术很烂的五个原因

    ### 能说明你的JavaScript技术很烂的五个原因 #### 一、忽视命名空间的重要性 **问题:** 在JavaScript中,不使用命名空间会导致全局变量污染,进而引发一系列问题。例如,如果你在一个项目中使用了大量的库或者...

Global site tag (gtag.js) - Google Analytics