zenl0039 发表于 2012-11-27 12:42:56

【笑谈】优秀的程序 vs 糟糕的程序,经典!

开发者Rahul Singh近日在其个人博客中列出了他眼中的优秀的程序和糟糕的程序:

引用

优秀的程序可以使复杂的东西看起来很简单;糟糕的程序让原本简单的东西变得复杂。

优秀的程序不需要加以说明;糟糕的程序需要大量注释。

优秀的程序编写时需要更多时间,但未来花费的时间却更少;糟糕的程序往往花费较少的时间,但会在未来浪费掉更多时间。

优秀的程序需要考虑当前和未来的需求;糟糕的程序只侧重于现在,在未来可能无法正常工作。

优秀的程序非常易于维护;糟糕的程序难以维护。

优秀的程序有更长的生命周期,甚至应用范围超出预期;糟糕的程序在其工作范围之外几乎无法使用。

优秀的程序如同良好的习惯,其影响将持续很长一段时间,几乎可以永久地解决问题;糟糕的程序如同止痛药,其效果只有很短的时间,解决问题大多是暂时的。

优秀的程序是整洁的、遵守规律的;糟糕的程序是混乱的。

优秀的程序可以令人学到很多编程方法和经验;糟糕的程序只能令人越学越糟。

优秀的程序中,该重用的地方重用,该发明的地方发明;糟糕的程序会重新发明轮子,并在适合发明的地方重用。

优秀的程序依靠程序员的直觉和知识,并经过了多年良好程序习惯的熏陶;糟糕的程序往往盲目依赖他人的知识和经验,而没有自己的理解。

优秀的程序可以很容易地从一个程序员转移给另一个程序员;糟糕的程序只能被编写者理解和实施。

优秀的程序员不会刻意去记忆一段代码,他依赖于他的逻辑思维能力和理解,并能在未来轻松改善代码;糟糕的程序员往往会记住很多自己不理解的代码。

优秀的程序都有相同的特征,如简单、可读性强、效率高;糟糕的程序各有糟糕之处。

优秀的程序比程序员存在的时间要更久;糟糕的程序存在的时间很短。

英文原文:Good Programming, Bad Programming

dory_m 发表于 2012-11-27 13:03:54

沙发,占座!!!

xi_liang 发表于 2012-11-27 14:06:38

经典,只看规范的代码

Cliff 发表于 2012-11-27 14:10:37

在某国急功近利的大环境下,有多少“优秀的程序”,能被肯定呢?

15802770321 发表于 2012-11-27 16:48:37

任何程序都需要注释

zenl0039 发表于 2012-11-27 21:24:33

15802770321 发表于 2012-11-27 16:48:37 static/image/common/back.gif
任何程序都需要注释

严重了,他的意思是很好理解。

feixiang1990 发表于 2013-1-5 09:02:35

学习,膜拜

bbssilverkey 发表于 2013-1-5 09:17:38

本帖最后由 bbssilverkey 于 2013-1-5 09:18 编辑

1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都不搞,好啦过了3个月,你客户要你加功能,价钱很吸引你,为了钱你掉了很多头发因为你第一次就是想一会不改了,可是你还是改好了,收到钱后你对自己说下次这个鸟客户再加钱我也不搞了,太累了,过了几个月,第三次又来了,因为没什么单做,你还是勉强接受了,你为了读懂自己以前东西,浪费了很多时间,不过你不敢怪别人,因为是你自己写的,哈哈,这个就是糟糕.
2.更糟糕的:就是在1的基础上,那个写的人不是你自己.
3.超级糟糕的:就是在2的基础上,钱还不是你拿大头.

four_zhg 发表于 2013-1-5 11:23:46

bbssilverkey 发表于 2013-1-5 09:17 static/image/common/back.gif
1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都 ...

苦命的人啊。。。那就第一次好好写呗

wthzack 发表于 2013-1-5 11:43:47

嗯有些时, 需简单复杂化, 钱才收的多 .

hsztc 发表于 2013-1-5 11:52:39

这个只适合偏软件的计算机用,不适合单片机。

我觉得编程思想最重要,而不是程序本身。

sun_sky 发表于 2013-1-5 12:32:16

