搜索
bottom↓
回复: 30

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

[复制链接]

出0入0汤圆

发表于 2012-11-27 12:42:56 | 显示全部楼层 |阅读模式
开发者Rahul Singh近日在其个人博客中列出了他眼中的优秀的程序和糟糕的程序:

引用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

英文原文:Good Programming, Bad Programming

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-11-27 13:03:54 | 显示全部楼层
沙发,占座!!!

出0入0汤圆

发表于 2012-11-27 14:06:38 | 显示全部楼层
经典,只看规范的代码

出0入0汤圆

发表于 2012-11-27 14:10:37 | 显示全部楼层
在某国急功近利的大环境下,有多少“优秀的程序”,能被肯定呢?

出0入0汤圆

发表于 2012-11-27 16:48:37 | 显示全部楼层
任何程序都需要注释

出0入0汤圆

 楼主| 发表于 2012-11-27 21:24:33 来自手机 | 显示全部楼层
15802770321 发表于 2012-11-27 16:48:37
任何程序都需要注释

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

出0入0汤圆

发表于 2013-1-5 09:02:35 | 显示全部楼层
学习,膜拜

出0入0汤圆

发表于 2013-1-5 09:17:38 | 显示全部楼层
本帖最后由 bbssilverkey 于 2013-1-5 09:18 编辑

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

出0入0汤圆

发表于 2013-1-5 11:23:46 | 显示全部楼层
bbssilverkey 发表于 2013-1-5 09:17
1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都 ...

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

出0入0汤圆

发表于 2013-1-5 11:43:47 | 显示全部楼层
嗯  有些时, 需简单复杂化, 钱才收的多 .

出0入0汤圆

发表于 2013-1-5 11:52:39 | 显示全部楼层
这个只适合偏软件的计算机用,不适合单片机。

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

出0入0汤圆

发表于 2013-1-5 12:32:16 | 显示全部楼层
hsztc 发表于 2013-1-5 11:52
这个只适合偏软件的计算机用,不适合单片机。

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

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

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

出0入0汤圆

发表于 2013-1-5 12:49:04 | 显示全部楼层
没觉得是笑话

出0入0汤圆

发表于 2013-1-5 14:19:37 | 显示全部楼层
顶8楼,最重要的是糟糕也罢,优秀也罢,变不成钱,就是垃圾

出0入0汤圆

发表于 2013-1-5 14:45:46 | 显示全部楼层
mrak,学习.

出0入0汤圆

发表于 2013-1-5 15:26:21 | 显示全部楼层
没发觉很好

出0入0汤圆

发表于 2013-1-9 14:59:15 | 显示全部楼层
我还达不到这个境界,早着呢。

出0入0汤圆

发表于 2013-3-8 17:45:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-3-16 22:47:53 | 显示全部楼层
mark.....~

出0入0汤圆

发表于 2013-3-16 22:51:56 | 显示全部楼层

出0入0汤圆

发表于 2013-3-17 12:41:41 | 显示全部楼层
第二句的意思是好的程序不加注释也容易理解。

出0入0汤圆

发表于 2013-3-17 12:46:01 | 显示全部楼层
bbssilverkey 发表于 2013-1-5 09:17
1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都 ...

很有道理。。。。

出0入0汤圆

发表于 2013-3-17 15:53:03 | 显示全部楼层
写的很有道理啊

出0入76汤圆

发表于 2013-3-17 19:59:24 | 显示全部楼层
编程思想——是优秀程序的灵魂...
程序代码——只是其形态而已

出0入0汤圆

发表于 2013-3-21 23:56:06 | 显示全部楼层
怎么没有实例论证呢?

出0入0汤圆

发表于 2013-3-22 10:07:16 | 显示全部楼层
其实实例很多的,比如linux内核代码就可以和自己写的比比

出0入0汤圆

发表于 2013-3-22 23:59:44 | 显示全部楼层
程序员的三个境界...
1.损人不利己...
2.利人利己...
3.损人利己...

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

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

出0入0汤圆

发表于 2013-3-23 10:09:10 | 显示全部楼层
Cliff 发表于 2012-11-27 14:10
在某国急功近利的大环境下,有多少“优秀的程序”,能被肯定呢?

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

出0入0汤圆

发表于 2013-3-23 11:44:06 | 显示全部楼层
脱离了硬件基础谈程序,就当是笑谈吧……

出0入0汤圆

发表于 2013-3-24 13:12:03 | 显示全部楼层
本帖最后由 silence_sky 于 2013-3-24 13:14 编辑

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

出0入0汤圆

发表于 2013-3-24 13:18:05 | 显示全部楼层
最简单的:糟糕的程序每增加一个功能或者修改一些都要不断的加补丁。
优秀的程序,有一个适合增加该功能框架,按照约定的模式增加代码,模块清晰,只需调用新增功能即可,不需要补丁。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 01:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表