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

【转】你的代码写的很烂

阅读更多

转自:http://www.aqee.net/2010/08/09/your-code-sucks/#more-602

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

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

 

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

我就这样被上了一课。

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

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

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

[英文出处]:Link

分享到:
评论
1 楼 javafengpf_2011 2011-10-20  
不错,我也给自己上了一课

相关推荐

    vue语法自动转typescript(解放双手)

    我一般写代码的时候,如果觉得某段业务代码以前见过其他人写过,那么考虑到业务优先性,只要别人的代码不是写得太烂,我一般会优先抄别人的代码,省得自己再写一遍 然后我就遇到了一个问题,公司目前前端项目大部分...

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

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

    C语言大纲及源代码

    C语言是一种广泛应用于系统编程、应用编程、嵌入式开发以及游戏开发等领域的高级编程...以上这些知识点都是围绕"C语言大纲及源代码"的主题展开,通过学习和实践,你将能够深入理解C语言,并能编写出高效、可靠的C程序。

    远程线程注入工具,可生成代码 可自定义shellcode注入进程-易语言

    程序界面,可自定义任意shellcode 注入任意进程 ...此工具是前两天匆忙写出来的,如果有哪里做的不够好以及觉得此程序很烂的大佬们不要喷我 以下为下载地址 此程序使用了精易模块以及未闻花名的 皮肤模块

    YD/T 和MODBUS RTU 报文合成工具

    本人自己写的rtu 和ydt 协议 报文读/写合成的小工具;现场测试和调试的好帮手 用cb2010开发,代码很烂就不上传了,仅交流学习使用哦

    Live Write 的代码高亮插件 Paste Code

    分析了一下,这个插件的难点主要在RTF格式转HTML,以我这么烂的技术是写不出来的。于是在网上找了一个(http://www.codeproject.com/KB/recipes/RtfConverter.aspx),用了几天的时候,写出一个基本能用的版本,让...

    InfoBase 资料管理库

    2003.7.8 新增“开发日志”和“最爱收藏夹”(迟到了) 星期一弄的太晚,结果早上迟到了……罚款:¥20RMB 上午去腾讯社区见个朋友发表了自己写了很长时间的代码; 我想,先把我的这个烂东西也发出去吧,结果公司...

    OPC转DDE工具 一个方便EXCEL访问OPC的工具,因为EXCEl直接支持DDE,一些老的软件只有DDE接口时也可使用

    这时测试版; ====OPC========== 配置文件必须在"D:\IN_FILER.txt";文件第一行是OPC SERVER名字,后面每...========如果你需要的话,可无偿提供源代码(VC6.0)。不过不要以学习为目的,我的程序风格不是一般的烂啊.....

    一个C#开发者重温C++的心路历程

    但如果多交流,会发现更奇怪的问题,他们几乎都不懂代码设计,面向对象和业务逻辑的代码写的也都很烂。 所以,这次重温C++也是想了解下这种奇异现象的原因。 C++重温 首先打开VisualStudio,创建一个C++的Windows...

    rot13:我做了一个烂rot13的东西,但是它很受欢迎

    **标题解析:** "rot13:我做了一个烂rot13的东西,但是它很受欢迎" 这个标题提到了“rot13”,这是一种简单的字符编码替换算法,主要用于文本的简单加密。"烂"在这里可能是指作者自谦其代码或实现并不完美,但尽管...

    经典游戏学编程之四俄罗斯方块

    此外,这也是一个很好的机会去练习调试技巧,通过实际操作去理解和优化代码,提高编程能力。在实践中,你可能会遇到各种问题,如内存管理、性能优化等,这些都是编程道路上宝贵的财富。因此,不要害怕挑战,勇敢地去...

    VB计算器,WINODW仿照的,初学

    尽管作者自谦地表示程序“很烂”,但这是一个很好的起点,因为实践是学习编程的关键步骤。分享代码也是增进技能和获取反馈的好方法,即使没有资源分也可以通过社区交流来提高。 在VB中创建一个计算器,你需要了解...

    java 设计模式资料

    6. 鉴于本人水平和时间也较紧张,代码写的比较烂,设计中考虑不周,效率不高 ,甚至错误的地方还请大家指出。 对于后续版本的设想: 1. 增加对每个模式的UML类图,对象图,交互图等。 2. 修正现在的代码。 3. 重新...

    基于YOLOv7+Opencv实现单目相机行人+减速带检测及距离预测系统源码+项目说明(拍照+标定+去畸变).zip

    代码除yolo基本代码外均为自己所写,如有不足还请包涵。 # 一、相机标定(拍照+标定+去畸变) ​ 相机标定在calibration.py里实现。目前不足:鱼眼相机去畸变有点问题,其他均正常。 ​ 使用方法:运行...

    a-qqbot-based-graia

    a-qqbot-based-graia 一个基于 graia-application 编写的qqbot 根据AGPL 3.0,源码放在了这里....一个写的死烂的代码,就这样吧 忽然想起来一个问题,bot.py引入了一个config.py 将config-example.py修改成你需要的

    Android 人脸识别+人脸匹配(OpenCV+JavaCV)

    值得注意的是,由于描述中提到"项目写的很烂,参考价值不是很大",可能意味着代码质量不高,或者实现方式并不最优。在实际开发中,我们应当关注代码的可读性、性能以及准确率。对于人脸识别,可以考虑使用更新的算法...

    jacob各版本.zip

    在"jacob各版本.zip"这个压缩包中,很可能包含了Jacob库的不同版本,每个版本可能对应不同的Java和Windows平台兼容性。选择合适的版本对于项目的稳定运行至关重要。通常,你需要根据你的Java环境(JRE版本)和操作...

    SUIX:只是一些临时的kak,我会摆脱哈哈

    苏伊士SUIX是用世界上最尴尬的语言写的一本烂书你妈妈是同性恋Java的! 詹姆斯·高斯林(James Gosling)约1999年协议规范直到字节的服务器读取的字节,以十进制10 ,被发现。 所有前面的字节通过ASCII字符代码转换...

    一个牛人提供的GIS源码(很好)

    一个牛人提供的GIS源码(很好 下面文字非本人所写,文件提到的下载的东西我全部放包里了。 最后的礼物:校园多媒体系统和校园WEBGIS系统 为什么说是最后的礼物,大概是因为我突然想这个blog不更新了。为什么呢?...

    Visual C++技术内幕(第四版)配套光盘

    视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来学习MFC就很困难了,因此...

Global site tag (gtag.js) - Google Analytics