20160802
来源:互联网 发布:linux系统下启动apache 编辑:程序博客网 时间:2024/06/18 16:26
程序员编程的 7 + 1 条小贴士
1.编码之前想一想
用10分钟,20分钟甚至30分钟的时间来想想你需要什么,想想什么样的设计模式(如果有的话)适合你将要编码的东西。真的要好好想想,你会很庆幸“浪费”了那几分钟,当你不得不更改或添加东西到代码中,而这只花费了你30分钟的时间而不是5小时。
2.注释你的代码
说真的,没有什么比两个月后检查自己的代码,却不记得它用来干什么更糟糕的了。注释所有重要的内容,当然那些显而易见的就免了吧。
3.写干净的代码
错落有致。使用空格。根据功能模块化你的代码。阅读Robert C. Martin写的《Clean Code》,非常有帮助。此外,遵循代码约定/标准(如Java Code Conventions),尤其如果是共享的代码。
4.重构
没有人喜欢用那些超级长的方法。这通常(几乎总是)意味着你混杂了功能。用更易于管理的方法分离代码。还能使得代码更可重用。
5.不要复制粘贴代码
如果你有两个或两个以上相同的代码块,那么你可能做错了什么。阅读第4条。
6.使用有意义的名称
虽然命名int变量为“elligent”或char为“mander”是很好笑;但是,这样的名称并不能说明变量是用来做什么的。
7.测试代码
测试,测试,测试,还是测试。测试你的代码。不要等到已经做完程序之后再来测试,否则当你发现一个巨大的bug,却不知道它来自于哪里来的时候,你会追悔莫及。
自动化测试通常都是有价值的。它还有助于节省大量重测试和回归测试的时间。
7+1.学会调试
1.编码之前想一想
用10分钟,20分钟甚至30分钟的时间来想想你需要什么,想想什么样的设计模式(如果有的话)适合你将要编码的东西。真的要好好想想,你会很庆幸“浪费”了那几分钟,当你不得不更改或添加东西到代码中,而这只花费了你30分钟的时间而不是5小时。
2.注释你的代码
说真的,没有什么比两个月后检查自己的代码,却不记得它用来干什么更糟糕的了。注释所有重要的内容,当然那些显而易见的就免了吧。
3.写干净的代码
错落有致。使用空格。根据功能模块化你的代码。阅读Robert C. Martin写的《Clean Code》,非常有帮助。此外,遵循代码约定/标准(如Java Code Conventions),尤其如果是共享的代码。
4.重构
没有人喜欢用那些超级长的方法。这通常(几乎总是)意味着你混杂了功能。用更易于管理的方法分离代码。还能使得代码更可重用。
5.不要复制粘贴代码
如果你有两个或两个以上相同的代码块,那么你可能做错了什么。阅读第4条。
6.使用有意义的名称
虽然命名int变量为“elligent”或char为“mander”是很好笑;但是,这样的名称并不能说明变量是用来做什么的。
7.测试代码
测试,测试,测试,还是测试。测试你的代码。不要等到已经做完程序之后再来测试,否则当你发现一个巨大的bug,却不知道它来自于哪里来的时候,你会追悔莫及。
自动化测试通常都是有价值的。它还有助于节省大量重测试和回归测试的时间。
7+1.学会调试
1 0
- 20160802
- 20160802
- 20160802
- 20160802 求和 找规律
- 20160802 推销员 贪心 堆
- 每天laravel-20160802| Container -5
- 20160802 笔记之搭建框架
- android developer tiny share-20160802
- ios developer tiny share-20160802
- 数字黑洞20160802(网易校招内推笔试题目)
- VB程序学习代码记录20160802
- HTML5文本元素(20160802-0002)
- 记一次蛋疼渗透内网某机器 20160802
- Docker 1.12 Swarm 模式剖析
- 随机数安全那些事儿
- Hive 报错 java.lang.NoSuchMethodError: org.apache.hadoop.hive.ql.ppd.ExprWalkerInfo.getConvertedNode
- [BZOJ3832][Poi2014]Rally(拓扑序+线段树)
- 大型网站系统架构的演化
- 20160802
- Think In Java 笔记1 initialization & Cleanup
- Spark Streaming + Kafka direct 从Zookeeper中恢复offset
- linux-TCP网络接口传输速率测试程序
- Mysql的批量操作
- 装系统之ThinkpadE450
- 2016多校训练Contest5: 1005 Interesting hdu5785
- c++函数参数传递
- java IO的字节流和字符流及其区别