我的多年编程经验总结(转)
来源:互联网 发布:淘宝满减券漏洞 编辑:程序博客网 时间:2024/05/01 11:51
以下是我的多年编程经验总结,下列排序无特定顺序:
1.当性能出现问题的时候,最好能在应用层处理和解决,尽量不要把它放到数据库层里去。
排序和分组就是典型例子。在应用层做性能提升总是比在数据库层做要来得容易的多。对于这点,不管是服务器端的MySQL数据库还是移动设备端的sqlite数据库都是如此。我可以来解释一下:我们对一些特定的查询应用以上的方法虽然不能减少客户端的响应时间,但是可以减缓数据库服务器的压力,避免数据库成为所有客户端的瓶颈。
2.尽可能地避免并发计算。
如果实在没法避免,那么记住,功能越强,程序就会越复杂。尽量避免直面线程。并且尽可能的在更高层次的抽象层上处理问题。举个iOS系统的例子:GCD、分派和队列操作绝对是我们可爱的好助手。相信我,人脑是不具备推理暂存的无限情形这一功能的——这是我亲身经历的惨痛教训给予我的第一手资料。
3.状态越少越好,最好保持局部化。实用至上。
4.短小又可自由组合的方法是我们的得力助手。
5.注释有时候是有害的。
因为随着时间的流逝,它会变得过时然后误人子弟,但是如果不注释同样是不可取的。不要啥鸡毛蒜皮的小事都拿来注释,好钢要用在刀刃上,如果有必要,我们甚至需要大段大段地写下战略性的长篇注释以备不时之需。因为,有时候记忆是个超能忽悠人的东西,搞不好你一觉醒来,甚至仅仅只是去喝了一杯咖啡回来,就忘记了。
6.不要妄自猜测
如果你觉得某个用例场景”应该不会有问题的吧“,那么可能过不了多久它就会大发淫威,成为发布产品中让你遭受惨痛教训的原因。相信自己的直觉,不要图省事就放任有疑问的地方不管,得主动测试、积极验证。
7.如果有疑问的话,将所有顾忌与团队交流沟通。
8.做正确的事——地球人都知道。
9.用户不是傻瓜,他们只是没有耐心去了解你所谓的捷径。
10.如果一个开发人员不被分派到维护系统(参与创建的)的团队中去,不能查看他们的猜想,那么他们曾经在这个系统上面付出的心血和汗水将会付之东流、化为乌有,而这时却发现了一些问题又需要参与进去——不要喊苦喊累,不要怨天尤人,你可知道这可是在成为一个更为睿智的专业程序员的节奏?
11.任务清单会是我们的好搭档。
12.积极主动让我们的工作更有趣,但是这需要努力。
13.突如其来的系统崩溃,仍然是我的噩梦。做好监控、日志和警报。清楚各种假警报,避免感觉钝化。保持系统对故障的敏感度和及时警报。
14.最后,别忘了我们是”拿人钱财,与人消灾“的,管理各种复杂的问题,做好相应的工作。
1.当性能出现问题的时候,最好能在应用层处理和解决,尽量不要把它放到数据库层里去。
排序和分组就是典型例子。在应用层做性能提升总是比在数据库层做要来得容易的多。对于这点,不管是服务器端的MySQL数据库还是移动设备端的sqlite数据库都是如此。我可以来解释一下:我们对一些特定的查询应用以上的方法虽然不能减少客户端的响应时间,但是可以减缓数据库服务器的压力,避免数据库成为所有客户端的瓶颈。
2.尽可能地避免并发计算。
如果实在没法避免,那么记住,功能越强,程序就会越复杂。尽量避免直面线程。并且尽可能的在更高层次的抽象层上处理问题。举个iOS系统的例子:GCD、分派和队列操作绝对是我们可爱的好助手。相信我,人脑是不具备推理暂存的无限情形这一功能的——这是我亲身经历的惨痛教训给予我的第一手资料。
3.状态越少越好,最好保持局部化。实用至上。
4.短小又可自由组合的方法是我们的得力助手。
5.注释有时候是有害的。
因为随着时间的流逝,它会变得过时然后误人子弟,但是如果不注释同样是不可取的。不要啥鸡毛蒜皮的小事都拿来注释,好钢要用在刀刃上,如果有必要,我们甚至需要大段大段地写下战略性的长篇注释以备不时之需。因为,有时候记忆是个超能忽悠人的东西,搞不好你一觉醒来,甚至仅仅只是去喝了一杯咖啡回来,就忘记了。
6.不要妄自猜测
如果你觉得某个用例场景”应该不会有问题的吧“,那么可能过不了多久它就会大发淫威,成为发布产品中让你遭受惨痛教训的原因。相信自己的直觉,不要图省事就放任有疑问的地方不管,得主动测试、积极验证。
7.如果有疑问的话,将所有顾忌与团队交流沟通。
8.做正确的事——地球人都知道。
9.用户不是傻瓜,他们只是没有耐心去了解你所谓的捷径。
10.如果一个开发人员不被分派到维护系统(参与创建的)的团队中去,不能查看他们的猜想,那么他们曾经在这个系统上面付出的心血和汗水将会付之东流、化为乌有,而这时却发现了一些问题又需要参与进去——不要喊苦喊累,不要怨天尤人,你可知道这可是在成为一个更为睿智的专业程序员的节奏?
11.任务清单会是我们的好搭档。
12.积极主动让我们的工作更有趣,但是这需要努力。
13.突如其来的系统崩溃,仍然是我的噩梦。做好监控、日志和警报。清楚各种假警报,避免感觉钝化。保持系统对故障的敏感度和及时警报。
14.最后,别忘了我们是”拿人钱财,与人消灾“的,管理各种复杂的问题,做好相应的工作。
*注:Rich Hickey的讲座和Robert Martin的《Clean Code 》一文给了我很多启发。
转载自:http://news.html5tricks.com/coding-experiance.html
0 0
- 我的多年编程经验总结(转)
- 我的多年编程经验总结
- 多年iOS开发经验总结(转)
- 做程序员多年的经验总结
- [转]给大学生的18条忠告 多年经验总结
- 40多年祖传中医的临床经验总结(收藏)
- 30多年程序员生涯经验总结【转】
- 多年iOS开发经验总结(一)
- 我多年的计算机藏书
- 多年SEO经验总结
- 多年iOS开发经验总结
- 多年iOS开发经验总结
- 多年 iOS 开发经验总结
- 多年 iOS 开发经验总结
- 多年iOS开发经验总结
- 多年iOS开发经验总结
- 编程多年的一些疑问
- 用我多年的编程经验告诉你什么是“编程思想”(收集)
- js完美的div拖拽实例代码
- java-写一个死锁的案例
- Python3标准库(一) 内置函数
- C#重命名文件名
- 巧用dimens适配多个分辨率
- 我的多年编程经验总结(转)
- cocos2dx shader -- Vol.1(灰度、流光、百叶窗)
- Qt布局管理器的使用(一)
- java 零宽断言
- uva 10905(排序)
- Android 几个重要的英文单词
- C#格式化字符串
- 专访《迷你西游》江涛 用不断的创新点来留住玩家
- 关于《Proofs from THE BOOK》chapter22 单调序列问题