【笑谈】优秀的程序 vs 糟糕的程序,经典!
开发者Rahul Singh近日在其个人博客中列出了他眼中的优秀的程序和糟糕的程序:引用
优秀的程序可以使复杂的东西看起来很简单;糟糕的程序让原本简单的东西变得复杂。
优秀的程序不需要加以说明;糟糕的程序需要大量注释。
优秀的程序编写时需要更多时间,但未来花费的时间却更少;糟糕的程序往往花费较少的时间,但会在未来浪费掉更多时间。
优秀的程序需要考虑当前和未来的需求;糟糕的程序只侧重于现在,在未来可能无法正常工作。
优秀的程序非常易于维护;糟糕的程序难以维护。
优秀的程序有更长的生命周期,甚至应用范围超出预期;糟糕的程序在其工作范围之外几乎无法使用。
优秀的程序如同良好的习惯,其影响将持续很长一段时间,几乎可以永久地解决问题;糟糕的程序如同止痛药,其效果只有很短的时间,解决问题大多是暂时的。
优秀的程序是整洁的、遵守规律的;糟糕的程序是混乱的。
优秀的程序可以令人学到很多编程方法和经验;糟糕的程序只能令人越学越糟。
优秀的程序中,该重用的地方重用,该发明的地方发明;糟糕的程序会重新发明轮子,并在适合发明的地方重用。
优秀的程序依靠程序员的直觉和知识,并经过了多年良好程序习惯的熏陶;糟糕的程序往往盲目依赖他人的知识和经验,而没有自己的理解。
优秀的程序可以很容易地从一个程序员转移给另一个程序员;糟糕的程序只能被编写者理解和实施。
优秀的程序员不会刻意去记忆一段代码,他依赖于他的逻辑思维能力和理解,并能在未来轻松改善代码;糟糕的程序员往往会记住很多自己不理解的代码。
优秀的程序都有相同的特征,如简单、可读性强、效率高;糟糕的程序各有糟糕之处。
优秀的程序比程序员存在的时间要更久;糟糕的程序存在的时间很短。
英文原文:Good Programming, Bad Programming 沙发,占座!!! 经典,只看规范的代码 在某国急功近利的大环境下,有多少“优秀的程序”,能被肯定呢? 任何程序都需要注释 15802770321 发表于 2012-11-27 16:48:37 static/image/common/back.gif
任何程序都需要注释
严重了,他的意思是很好理解。 学习,膜拜 本帖最后由 bbssilverkey 于 2013-1-5 09:18 编辑
1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都不搞,好啦过了3个月,你客户要你加功能,价钱很吸引你,为了钱你掉了很多头发因为你第一次就是想一会不改了,可是你还是改好了,收到钱后你对自己说下次这个鸟客户再加钱我也不搞了,太累了,过了几个月,第三次又来了,因为没什么单做,你还是勉强接受了,你为了读懂自己以前东西,浪费了很多时间,不过你不敢怪别人,因为是你自己写的,哈哈,这个就是糟糕.
2.更糟糕的:就是在1的基础上,那个写的人不是你自己.
3.超级糟糕的:就是在2的基础上,钱还不是你拿大头. bbssilverkey 发表于 2013-1-5 09:17 static/image/common/back.gif
1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都 ...
苦命的人啊。。。那就第一次好好写呗 嗯有些时, 需简单复杂化, 钱才收的多 . 这个只适合偏软件的计算机用,不适合单片机。
我觉得编程思想最重要,而不是程序本身。 hsztc 发表于 2013-1-5 11:52 static/image/common/back.gif
这个只适合偏软件的计算机用,不适合单片机。
我觉得编程思想最重要,而不是程序本身。 ...
如果使用8Bit芯片,上面的建议应尽量参考并遵守,并强烈建议您使用更有容易使用的32Bit
如果使用32Bit芯片,上面的建议应严格遵守和学习,
我认为32位比8位更有前途,不是因为32位的速度快了,硬件资源多了,而是因为32位让您的开发工作变得更容易,所以我们才用。
思想是根本,有好的程序设计思想才能写出好的程序,看程序写的怎样就知道你的编程时是一种什么思想。 没觉得是笑话{:sad:} 顶8楼,最重要的是糟糕也罢,优秀也罢,变不成钱,就是垃圾 mrak,学习. 没发觉很好 我还达不到这个境界,早着呢。 mark{:biggrin:} mark.....~ {:smile:}{:smile:}{:smile:} 第二句的意思是好的程序不加注释也容易理解。 bbssilverkey 发表于 2013-1-5 09:17 static/image/common/back.gif
1.糟糕的:就是这样一个东西你一个人基本搞完了,应为你当时以为收了钱就走人了,就按固定搞,而且经常连备注都 ...
很有道理。。。。 写的很有道理啊 编程思想——是优秀程序的灵魂...
程序代码——只是其形态而已 怎么没有实例论证呢? 其实实例很多的,比如linux内核代码就可以和自己写的比比{:loveliness:}{:titter:} 程序员的三个境界...
1.损人不利己...
2.利人利己...
3.损人利己...
只有在你写出的代码你自己能够看懂别人死活看不懂的时候...
这时候才是Good Programming...人人都能看懂的那个才是真正的Bad Programming...
一个菜...一排饭店都做的一模一样?这是Good dish?
但是我并不认为用寄存器和汇编是条正路...
思想很重要...很多人把思想理解为算法...
其实不是的...
ST的库和ucGUI就是两种思想...
一种是更改结构体然后Init...
一种是不怕麻烦完全靠函数...
Cliff 发表于 2012-11-27 14:10 static/image/common/back.gif
在某国急功近利的大环境下,有多少“优秀的程序”,能被肯定呢?
不是把程序当成一件艺术品来精心雕琢,而是。。。。 {:titter:}脱离了硬件基础谈程序,就当是笑谈吧…… 本帖最后由 silence_sky 于 2013-3-24 13:14 编辑
貌似有人不少人和我观点一样。LZ位的要求是给写软件的人看的,单片机是又一回事。
最近在看到一个老外写的STM32的程序,工程里有50多个C文件。这老外显然是搞电脑软件的,好多地方还调用了一些系统函数(比如memset),语言上是用C++写的,MDK基本就无法编译。各种函数搞了一大堆,对于写单片机程序的来说,简直是恶梦。但对于写电脑程序的人可能就是正常的,看起来还蛮轻松的。
最简单的:糟糕的程序每增加一个功能或者修改一些都要不断的加补丁。
优秀的程序,有一个适合增加该功能框架,按照约定的模式增加代码,模块清晰,只需调用新增功能即可,不需要补丁。
页:
[1]