程序员的信仰

老婆经常夸我有想法,得益于老婆大人的鼓励,我才打算将自己平时所想,所总结的东西写下来。人是需要不断总结的,有总结才会有进步。所谓总结,并不一定是多么高深的道理,多么复杂的推论,也并不一定要长篇大论。有时,一句话,或是一个瞬间,会让你明白很多。

首先,严格来说,我并不是一个程序员,我所从事的是测试开发工作,但是我接触过各种各样,形形色色的开发人员。

有的人把代码当乐趣,只要让他写代码,比做什么都开心。

有的人纯粹把代码当作任务,养家糊口的本钱。

有的人视代码为宠物,精心呵护,容不下一丝瑕疵。

有的人视代码为工具,只要能用就行,管他扩展性和维护性。

有的人会说,我做了单元测试,没有发现什么问题。你要是发现bug一定要告我。

有的人会说,这代码没问题的,都运行两年的代码了,没必要测了。

……

最近每天都在看《人间正道是沧桑》,瞿恩有句话印象深刻,“这世界上,梦想有两种,第一种,我实现了自己的梦想。第二种,梦想因我而实现,纵然失去了自己的生命。” 因此,我就想到了“信仰”一词,然后,又突然想到,程序员是不是也应该有自己的信仰呢?各种各样的程序员,每天都在敲着各种各样的代码,到底有没有一个信念能够将所有程序员拉在一起。

首先, 问问自己,是否真的喜欢写代码这样枯燥的工作。如果不是,我劝你还是换份工作。

假如你非常喜欢写代码,那我又要问了:

你觉得写代码的乐趣在哪里?

说实话,我曾被问过这个问题。首先,这个问题其实问的非常好,这是一个程序员进行自我剖析的好问题。同时,这个问题又非常难以回答。 就像问到为什么爱一个人,八成有人回答没有任何理由。的确,爱就是爱,不爱就是不爱,如果非要说个喜欢写代码理由,我想应该是喜欢优美的代码旋律在手上键指如飞的感觉,可以在有限的键盘按键中,敲出无穷无尽美妙旋律。

有时在想,偏激未必是一件坏事。 信奉敏捷开发的人,理性一些来讲,有些东西的确有些偏激。比如,博客园刚有人讨论的早上站立会议必须站着的问题,任何一个函数都不能超过10行,一个测试案例只能有一个断言检查。在理性的偏激下,往往能够更加激发人的潜能。在合理的情况下,形成一些近乎偏激的程序员信仰,我觉得还是有必要的。

这里,我开个头,列出几条箴言,希望大家能一起来补充。看看我们究竟能列出多少条。

1. 自己的代码必须进行单元测试

    不管是产品代码还是测试代码,都必须编写单元测试案例。产品代码进行单元测试就不用说了,测试代码进行单元测试也是非常重要的!测试代码本身都有问题,被测代码的测试结果又从何谈起。

2. 不要将狗食留给别人

    不要将一大堆设计复杂,逻辑混乱,难以理解,根本无法维护的代码留给别人,你要想象着如何让自己的代码交到别人手里能够获得一些称赞。

3. 避免过度设计,保持简单,以及其扩展性

    代码不是写给机器看的,也不是用来炫耀你的复杂设计的。保持简单,容易理解,同时又保持其可扩展性非常重要。

4. 认真给代码的每一个文件,每一个函数,每一个变量命名

    想到得到别人的尊敬,必须仔细考虑每个变量的命名,使用统一的命名规范,使用容易理解没有歧义的命名方式。有的人太随意了,打开金山词霸,不管三七二十一,将中文词语一翻译就拿来用。有的人命名,又是拼音又是英文,大小写混乱,缩写和使用全称不统一。

5. 不要那么容易被说服,要据理力争

    特别是面对上级,不要糊里糊涂的被说服。首先,你要充分的理解别人的想法,然后,你要清楚的表达出你的观点。有的人特别能说服人,特别能绕,千万别被绕晕了然后点头称是。

6. 处理好你的程序依赖

    一个依赖混乱,或是循环依赖的系统是难以维护和扩展的。所以,当你准备设计一系列公共库,想好他们之间的依赖关系吧。这是基本的原则,绝对不允许违反的。