hsztc 发表于 2013-1-5 11:52 static/image/common/back.gif
这个只适合偏软件的计算机用,不适合单片机。

我觉得编程思想最重要,而不是程序本身。 ...

如果使用8Bit芯片,上面的建议应尽量参考并遵守,并强烈建议您使用更有容易使用的32Bit
如果使用32Bit芯片,上面的建议应严格遵守和学习,
我认为32位比8位更有前途,不是因为32位的速度快了,硬件资源多了,而是因为32位让您的开发工作变得更容易,所以我们才用。

思想是根本,有好的程序设计思想才能写出好的程序,看程序写的怎样就知道你的编程时是一种什么思想。

r166 发表于 2013-1-5 12:49:04

没觉得是笑话{:sad:}

learner123 发表于 2013-1-5 14:19:37

顶8楼,最重要的是糟糕也罢,优秀也罢,变不成钱,就是垃圾

jlian168 发表于 2013-1-5 14:45:46

mrak,学习.

mcusy 发表于 2013-1-5 15:26:21

没发觉很好

BeichenPeng 发表于 2013-1-9 14:59:15

我还达不到这个境界,早着呢。

wangyeqing333 发表于 2013-3-8 17:45:46

mark{:biggrin:}

阳光无线 发表于 2013-3-16 22:47:53

mark.....~

阳光无线 发表于 2013-3-16 22:51:56

{:smile:}{:smile:}{:smile:}

dexidz 发表于 2013-3-17 12:41:41

第二句的意思是好的程序不加注释也容易理解。

sgzzour 发表于 2013-3-17 12:46:01

bbssilverkey 发表于 2013-1-5 09:17 static/image/common/back.gif
1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都 ...

很有道理。。。。

sync765 发表于 2013-3-17 15:53:03

写的很有道理啊

foxpro2005 发表于 2013-3-17 19:59:24

编程思想——是优秀程序的灵魂...
程序代码——只是其形态而已

944522464 发表于 2013-3-21 23:56:06

怎么没有实例论证呢?

chwp12 发表于 2013-3-22 10:07:16

其实实例很多的,比如linux内核代码就可以和自己写的比比{:loveliness:}{:titter:}

adce 发表于 2013-3-22 23:59:44

程序员的三个境界...
1.损人不利己...
2.利人利己...
3.损人利己...

只有在你写出的代码你自己能够看懂别人死活看不懂的时候...
这时候才是Good Programming...人人都能看懂的那个才是真正的Bad Programming...
一个菜...一排饭店都做的一模一样?这是Good dish?

但是我并不认为用寄存器和汇编是条正路...
思想很重要...很多人把思想理解为算法...
其实不是的...
ST的库和ucGUI就是两种思想...
一种是更改结构体然后Init...
一种是不怕麻烦完全靠函数...

wxty 发表于 2013-3-23 10:09:10

Cliff 发表于 2012-11-27 14:10 static/image/common/back.gif
在某国急功近利的大环境下,有多少“优秀的程序”,能被肯定呢?

不是把程序当成一件艺术品来精心雕琢,而是。。。。

pocker5200 发表于 2013-3-23 11:44:06

{:titter:}脱离了硬件基础谈程序,就当是笑谈吧……

silence_sky 发表于 2013-3-24 13:12:03

本帖最后由 silence_sky 于 2013-3-24 13:14 编辑

貌似有人不少人和我观点一样。LZ位的要求是给写软件的人看的,单片机是又一回事。
最近在看到一个老外写的STM32的程序,工程里有50多个C文件。这老外显然是搞电脑软件的,好多地方还调用了一些系统函数(比如memset),语言上是用C++写的,MDK基本就无法编译。各种函数搞了一大堆,对于写单片机程序的来说,简直是恶梦。但对于写电脑程序的人可能就是正常的,看起来还蛮轻松的。

zhonggp 发表于 2013-3-24 13:18:05

最简单的:糟糕的程序每增加一个功能或者修改一些都要不断的加补丁。
优秀的程序,有一个适合增加该功能框架,按照约定的模式增加代码,模块清晰,只需调用新增功能即可,不需要补丁。
页: [1]
查看完整版本: 【笑谈】优秀的程序 vs 糟糕的程序,经典!