如何成为一个优秀的码农
2013-09-22 12:13
162 查看
读代码
进入一个项目的时候需要重头开发的机会很少了,而且在团队中与其他人合作开发的时候常常需要读别人的代码,甚至有的时候你需要接受团队中离职成员遗留的那部分代码。
不迷信
当出现Bug的时候能够心平气和的阅读代码,推测出现错误的地方,在我读过的一本书中(好像是代码大全),bug出现98%是因为程序员个人失误造成的,只有2%是系统原因造成的。
重复造轮子
在工作中,造轮子没什么大问题,问题是,我们写的代码不会没有bug不会考虑到所有情况。虽然现有的轮子避免不了bug但是它们经过时间的锤炼能够处理的情况比重复造的轮子要多,所以尽量不要重复造轮子。
出现bug错误检查表
1:拼写检查
大小写不匹配(极端情况是,你看到的I是1不是i的大写)或者是名字多出一个空格
使用ide的搜索功能或者双击变量名ide会标注出相同变量名。
2:代码执行顺序
这个跟多线程环境有差不多的相似性。(出现幽灵般的bug的时候考虑一下多线程程序代码执行顺序)
3:逻辑检查
将要编写的功能逻辑已经了然于胸?
已经考虑过所有的逻辑分支?
4:扫清尾巴
一些状态变量,或者是开关变量用完忘记关了的。
前提是,对业务流程完全了然于胸
5:边界检查
循环变量,数组引用,比较整数,浮点数……等等
6:一个变量有多个用途
比如说:一个数据结构被多个程序引用,一个变量既当做状态变量又当做逻辑(数学)运算变量。
7:复制代码
复制的代码要知道其实现原理。
复制的代码是否有一些参数没有删除或者增加。
8:如果无法避免一些隐含的规则,出现bug的时候优先考虑隐含规则的地方。(如,一个变量有多个用处,项目隐含规则)
9:高扇入函数或者接口使用防御编程。
是否使用防御编程。
10:修改代码之前,多考虑一下全局变量的影响范围,提供有搜索功能的代码编辑器能够帮助你轻易的做到这一点。
进入一个项目的时候需要重头开发的机会很少了,而且在团队中与其他人合作开发的时候常常需要读别人的代码,甚至有的时候你需要接受团队中离职成员遗留的那部分代码。
不迷信
当出现Bug的时候能够心平气和的阅读代码,推测出现错误的地方,在我读过的一本书中(好像是代码大全),bug出现98%是因为程序员个人失误造成的,只有2%是系统原因造成的。
重复造轮子
在工作中,造轮子没什么大问题,问题是,我们写的代码不会没有bug不会考虑到所有情况。虽然现有的轮子避免不了bug但是它们经过时间的锤炼能够处理的情况比重复造的轮子要多,所以尽量不要重复造轮子。
出现bug错误检查表
1:拼写检查
大小写不匹配(极端情况是,你看到的I是1不是i的大写)或者是名字多出一个空格
使用ide的搜索功能或者双击变量名ide会标注出相同变量名。
2:代码执行顺序
这个跟多线程环境有差不多的相似性。(出现幽灵般的bug的时候考虑一下多线程程序代码执行顺序)
3:逻辑检查
将要编写的功能逻辑已经了然于胸?
已经考虑过所有的逻辑分支?
4:扫清尾巴
一些状态变量,或者是开关变量用完忘记关了的。
前提是,对业务流程完全了然于胸
5:边界检查
循环变量,数组引用,比较整数,浮点数……等等
6:一个变量有多个用途
比如说:一个数据结构被多个程序引用,一个变量既当做状态变量又当做逻辑(数学)运算变量。
7:复制代码
复制的代码要知道其实现原理。
复制的代码是否有一些参数没有删除或者增加。
8:如果无法避免一些隐含的规则,出现bug的时候优先考虑隐含规则的地方。(如,一个变量有多个用处,项目隐含规则)
9:高扇入函数或者接口使用防御编程。
是否使用防御编程。
10:修改代码之前,多考虑一下全局变量的影响范围,提供有搜索功能的代码编辑器能够帮助你轻易的做到这一点。
相关文章推荐
- 如何成为一个优秀的码农——邮件管理
- 如何让自己成为一个优秀的Java架构师,而不是码农
- 如何成为一个合格的或者优秀的FLASH制作者
- 百度前COO陆奇:如何成为一个优秀的工程师?
- 如何成为一个优秀的jsp程序员
- 如何成为一个优秀的JAVA程序员 如何成为高级JAVA程序员 细节决定一个程序员的成败
- 怎么成为一个优秀的程序员,而不是一个优秀的码农?
- 百度陆奇最新内部演讲:如何成为一个优秀的工程师?
- 博毅创为blake老师之~如何成为一个优秀的开发者
- 如何成为一个优秀的程序员
- 如何成为一个优秀的PM
- 如何成为一个优秀的高级C++程序员
- 在Google如何才能成为一个优秀的产品经理?
- 如何成为一个优秀的程序员
- 如何成为一个优秀的软件架构师
- 设计师的“赢”利模式——如何成为一个优秀的设计师
- 一个优秀的公司如何才能成为一个卓越的公司?
- 如何成为一个优秀的jsp程序员 (转)
- 如何成为一个优秀的jsp程序员
- 如何成为一个优秀的程序员