【外刊IT评论网】整洁的程序和好的程序

标签: 批评评论 代码整洁 | 发表时间:2011-08-10 00:57 | 作者:Aqee wangjl
出处:http://www.aqee.net
本文是从 Clean Code Versus Great Code 这篇文章翻译而来。

最近我和一些程序员就编程问题进行了一次有趣的讨论。我通常会有这样的印象,感觉一些程序员过于强调代码的整洁。不要误会,我也很注重代码的整洁,在过去几年来也写过不少强调代码整洁的重要性的文章。但当我编程时,代码整洁只是我的第二重要目标,它永远不会取代我的首要目标:让软件先跑起来。让它能跑的很漂亮,这是我更大的愿望。

当谈论起代码整洁时,很多人都能饶有兴趣的说出很多。他们坚持不懈的追求这个目标,有时他们在编程时还会穿上带有Uncle Bob的绿色的宣传图标衣服,代码整洁以此提醒自己什么是最重要的:写出整洁的代码。不幸的是,很多次我都发现,很多人在重视“代码的样子”的同时,却忽略了要把“代码的功能”也放在同等重要的位置。例如,很多人不愿意去学习ORM实现的背后原理,他们更愿意使用一些像Hibernate实体映射工具的东西把数据映射成实体对象,即使当这样做比起直接获取数据是效率低的让人惊讶时也是如此。他们并不考虑多次远程调用的代价或大数据量传输的成本。他们一遍一遍的就是写不出一个好的保龄球游戏,因为他们把数据库的操作放在循环里了

代码整洁并不是构成好程序的必要条件,好程序也并不必定是代码整洁的。对我来说,好程序是运行良好的代码,容易理解,容易修改。这是它们的先后次序。我知道,大家都非常明白,代码的易于理解、易于安全的修改是非常的重要。但不管代码写的如何清晰易于阅读和修改,如果它没有做它本该做的事情(不能覆盖所有角落场景),或花费了它本不该使用的长时间执行操作,它就不是好代码。当然,它很整洁,可却没有用处,不是吗?

我不是鼓励你过早的进行优化。除非你有《骇客帝国》里Neo一样的本领,否则你过早的优化的程序里至少有四分之一是不正确的。优化最重要的是找到瓶颈,其它的努力都是浪费。

不管怎么说,你应该写成整洁的代码。但你要三思,不要为了代码整洁,而放弃了写出好代码。


本文来自外刊IT评论网(www.aqee.net),原始地址:整洁的程序和好的程序

相关 [it 程序 和好] 推荐:

【外刊IT评论网】整洁的程序和好的程序

- wangjl - 外刊IT评论
本文是从 Clean Code Versus Great Code 这篇文章翻译而来. 最近我和一些程序员就编程问题进行了一次有趣的讨论. 我通常会有这样的印象,感觉一些程序员过于强调代码的整洁. 不要误会,我也很注重代码的整洁,在过去几年来也写过不少强调代码整洁的重要性的文章. 但当我编程时,代码整洁只是我的第二重要目标,它永远不会取代我的首要目标:让软件先跑起来.

Android 应用程序

- - CSDN博客推荐文章
Android 应用程序由四个模块构造而成:Activity、Intent 、Content Provider 、Service. 下面简单介绍一下如下模块的含义:. 1、Activity  "活动". 一个Activity就是单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口并对事件作出响应.

Linux程序调试

- - C++博客-首页原创精华区
Linux下的段错误产生的原因及调试方法    原文地址: http://www.upsdn.net/html/2006-11/775.html .    参考地址: http://www.cnblogs.com/khler/archive/2010/09/16/1828349.html .

Cppentry程序开发

- -
最近修改公司线上kafka集群配置然后直接kill掉进程来重启集群发现所有生产者都无法写入数据导致丢了数据,栽了一个大坑,接下来的工作肯定是补坑找原因,就分享一下. 系统环境说明:kafka版本为0.8.1.1,kafka集群配置为10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka,因此在zookeeper中的根路径为:/kafka.

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

从流水程序到SOA

- Allen - 阿朱=行业趋势+开发管理+架构
咱就从函数代码开始谈起,更史前的Goto和汇编代码咱就不谈了. 函数和变量写多了,自然也就发现有些函数和变量互相粘在一起很高耦合,而与其它的一些却没多达关系,于是为了显性化让其他的开发人员知道哪些函数和变量确实关联性很紧密,于是创造了类. 面向对象在80年代的国外代码开发界颇为流行. 但接口思想的风潮在90年代刮起了.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.