开元周游
德国频道
查看: 937|回复: 8
打印 上一主题 下一主题

如何写好代码,一个程序员的经验

[复制链接]
跳转到指定楼层
1#
发表于 7.11.2009 00:38:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
即时机票
本帖最后由 有容乃大 于 7.11.2009 00:39 编辑

集百家之长, 归我所用 - 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.养成良好习惯,形成自己的编码过程检查单,多请教老员工可

2#
 楼主| 发表于 7.11.2009 00:40:37 | 只看该作者
其他经验还有,

不钻牛角尖。

当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音 乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负 责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。 当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 7.11.2009 00:40:52 | 只看该作者
对答案的渴求。

人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道 答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精 力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 7.11.2009 00:41:03 | 只看该作者
多与别人交流。

三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵 感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 7.11.2009 00:41:14 | 只看该作者
良好的编程风格。

注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保 持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重 要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必 再加注释了,如果注释和代码不一致,那就更加糟糕。
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 7.11.2009 00:41:25 | 只看该作者
韧性和毅力。

这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1
回复 支持 反对

使用道具 举报

7#
发表于 7.11.2009 00:43:24 | 只看该作者
回复 支持 反对

使用道具 举报

8#
发表于 7.11.2009 12:11:11 | 只看该作者
本帖最后由 kurz 于 7.11.2009 12:18 编辑

道理就这么些,

但是每个人领悟和感受就不一样了。

都知道是好东西,但是没有实际的实干经验很多软工的精髓都是感受不到的。

等你们干了几年后就知道了。
回复 支持 反对

使用道具 举报

9#
发表于 7.11.2009 12:20:57 | 只看该作者
本帖最后由 kurz 于 7.11.2009 17:01 编辑

我给个建议,

找一本经典点的,大家公认的,教你如何编出艺术般程序的书好好看看,就算不知道不明白,也要尽量的把它里面说的全应用在你每写的一行代码中。过个时候就能领悟出为什么了...

推荐

代码大全
Beautiful Code
...

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点信息

站点统计| 举报| Archiver| 手机版| 小黑屋

Powered by Discuz! X3.2 © 2001-2014 Comsenz Inc.

GMT+1, 28.12.2024 18:39

关于我们|Apps

() 开元网

快速回复 返回顶部 返回列表