本版版主招募中

 
标题: 写好代码十个秘诀
蓝色的忧郁
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
禁止发言


UID 274
精华 9
积分 640
帖子 1117
活跃指数 56
LU金币 2473 个
LU金条 0 个
阅读权限 210
注册 2003-10-1
来自 南京
 
发表于 2008-5-9 11:27  资料  个人空间  短消息  加为好友  添加 蓝色的忧郁 为MSN好友 通过MSN和 蓝色的忧郁 交谈 QQ
写好代码十个秘诀

林斌博士写好代码十个秘诀

软件的质量属性

鲁棒 - Solid and Robust Code k]
简洁 - Maintainable and Simple Code
高效 - Fast Code &
简短 - Small Code
共享 - Re-usable Code
可测试 - Testable Code
可移植 - Portable Code


一、集百家之长, 归我所用 - Follow Basic Coding Style
1.代码能够清晰的表达你的思路   
2.代码应该具备自解释能力,注释代码别是单纯解释语句,这种注释毫无疑义
3.编码的缩进和排版规范  
4.所有的函数和变量应有他人容易理解的名字9  
5.将Tab键改用为4个空格字符 MeE  
6.减少但个函数的长度,控制在50-100行以内/N[o  
7.避免幻数,多使用枚举和常量的定义*[  

二、取个好名字 - Use Naming Conventions M'  
1.采用匈牙利命名法对变量进行命名 -  
2.名字要清晰表达含义,不要怕长 .  

三、凌波微步, 未必摔跤 - Evil goto’s? Maybe Not…   
1.goto的使用应该遵循原则,而不是全盘否定
2.不用写高深晦涩的语句,不要一味追求性能忽视代码可读性[d  
3.模式并不是一味正确,特定问题更需要考虑反模式 N  

四、先发制人, 后发制于人- Practice Defensive Coding ke
1.尽量保持代码的简洁和简单 s.
2.调用其它接口和函数时候首先对返回值进行检查  
3.避免有符号/无符号,32位/16位,被零除等误算情况

五、见招拆招, 滴水不漏 - Handle The Error Cases: They Will Occur!
1.通过异常处理机制来保证程序代码的健壮性AC ~y@  
2.异常处理中一定要注意资源的释放fj190  
3.异常处理要关注日志的详细记录,便于后续BUG分析|& :l  
4.不用把后台编码或系统异常直接抛给用户   

六、熟习剑法刀术, 所向无敌 - Learn Win32 API Seriously  

1.Win32 API是微软平台编程根本 &,{Dve  
2.对系统强大的公用类库的熟悉和整理将事半功倍   

七、双手互搏, 无坚不摧 - Test, but don’t stop there %  
1.如果你没有进行测试,你完成的代码将仅仅是个半成品"  
2.尽可能多的对自己的代码进行测试
3.编码人员应该更专注于百盒测试和单元测试  
4.要善于使用JUnit,NUnit,PureCoverage,Compuware,NCover等测试工具
5.相互间的Review和走查是对代码可维护性的重要测试手段
6.有特殊性能要求时候需要对相关功能或模块单独进行性能测试   

八、活用段言 - Use, don’t abuse, assertions
1.断言可以很好的描述假设和不可能的情况
2.断言对程序Debug很有用,可以尽早的发现程序问题

九、草木皆兵, 不可大意 - Avoid Assumptions
1.考虑到用户使用的各种场景 p--|QRX!  
2.不用假设用户会正确输入数据,要做好各种完整性和边界的检验 u\/%{R\1Ti  
3.程序中70%左右代码是为了保证这种完整性服务的,正常条件下功能可能30%代码就实现了 dKqbU  

十、最高境界, 无招胜有招 - Stop writing so much code
1.一味拷贝粘贴代码就是在制造拷贝BUG,这种代码对系统无任何意义 r`X%  
2.编码过程注意重用,函数级->组件级->系统级 O_NMd B\  
3.通过重构持续改进代码质量,改进自我逻辑思维 3!M8`TrF  
'0@;9  

最后总结下:
1.养成良好编码习惯,你面试的一小段代码可能就足一展现你全部陋习。
2.熟练使用好各种辅助工具,但不要全部依赖工具,最主要是学习分析和设计的思考方式  
3.注重单元测试,关注程序性能,可维护性,可测试性是编码技能提升重要手段 k{^  
4.通过重构使编码过程形成完整闭环的反馈回路,重构能力可以很好体现自己的设计能力   
5.养成良好习惯,形成自己的编码过程检查单,多请教老员工可能事半功倍。





关注于c/c++,symbian c++的开发
对UNIX/Linux下的c开发也有兴趣

MSN: lee_vincent83615@hotmail.com
QQ:  3603108
顶部
十年
LU新生
Rank: 1



UID 61688
精华 0
积分 17
帖子 31
活跃指数 0
LU金币 31 个
LU金条 0 个
阅读权限 10
注册 2006-12-17
 
发表于 2008-5-20 18:30  资料  个人空间  短消息  加为好友 

顶部
woshisha
LU幼天使
Rank: 2



UID 107106
精华 0
积分 21
帖子 37
活跃指数 0
LU金币 16 个
LU金条 0 个
阅读权限 20
注册 2008-5-25
 
发表于 2008-5-25 14:15  资料  个人空间  短消息  加为好友  添加 woshisha 为MSN好友 通过MSN和 woshisha 交谈
武林秘籍 呵呵

顶部
自然平衡
LU大天使
Rank: 6Rank: 6
文昌阁阿三


LU爱心使者  
UID 33793
精华 1
积分 1308
帖子 2166
活跃指数 143
LU金币 1605 个
LU金条 12344 个
阅读权限 70
注册 2005-8-1
来自 文昌阁下
 
发表于 2008-5-31 14:19  资料  个人空间  短消息  加为好友 
葵花宝典!






去一个没去过的地方,希望可以闯出一个名堂,如果你以后在江湖上听到一个只有九根手指的英雄,那么一定是我!
顶部
anycall2100
LU幼天使
Rank: 2



UID 107495
精华 0
积分 32
帖子 57
活跃指数 3
LU金币 41 个
LU金条 0 个
阅读权限 20
注册 2008-6-2
 
发表于 2008-6-28 12:34  资料  个人空间  短消息  加为好友 
恩,不错,收录我的博客

顶部
 



当前时区 GMT+8, 现在时间是 2008-7-24 22:02
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.059531 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver - WAP