7. 不要因为麻烦而采用丑陋的实现方式。

8. KISS = Keep It Simple and Stupid

    简单就是美,保持简单,让用户容易理解,同时也让看你代码的人容易理解。

9. DRY = Don't Repeat Yourself

    程序员修炼之道提出的原则,不要做重复的事情,程序员应该学会偷懒,避免重复,增加复用。

如果你也有一起其他的深切感受,请告诉我。

作者:CoderZhCoderZh的技术博客 - 博客园
微博:http://t.sina.com.cn/coderzh
出处:http://coderzh.cnblogs.com
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted @ 2009-06-13 12:56 CoderZh 阅读(3405) 评论(35) 编辑 收藏

 回复 引用 查看   
#1楼 2009-06-13 13:13 James.Ying      
信仰确实很重要,我的理想和兴趣就是代码,遨游在代码的天空里,感觉很好,很舒服。

回答楼主的问题,喜欢开发,是因为自豪感,我喜欢被肯定。

跟着楼主列一条:
7、项目是你的结果,代码是你的孩子,请不要忽略他的任何一处,要给孩子最好的,最优秀的。

 回复 引用 查看   
#2楼 2009-06-13 13:21 子夜星辰      
我爱编程,我喜欢N次F5后成功的快感!特爽,特刺激,特带劲!!!凡是编程的人估计都有这样的感觉!呵呵!
 回复 引用 查看   
#3楼 2009-06-13 13:23 pythonic      
好的代码就像好的书法一样,让自己和别人感到舒服。
 回复 引用 查看   
#4楼[楼主] 2009-06-13 14:13 CoderZh      
@James.Ying
嗯,没错。自豪感

 回复 引用 查看   
#5楼 2009-06-13 14:46 蓝天之上      
"特别是面对上级,不要糊里糊涂的被说服。首先,你要充分的理解别人的想法,然后,你要清楚的表达出你的观点。有的人特别能说服人,特别能绕,千万别被绕晕了然后点头称是"

但是自己的观点总是被人当头棒喝,很是打击人!都不敢说话啦,是否需要研究其中技巧啊???

 回复 引用 查看   
#6楼 2009-06-13 14:58 沙加      
嗯,俺喜欢看nunit跑完后的一长串绿色,哈哈
 回复 引用 查看   
#7楼[楼主] 2009-06-13 14:59 CoderZh      
@蓝天之上
当然需要了。有时候自己有不错的想法,但是由于表达不当,未必能被他人接受。

 回复 引用 查看   
#8楼 2009-06-13 14:59 寒天      
"特别是面对上级,不要糊里糊涂的被说服。首先,你要充分的理解别人的想法,然后,你要清楚的表达出你的观点。有的人特别能说服人,特别能绕,千万别被绕晕了然后点头称是"

我要深思。我要对上级说“不”。。。。

 回复 引用 查看   
#9楼[楼主] 2009-06-13 14:59 CoderZh      
@沙加
哈哈,我也喜欢那绿色

 回复 引用 查看   
#10楼 2009-06-13 15:01 Sky_Dream      
喜欢没有理由,好的代码就是一种享受
 回复 引用 查看   
#11楼 2009-06-13 15:04 HA-LOU      
注意自己代码的接口,即使内部字体潦草,给人留下易用的接口
 回复 引用 查看   
#12楼 2009-06-13 15:20 蓝天之上      
@CoderZh
说话技巧问题一直在想,一直没什么结果,哎...
主要一味的恩啊,太没意思啦。

 回复 引用 查看   
#13楼 2009-06-13 15:29 封士勇      
喜欢没有理由,好的代码就是一种享受
顶十一楼的!

 回复 引用 查看   
#14楼 2009-06-13 15:56 易 天      
软件者,代码集也。
而任何软件都是一种工具,我们写代码都是为了提供一个好的工具,从而实现个人的人生价值,实现人生价值的方式有很多种,写代码只是一种途径罢了。

 回复 引用 查看   
#15楼 2009-06-13 16:10 happyue      
写的真不错~~~

 回复 引用 查看   
