程序开发的效率,其实不是写代码的速度。经验相当的人,写代码的速度其实差不了多少。至少会是同一个数量级的。但思路和实现方法却不是差一点数量级的问题。
实现同样的功能和效果,按某些方法(虽然可能是常规方法),如果需要一周的工作量的话, 用变通的方法不仅能实现同样的功能(或许更好的),可能一天,甚至几个小时就搞定了。
最近深有体会。现在开始明白为什么微软这样的大公司在笔试的时候,程序要要做的智力类型的题目的比例会比实际考编程的还多。 明白为什么很多大公司招聘的笔试题里会有智力测试的部分。
举个例子。同事录里写日志有个功能,给所有好友发通知。接着问题来了,有些人觉得通知太多太烦了。现在要开发让用户屏蔽好友通知的功能。实现方法有很多,比如:
解决方案1、在我自己的用户表里,设置个字段,记录我屏蔽了哪些人。 下次遇到通知的时候,如果发送人是我记录的id的,就不显示。
程序需要处理:1)、屏蔽操作。将要屏蔽的人加到我的个人资料字段里。 2)、修改读通知的机制。每次读出以前判断。
存在的问题:读通知的地方太多了。需要修改的地方非常多。工作时间可能需要好几天,还可能出错。
解决方案2、当我屏蔽对方时,到对方记录里去记录。当对方写博客时,发现我屏蔽他了,就不发给我了。 不需要修改通知机制。几个小时就能完成。
问题又来了。我没办法知道我屏蔽了哪些人。总不能把我所有好友都读出来,判断一遍吧。 还可以在我的信息里也记录一下。
解决方案3、单独建一个数据表。用户需要屏蔽谁,直接在这个表里加一条记录,记录谁屏蔽了谁。我 和 被屏蔽的对方,都能很方便的从这个表知道, 我屏蔽了谁,谁屏蔽了我。 取消屏蔽很容易处理,直接删除一条记录就可以了。
发通知以前,查询下谁屏蔽我了,屏蔽了就不发。
最佳方案,几个小时就能完成编码工作。
(原文发布于同事录:http://tongshilu.com/2 )
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
|---|---|---|---|---|---|---|
| « Nov | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | ||||
好文,收藏至20ju.com