- 浏览: 315906 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lihuabest:
我被坑了几个小时,万恶啊
Integer.getInteger 你在逗我玩吗? -
comsci:
坚决不换XP,一直用到世界末日
Windiows XP永远不会退市 -
rabbitpro:
你就在那儿YY吧,守着老掉牙的东西不放手,说到底是不能接受新鲜 ...
Windiows XP永远不会退市 -
Jclick:
Very good !!
程序员的七大坏毛病 -
Durian:
<div class="quote_title ...
你的代码写的很烂
我有一个很熟的朋友,他现在忙的不可开交。他手上有一大堆没有完成的合同,而且一个跟他一起开发的助手也离他而去。于是,在三个大客户的催命鬼时的督促下,他已经连续好几个星期没休息了。
其中有个客户跟他讨论他给这个客户做的iPad应用程序,客户告诉他“我们花钱雇了另外一个程序员来审查你的代码,他说你的代码写的很烂。”
当他告诉我这个故事时,我只是微微一笑,想起了我以前是怎么唾弃别人的代码的。当我刚开始编程时,我看到过一段程序,我认为那是毋庸置疑的写的很烂 的,我删掉了那段代码,用自己认为更好的方面重新写了一遍。当我变成的成熟后,我回头再看,发现我所删掉的那段代码其实是用了一个很好的设计模式,而我重 写的确是丑陋无比。
我就这样被上了一课。
之后的日子里,我经常会遇到我认为是丑的不能再丑的代码。尽管如此,我也不通篇否定它们了,我只会在其中找一些特别的无法容忍的部分重新编写。可 10次中有9次,当我快要完成时,我发现了一个问题使我不得不对自己说“哦,怪不得他们要写成这样了”,然后把代码恢复成原样,或也使用同样“丑的不能再 丑”方式完成它。
现在我变的更成熟了,我可以充满自信的告诉你,我再也不会看着别人编的代码说“哦,这代码很烂”了。我知道,在没有了解整个程序的解决方案之前,你 不可能就那么轻易的判断代码的好和坏。真的,有时候它看起来很傻,或完成的不好,或没有文档标注(我的意思是自我注释),然而,你根本就不可能知道程序员 在写这段代码时脑袋里是怎么思考的。更多的情况是,他们要选择这样做是有一定的理由的,除非去深入的研究它们,你不可能再有其他简单快速的方法来理解程序 的上下文环境。
所以,每当听到有人看着别人的代码说很烂时,我只会微微一笑,让我想起我当年的天真和盲目自信。的确,我以前坚信自己是个出色的开发人员,坚信知道 每种算法的最优设计。我很想念当时的自大,但是我很高兴现在学到的这些理念,我知道,我唯一能鄙视的代码只能是我自己的代码,鄙视的原因就是我不能使它变 的更好。
翻译来源:外刊IT评论
:)
评论
你要是不能持续提高自己对好坏代码的鉴别能力,没有勇气与习惯重构自己的烂代码,那在代码上就没什么前途了。
好像很多时候,写出烂代码的原因追踪到最后,往往是为了解决莫名其妙所谓的“性能问题”用了一套莫名其妙的歪路子。
传说中的hack吧
你要是不能持续提高自己对好坏代码的鉴别能力,没有勇气与习惯重构自己的烂代码,那在代码上就没什么前途了。
好像很多时候,写出烂代码的原因追踪到最后,往往是为了解决莫名其妙所谓的“性能问题”用了一套莫名其妙的歪路子。
你要是不能持续提高自己对好坏代码的鉴别能力,没有勇气与习惯重构自己的烂代码,那在代码上就没什么前途了。
这篇文章估计写出了很多人的心声。
系统构架的好坏非常容易评价,设计的好其精妙之处令人叹服,设计得烂也让人看之如嚼蜡。楼主的文章讨论的的代码的部分,无非函数、循环、嵌套等等。
瓦匠和建筑师之差别也在于此,建筑师有国际大师之称呼,貌似没有国际瓦匠之说。你觉得这个瓦匠磊的这堵墙得太差,可能是因为你没有看见着堵墙后面藏着的是什么
<div class="quote_div">
<div class="quote_title">wandou 写道</div>
<div class="quote_div">
<div class="quote_title">找不着北 写道</div>
<div class="quote_div">
<p>我有一个很熟的朋友,他现在忙的不可开交。他手上有一大堆没有完成的合同,而且一个跟他一起开发的助手也离他而去。于是,在三个大客户的催命鬼时的督促下,他已经连续好几个星期没休息了。</p>
<p>其中有个客户跟他讨论他给这个客户做的iPad应用程序,客户告诉他“我们花钱雇了另外一个程序员来审查你的代码,他说你的代码写的很烂。”</p>
<p> </p>
<p>当他告诉我这个故事时,我只是微微一笑,想起了我以前是怎么唾弃别人的代码的。当我刚开始编程时,我看到过一段程序,我认为那是毋庸置疑的写的很烂
的,我删掉了那段代码,用自己认为更好的方面重新写了一遍。当我变成的成熟后,我回头再看,发现我所删掉的那段代码其实是用了一个很好的设计模式,而我重
写的确是丑陋无比。</p>
<p>我就这样被上了一课。</p>
<p>之后的日子里,我经常会遇到我认为是丑的不能再丑的代码。尽管如此,我也不通篇否定它们了,我只会在其中找一些特别的无法容忍的部分重新编写。可
10次中有9次,当我快要完成时,我发现了一个问题使我不得不对自己说“哦,怪不得他们要写成这样了”,然后把代码恢复成原样,或也使用同样“丑的不能再
丑”方式完成它。</p>
<p>现在我变的更成熟了,我可以充满自信的告诉你,我再也不会看着别人编的代码说“哦,这代码很烂”了。我知道,在没有了解整个程序的解决方案之前,你
不可能就那么轻易的判断代码的好和坏。真的,有时候它看起来很傻,或完成的不好,或没有文档标注(我的意思是自我注释),然而,你根本就不可能知道程序员
在写这段代码时脑袋里是怎么思考的。更多的情况是,他们要选择这样做是有一定的理由的,除非去深入的研究它们,你不可能再有其他简单快速的方法来理解程序
的上下文环境。</p>
<p>所以,每当听到有人看着别人的代码说很烂时,我只会微微一笑,让我想起我当年的天真和盲目自信。的确,我以前坚信自己是个出色的开发人员,坚信知道
每种算法的最优设计。我很想念当时的自大,但是我很高兴现在学到的这些理念,我知道,我唯一能鄙视的代码只能是我自己的代码,鄙视的原因就是我不能使它变
的更好。</p>
<p> </p>
<p>翻译来源:<a href="http://www.aqee.net/2010/08/09/your-code-sucks/">外刊IT评论</a>
</p>
<p> </p>
<p>:)</p>
<p> </p>
</div>
<p>是否可以这么理解,此文的主题是:世界上没有烂代码,如果某人认为有,那么是此人不够成熟,too yuang too simple。</p>
<p>也就是说,任何烂代码,都可以用此文的经典辩护了。</p>
<p>本人也要说一句,是不是烂代码,是有标准的。冗余度大,粒度粗的代码都是烂代码。这些都是软件业界的共识,并非世上不存在烂代码。如果真的任何人都可以随便写出好代码,那软件工程就没有意义了。</p>
</div>
<p> </p>
<p> </p>
<p><strong>这么说吧,你对原文的理解正好错了,而且也正好用自己的回复自证了本文真正观点提出的必要性。</strong></p>
<p> </p>
<p>本文想说的是当你没有足够理解一个东西的时候,不要盲目的发表见解,总要看到别人的合理之处,而不是自以为是的说一些自以为独到实际人人都知道的论断,来显示出自己的高明。</p>
<p> </p>
<p>这位兄台的回复正好证明了本文对我们有着相当实际的警示作用。</p>
<p> </p>
</div>
<p>一个刚学编程的人,难道也要资深软件架构师去学它代码的精妙之处?嘿嘿。警示个鬼啊。习惯写烂代码的人才喜欢这种言论。万能的借口,多好啊。一棍子把好代码全打死了,多妙啊。谁也不能批评写烂代码的人了,大家都快活了。</p>
<p>越是烂代码越难读懂。所以烂码人有借口了,你读懂我的代码了吗?你都没读懂,凭什么说我的代码烂?</p>
<p>招聘什么人,就会写出什么样的代码。招人是软件工程最重要的环节。对一个不想学编程的人,任何培训都是浪费时间,最好的办法就是让他走人。换一批人,什么都解决了。特别是那种写了烂代码还叫有理的人,不会干活,只会拖后腿。</p>
<p> </p>
就好比中文可以写成八股文,散文,诗,词,你用诗歌的要求去看词,就觉得很烂。
代码也是如此。有人把一个函数写了1000多行。有人把它分拆成10个类。彼此都觉得对方写得很烂:一个是不OO,另一个是过度设计。
从后期维护角度来说前者更让人崩溃。我觉得代码这种可以定性定量分析的玩意并不存在各种体裁之间的区别,互相的code review和快速重构是很好的弥补方式。
就好比中文可以写成八股文,散文,诗,词,你用诗歌的要求去看词,就觉得很烂。
代码也是如此。有人把一个函数写了1000多行。有人把它分拆成10个类。彼此都觉得对方写得很烂:一个是不OO,另一个是过度设计。
很难受的。
一个了解业务的人说你的代码烂,那肯定是有烂的地方,例如注释不清晰等,特别的逻辑得有特别的注释说明
起码以下几点能做到:
1、类分工明确。
2、方法名、变量名、类名命名清晰。
3、少有XXX行的方法。
和一个人的习惯及意识有关。
不要妄下断言,不要第一时间否定别人的智力成果,这都不错,但是:“世上没有烂代码”,就是错了。
赞同
我的看法是:
1、业务需求频繁变更,使已经写好的漂亮代码在几次修改后,面目全非。
2、领导逼的太紧,必须赶进度,此时的代码不烂才怪。
3、对所使用的技术本身了解的不透彻,直接点说就是基本功太差,明明有现成的API却不用,自己用非常拙劣的方式实现,没有第二个人能理解他写的东西到底想要干什么。
4、投机取巧。任何取巧的代码最终都会被推翻重写。与其最后自食其果不如开始就按步就班。
3同意
其它的都反对.
一般烂代码是由于不收拾...
我的看法是:
1、业务需求频繁变更,使已经写好的漂亮代码在几次修改后,面目全非。
2、领导逼的太紧,必须赶进度,此时的代码不烂才怪。
3、对所使用的技术本身了解的不透彻,直接点说就是基本功太差,明明有现成的API却不用,自己用非常拙劣的方式实现,没有第二个人能理解他写的东西到底想要干什么。
4、投机取巧。任何取巧的代码最终都会被推翻重写。与其最后自食其果不如开始就按步就班。
发表评论
-
一个六年级、12岁的程序员的演讲【视频】
2011-12-18 21:00 1511托马斯,一个12岁的六年级的小孩,自学开发iPhone应用程序 ... -
程序员的七大坏毛病
2011-06-13 06:50 74041.- 所有的程序都写的很 ... -
干嘛不去掉“I”和“Impl”?
2011-05-23 06:33 6275今天早上我仔细研究TopShelf项目的源代 ... -
IBM黑衣小组
2011-05-16 09:44 2002通常,年末是总结反省的好时机。形势好的时候,我们祝贺自己干的漂 ... -
为什么说PHP是个集中营
2011-05-13 08:31 3294有一天我跟在DUMBO 的 ... -
组织一个实干小组
2011-05-11 06:31 1779大概6个月前发生了一件有趣的事情。我的一个朋友 ... -
我们从亚马逊(Amazon)云事故上能学到什么教训
2011-05-10 06:52 3645不管你称它为“云关” ... -
[漫画]天堂里没有程序员!
2011-05-03 08:37 3311幸亏我是无神论者的,不担心自己进不了天堂! ... -
天堂里没有程序员![漫画]
2011-05-03 08:32 1幸亏我是无神论者的,不担心自己进不了天堂! ... -
Twitter从Rails迁移到了Java
2011-04-25 07:51 5131Rail那插满五颜六色鲜艳羽毛的帽子现在跌落到了地上。Tw ... -
编程是一种超能力
2011-04-11 07:59 3972在一个科技和互联网成 ... -
谷歌如何测试软件 —— 第二部分
2011-04-06 07:18 5516为了做到“you build it, yo ... -
只要一个返回语句
2011-03-28 07:32 5159别再这样写了: public boole ... -
做一个女软件工程师的好处
2011-03-21 07:55 8866女软件开发人员在我们这个社会上并不是很多, ... -
没事儿别优化!
2011-03-14 07:43 3442事实上你应该优化,但 ... -
Integer.getInteger 你在逗我玩吗?
2011-03-09 07:19 3680我刚刚发现在 Java 5 里声明的一个方法:Integer. ... -
创业者的80/20法则
2011-03-07 10:23 5306这个世界上开发人员的数目我估计至少有5百万。 通过应用80/ ... -
漫画:软件开发评估过程
2011-03-05 08:55 2272我很喜欢这个漫画,我做过的项目没有一个不是拖拖拉拉的,边开发边 ... -
今天Facebook的价值损半
2011-03-03 10:58 3001最近,天使资金投资人Jason Calacanis 的一份写 ... -
今天,Facebook的价值损半
2011-03-03 10:57 942最近,天使资金投资人Jason Calacanis 的一份写 ...
相关推荐
十种更好的表达“你的代码写的很烂”的方法。如果你有一个同事,他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:...
, 全书共20章,分为四个部分:第一部分(第1~10章)首先通过测试后行和测试先行两种方法完成了一个名为“码农酒店”(世界时钟)的编程操练题目,然后对这两种方法...,读者能非常直观看出哪一种方法更容易写出烂代码...
### 驯服烂代码 在编程操练中悟道 #### 核心概念与知识点解析 **1. 烂代码定义与识别** - **定义**:烂代码是指那些难以理解、难以维护、效率低下、易出错的代码。这类代码通常违背了一些基本的编码规范与最佳...
《Python学习工程代码合集》需要自取,没有积分可以私信发。里面包含1到15章所有涉及到的代码,里面的课程是b站上马士兵的课程,可以根据我之前发的笔记结合着代码去听课,自己也省事了。当然,请阁下随意,不喜勿喷...
【标题】:“后台管理系统模板简单框架,自己写的,写的很烂” 这个标题表明这是一个由个人开发者编写的后台管理系统模板的基础框架。尽管作者自谦地表示“写的很烂”,但这样的框架对于初学者或者快速搭建原型来说...
这个项目对于初学者来说,是一个很好的实践案例,展示了如何使用Node.js和MongoDB构建一个基本的Web应用。虽然代码质量不高,但可以通过分析和重构来学习如何改进代码组织、错误处理、安全性以及性能优化等方面。...
【代码风格与编程规范】 代码风格和编程规范是软件开发中的重要组成部分,它们不仅影响代码的可读性和可维护性,而且对团队合作和长期项目的成功有着深远影响。标题和描述中提到的情况揭示了一些常见的代码编写问题...
10. 编程规范与注释: 尽管代码质量可能不高,但良好的编程习惯,如变量命名、代码缩进和添加注释,对于理解和改进代码至关重要。 总的来说,这个项目是一个初级程序员尝试应用C语言解决实际问题的实例,它体现了...
本书不仅延续了他在《数据结构与算法之美》中的技术深度,更进一步强调了代码质量的重要性,旨在帮助程序员们从粗糙的工作中脱颖而出,写出让同行羡慕、让项目受益的好代码。 回想起王争先生在Google的初体验,那个...
那个时候的代码写的很烂,大家看的话看控制的方法就好了,可以优化的自己优化! 调试时候先用窗口助手调试啊,没试过一台电脑用两个串口助手的。。可以用两台电脑啊! 先确保8266能够通过串口助手发送的信息按照你...
代码是我大学时候写的,那时候刚学会C语言,代码非常烂,但是功能都实现了,现在也觉得那些功能不错,呵呵。要是谁有兴趣重构一下代码,别忘了发给我一份,谢谢。 界面是用VB写的,代码我已经找不到了,核心算法是C...
感兴趣的同学可以完善一下代码、比如可以改成多线程、优化代码、我是把每个用户头像都下载到D盘、其实完全不用这样、你可以把Image对象存到list中、然后改一下相关代码就ok了、最近赶着期末复习、代码写的很烂、多多...
在开源领域,发布源代码意味着社区的开发者可以自由地查看、修改和分发这些代码,这促进了技术的共享和创新。CloudDisk的开源特性使得它对开发者具有高度的吸引力,他们可以深入理解系统的工作原理,甚至贡献自己的...
### 能说明你的JavaScript技术很烂的五个原因 #### 一、忽视命名空间的重要性 **问题:** 在JavaScript中,不使用命名空间会导致全局变量污染,进而引发一系列问题。例如,如果你在一个项目中使用了大量的库或者...
我把压缩包放这里了,word文档是我的解说,希望大家可以耐心点看,我第一次写这种,如果里面的bug能解决了我希望可以告诉我,其实这个代码不是为了让你使用,仅仅只是为了让你认识到这个思路而已,希望大家可以顺便...
他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:自己默默的帮他整理清楚、向上级抱怨、向其他同事背后唠叨此事、闷...