#16楼 2009-06-13 16:33 非空      
世界上唯一征服不了的只有信仰
 回复 引用   
#17楼 2009-06-13 16:57 ephon[未注册用户]
hoho~ 技术改变世界
 回复 引用 查看   
#18楼 2009-06-13 17:11 Jews      
说实话,不自信的人,才靠信仰而活
 回复 引用 查看   
#19楼 2009-06-13 17:24 雪涛      
xingqu...
 回复 引用 查看   
#20楼 2009-06-13 18:54 四喜      
程序员要懂得爱自己的女朋友/老婆,否则她就会去爱别人。
 回复 引用 查看   
#21楼 2009-06-13 18:57 Xuefly      
面向对象就是面向上帝。用上帝造物的合理来重造第二个世界,并且有人坚信——我们重造的这个世界一定会比现实世界更加的美丽。让我们用“心”去写程序。
大家可以投票表决赞不赞成把上面的文字作为程序员的信仰?有个共同的信仰确实很重要。

 回复 引用 查看   
#22楼 2009-06-13 19:00 Xuefly      
再改造一下

面向对象就是面向上帝——用上帝造物的“合理”来重造第二个世界。我们坚信:我们重造的这个世界一定会像现实世界一样的美丽。让我们用“心”去写程序。
谁给个意见,最后那个“让我们用‘心’去写程序”中的“写”字换成哪个会更好些?

 回复 引用 查看   
#23楼 2009-06-13 19:19 吉日嘎拉      
就是应该经常总结,思想比什么都重要,
有明确的鉴定的立场,才能更好的写好代码。
支持楼主。

特别是 “过度设计”,“认真命名”

 回复 引用 查看   
#24楼[楼主] 2009-06-13 19:36 CoderZh      
@Xuefly
我也没想到什么好词。让我们用“心”去感受程序

 回复 引用 查看   
#25楼[楼主] 2009-06-13 19:40 CoderZh      
@吉日嘎拉
谢谢。
有些东西书上写的很多,像《程序员修炼之道》一书,也有非常多的箴言。但只有自己亲手触碰了,感受到了,才会印象深刻。

 回复 引用 查看   
#26楼 2009-06-13 21:54 曹赛楠      
写的非常好 受用!1!!!
 回复 引用   
#27楼 2009-06-13 22:33 xueying[未注册用户]
不是吧!

哪有那么多稀奇古怪的东西呀,写了就可以了嘛!

 回复 引用 查看   
#28楼 2009-06-13 23:09 Jeffrey Zhao      
没有信仰的程序员不是好程序员。
只由信仰没有理性的程序员,也不是好程序员。

 回复 引用   
#29楼 2009-06-14 00:11 Suse.Acc
我的信仰就是
代码是写给自己的 不是给别人的
尽量的优雅 尽量的追求完美
-------这个我的信仰

 回复 引用   
#30楼 2009-06-14 00:36 啸月[未注册用户]
写代码,最初的逻辑是片段性的,所以善于重构,精于重构或许会寻找到更多的快乐
 回复 引用 查看   
#31楼[楼主] 2009-06-14 00:52 CoderZh      
@啸月
嗯,重构,其实就是不断地让代码趋于完美的过程。追去完美,也是程序员应有的素质。

 回复 引用   
#32楼 2009-06-15 08:33 臻于至善[未注册用户]
总结得不错,确实到位!
看来都是有年头的人,不然总结不出这么7点!

 回复 引用   
#33楼 2009-06-15 09:01 JKJ[未注册用户]
我从第二条,变成了养家胡口,悲呀~~
 回复 引用   
#34楼 2009-06-15 16:26 smilesky[未注册用户]
写的真的很不错,学习了~~持续关注更多楼主的新作
 回复 引用   
#35楼 2009-06-18 13:23 HahahaX[未注册用户]
楼主 , 我们在珠海 , 要招人做ASP.NET的控件开发. 请问你有兴趣吗? 如果有的话请联系我招人专用QQ 5552661 .. 验证时请注明 cnblogs-codezh
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1500042 SPE4gz4LQtA=