什么代码是好代码的思考

樱宝宝 发布于 2012/08/27 17:25
阅读 599
收藏 2

【DevOps必读】产品经理与程序员之间如何破局?>>>

这是我以前看到的一个观点,具体忘了,大概意思就是,再垃圾的程序员写出来的程序,机器也能读懂,但是只有好的程序员写出来的程序,才能让人看懂。程序是写给人看的,只是顺便给机器运行……我的总结就是……难为机器别难为人……大家来说一下吧……到底什么程序才是好程序呢??还是说如果想写一个类似与boost库这种东西,由于他要求跨平台,效率,编译器等种种复杂需求的原因,他的代码就不可能是简单的……所以即使他的代码再复杂,他依然是好代码。

这是我自己的想法:关于好代码的评价。

1 实现 (代码是否真的实现你需求的功能,bug少,效率高) 50%

2 接口 (代码给的接口是否易用 是否完善)30%

3具体编码(你懂的 编码规范,命名规则等)  20%

 

其中有些是冲突的 。 欢迎大家拍砖!

加载中
0
Sephiroth
Sephiroth

不要太简洁,不要太冗余基本就差不多了。

bug少,对于赶进度的项目来说,不太现实。

接口这玩意儿,有时候真的很多余。

编码规范,各有所爱。

樱宝宝
樱宝宝
编码规范这种东西符合项目的标准就ok 其实只要不是太奇葩 应该都没问题
0
中山野鬼
中山野鬼

1、符合架构。完全正确没有错的代码很少,而且代码的设计需求可能会改动,架构假设已经良好下,局部代码是否符合架构,就是代码良好度的一个前提。

2、需求响应度。无论是函数,模块,还是系统,总存在明确设计需求。不指望100%响应,但尽可能的响应是需要有的。

3、可复用性。局部函数,和模块,除了当前架构和需求下,是否可以被其他项目利用,也是对这个代码的好坏判断标准。

4、健壮性。有的代码小改动引发大灾难。有的代码,大错误,可以通过逐次完善渐进的收敛问题。

上面优先级从高到低依次下来。惟独没有正确性的指标。曾经我认为正确性最重要。这么多年工程经验下来,除非你做的东西太水了,一目了然,否则想一次通过没错误,几乎是SB的期盼。

至少我现在的阶段已经到了,不怕有BUG,只要全可控的与癌共生的阶段。当然还没有到,充分利用BUG,以BUG创造价值的阶段。这个得和商务方面结合起来。

那些把精力集中在BUG查找,跟踪,解决的程序员,还需要历练。要尽可能的宏观的看系统。大框架和调子定好了,小模块就可以约束住了。无非哪个重要,多关注,哪个次要,随便搞而已。如同医生一样,别为自己手上搞死个人而睡不着觉。设计系统也一样。

 

中山野鬼
中山野鬼
回复 @樱宝宝 : 切!电话号码要到了嘛?不能干说不练啦。哪怕挨一巴掌,也要努力学习如何要电话号码的基本技能。否则你怎么升级呢。
樱宝宝
樱宝宝
回复 @中山野鬼 : 必须的啊 美女啥的最喜欢了
中山野鬼
中山野鬼
回复 @樱宝宝 : 哈哈。关注我做什么。应该去关注美女!
樱宝宝
樱宝宝
对了 那天在南京我看见虫虫当面喊你老鬼的 我当时就在你们握手的旁边 老鬼你是大叔啊 真正的大叔啊 哇哈哈哈 哥是年轻人
樱宝宝
樱宝宝
老鬼好见识啊 不过其实什么代码是好代码这个问题确实比较复杂,不同的代码 不同 到用途 不同规模 不同的语言 不同的角度等都是需要考虑到原因,很难弄出一套统一的标准 。如果要说一般到通用标准,基本就是你说的那几点,但是我觉得最重要的是需求响应,写代码目的就是为了解决问题,要是出来的代码根本不是为了这个 就2了。构架,复用(轮子),健壮都挺重要
0
mallon
mallon
对于CPU来讲再垃圾的代码都是好代码
廖君
廖君
回复 @shol :-1
billzheng
billzheng
-1
0
牛牛牛牛
牛牛牛牛
满足需求的情况下并且高效执行
0
th小米粥
th小米粥
可扩展性.
0
Daniel.Yee
Daniel.Yee

可维护性和初期的开发效率往往是相悖的。

我对好的代码的定义是:

1、逻辑清楚,结构明晰

2、代码精炼

3、在1的基础上用上较优的算法

至于所谓的代码规范,只要内部统一就好,一般只要不是开源项目,也不指望有公司外的人帮你掺和。当然,这个不是说规范不重要,只是在我的字典里规范不是好代码的首要因素

0
樱宝宝
樱宝宝

引用来自“Daniel.Yee”的答案

可维护性和初期的开发效率往往是相悖的。

我对好的代码的定义是:

1、逻辑清楚,结构明晰

2、代码精炼

3、在1的基础上用上较优的算法

至于所谓的代码规范,只要内部统一就好,一般只要不是开源项目,也不指望有公司外的人帮你掺和。当然,这个不是说规范不重要,只是在我的字典里规范不是好代码的首要因素

可维护性和初期效率确实有一定冲突,但不是一定的,脚本什么的高开发效率的语言基本就能搞定ruby python啥的,其实简单的语言开发出的系统的代码就复杂,就难维护。复杂的语言,开发出来的系统的代码就简单,好维护。
汇编是一门非常简单的语言,他甚至连if else while这些都没有,只有简单的转跳,这些结构还得自己写,写出的代码基本没有维护性,更别说跨平台了(别说hla,这种别人hack过的汇编)。java太复杂了,甚至你跨平台都不用重新编译,代码具有很高的维护性。我的经验,一般来说,越简单的语言,代码越难维护,效率越高,平台依赖性越强
返回顶部
顶部