写好代码的十个要诀 -----林锐博士

转载 2012年03月30日 11:06:50
软件的质量属性
鲁棒 - Solid and Robust Code
简洁 - Maintainable and Simple Code
高效 - Fast Code
简短 - Small Code
共享 - Re-usable Code
可测试 - Testable Code
可移植 - Portable Code
 
集百家之长, 归我所用 - Follow Basic Coding Style
1.代码能够清晰的表达你的思路
2.代码应该具备自解释能力,注释代码别是单纯解释语句,这种注释毫无意义
3.编码的缩进和排版规范
4.所有的函数和变量应有他人容易理解的名字
5.将Tab键改用为4个空格字符
6.减少单个函数的长度,控制在50-100行以内
7.避免幻数,多使用枚举和常量的定义
 
取个好名字 - Use Naming Conventions
1.采用匈牙利命名法对变量进行命名
2.名字要清晰表达含义,不要怕长
 
凌波微步, 未必摔跤 - Evil goto’s? Maybe Not…
1.goto的使用应该遵循原则,而不是全盘否定
2.不用写高深晦涩的语句,不要一味追求性能忽视代码可读性
3.模式并不是一味正确,特定问题更需要考虑反模式
 
先发制人, 后发制于人- Practice Defensive Coding
1.尽量保持代码的简洁和简单
2.调用其它接口和函数时候首先对返回值进行检查
3.避免有符号/无符号,32位/16位,被零除等误算情况
 
见招拆招, 滴水不漏 - Handle The Error Cases: They Will Occur!
1.通过异常处理机制来保证程序代码的健壮性
2.异常处理中一定要注意资源的释放
3.异常处理要关注日志的详细记录,便于后续BUG分析
4.不用把后台编码或系统异常直接抛给用户
 
熟习剑法刀术, 所向无敌 - Learn Win32 API Seriously
1.Win32 API是微软平台编程根本
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.考虑到用户使用的各种场景
2.不用假设用户会正确输入数据,要做好各种完整性和边界的检验
3.程序中70%左右代码是为了保证这种完整性服务的,正常条件下功能可能30%代码就实现了
 
最高境界, 无招胜有招 - Stop writing so much code
1.一味拷贝粘贴代码就是在制造拷贝BUG,这种代码对系统无任何意义
2.编码过程注意重用,函数级->组件级->系统级
3.通过重构持续改进代码质量,改进自我逻辑思维
 
最后总结下:
1.养成良好编码习惯,你面试的一小段代码可能就足以展现你全部陋习。
2.熟练使用好各种辅助工具,但不要全部依赖工具,最主要是学习分析和设计的思考方式
3.注重单元测试,关注程序性能,可维护性,可测试性是编码技能提升重要手段
4.通过重构使编码过程形成完整闭环的反馈回路,重构能力可以很好体现自己的设计能力
5.养成良好习惯,形成自己的编码过程检查单,多请教老员工可能事半功倍

漫索云平台创始人林锐:16年创业老兵的血泪收获

导读]漫索云平台创始人林锐博士早在98年就开始创业,至今已有16年,他也曾经历过一年赔光30万的创业失败、负债累累。下面这篇文章由3篇汇总而成,讲述他两次创业的经验教训。 第一篇:正确对待创...
  • iloveorchid
  • iloveorchid
  • 2016年04月28日 22:35
  • 1145

林锐高质量编程中的几道面试题

内存的思考 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”? C++语言支持函数重载,C 语言不支持函数重载。函数被C++编译后在库中的名字与C 语言的不同。假设...
  • zhaojinjia
  • zhaojinjia
  • 2013年09月20日 11:06
  • 2272

我的大学十年------林锐

摘录于:林锐先生著的 《高质量C++/C编程指南》     本文作者: 林锐。 非taoge哈     写此文使我很为难,一是担心读者误以为我轻浮得现在就开始写自传,二是担心朋...
  • stpeace
  • stpeace
  • 2015年05月15日 22:23
  • 2811

关于林锐内存思考

首先声明:以下部分内容出自http://blog.csdn.net/mr_chenping/article/details/8735854      林锐内存思考的题目在有关C语言的笔试题中也是...
  • u013993293
  • u013993293
  • 2015年10月04日 12:56
  • 1169

《高质量程序设计指南:C++/C语言》 林锐

一、C++ 文件结构 C++/C 程序的头文件以“.h”为后缀,C 程序的定义文件以“. c”为后缀,C++程序 的定义文件通常以“.cpp”为后缀 (1)、头文件结构(*.h): 头文件...
  • cdl2008sky
  • cdl2008sky
  • 2014年04月15日 10:29
  • 1363

【创业之路】:林锐博士谈创业

[导读]漫索云平台创始人林锐博士早在98年就开始创业,至今已有16年,他也曾经历过一年赔光30万的创业失败、负债累累。下面这篇文章由3篇汇总而成,讲述他两次创业的经验教训。        第...
  • qq_23100787
  • qq_23100787
  • 2016年06月27日 20:21
  • 518

《高质量程序设计指南---C++/C语言》 林锐、韩永泉

如果没有记错的话, 我应该是2012年买该书的, 夏天。 那个时候, 我想继续补一下自己的C/C++知识和功底, 也为笔试面试做一些准备。 买了该书之后, 有种如获至宝的感觉, 被林锐...
  • stpeace
  • stpeace
  • 2015年04月27日 21:59
  • 2461

推荐-高质量C++/C编程指南(林锐)

版本/状态 作者 参与者 起止日期 备注 V 0.9 草稿文件 林锐     2001-7-1至 2001...
  • deerleaper
  • deerleaper
  • 2014年11月27日 11:57
  • 4533

一个机器学习博士生的忠告

一个机器学习博士生的忠告 纯属转载,有参考价值,更要共勉!  知乎原文 题主似乎没有明确自己是博士生,以下假设为博士生。 1、首先,请以一个局外人的理智角度,对你的导师进行如下...
  • zdy0_2004
  • zdy0_2004
  • 2015年03月14日 01:04
  • 17952

我的大学十年——林锐

林锐:我的大学十年                   我的大学十年             作者:林锐 (本文摘自《高质量C++/C程序设计指南》,将由电子工业出版社于2002年5月底...
  • zhaoshuaijiang
  • zhaoshuaijiang
  • 2013年03月02日 10:56
  • 5759
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写好代码的十个要诀 -----林锐博士
举报原因:
原因补充:

(最多只允许输入30个字)