锁定老帖子 主题:从思维角度看编程技巧
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (7)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-31
最后修改:2009-08-16
当我们想做一件事情的时候,比如我们要从住处出发到某个餐馆去跟女友约会。
如果是个大老粗,不管三七二十一,出发吧。结果,到了之后,发现钱没带够,花忘了买,连最重要的礼物也忘家里了。没办法,还得折回去拿。结果是,自己累不说,还浪费了时间,浪费了金钱,而且女朋友也不开心。
如果是个思维缜密的人,他会先想:我去餐馆的目的是什么,哦,最重要的事情,是带给女朋友从国外买回来的礼物,所以千万别落了。当然,吃饭不能让女朋友付钱,所以得带上足够的钱。还有,如果送上一朵玫瑰,在烛光下,会更浪漫一点。用这两分钟时间先进行思考的结果是,什么都没落下,女朋友也很开心,最后,终于赢得美人归。
其实是编程中某些新鲜的做法,引起我上面的思考。在实现一个方法的时候,我们有时候可以先写结果(即我们想要的),然后一步步推导回去,在这个过程中,我们会很顺其自然的知道:我们要得到这个结果,需要什么?然后去把我们需要的东西拿出来即可。非常简单,不会做任何多余的事情。
而如果按照正常的写法,我们难免会像上面那个大老粗一样,要丢三拉四。
其实,原因就在于,前一种做法,你把你想要的和过程中所需要的都写下来了。而后一种做法,你把你想要的和所需要的,都还保留在大脑里。既然保留在大脑里,就难免出错,难免丢三落四。而且,保留在大脑里,就会增加大脑的负荷。既然如此,为何不把它从大脑中移出,即保证正确,又可以利用你的大脑去思考真正要思考的。
这个方法,其实和要先写伪代码的注释,是一个目的。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-06-02
测试驱动开发(TDD)在写测试代码的时候,就是用得这种思考方法呀。
|
|
返回顶楼 | |
发表时间:2008-06-02
这点上来讲,先写测试就非常对,先把要达到的效果写出来,写代码时就不会乱来了!
|
|
返回顶楼 | |
发表时间:2008-06-02
从产品管理团队管理的角度出发 测试驱动是个简单高效的方法
但是从个人英雄主义的角度出发 测试驱动是缺乏全局观和前瞻性的无能做法 |
|
返回顶楼 | |
发表时间:2008-06-03
不理解你的意思,什么叫做从个人英雄主义角度出发? 个人英雄主义和测试驱动又有什么关系?
|
|
返回顶楼 | |
发表时间:2008-06-03
andyhu1007 写道 不理解你的意思,什么叫做从个人英雄主义角度出发?
简单,把个人英雄主义者拖出去挖个坑埋了 成功了是他的个人英雄 失败了你要作为一个队友跟他一起背锅 |
|
返回顶楼 | |
发表时间:2008-06-03
gigix 写道 andyhu1007 写道 不理解你的意思,什么叫做从个人英雄主义角度出发?
简单,把个人英雄主义者拖出去挖个坑埋了 成功了是他的个人英雄 失败了你要作为一个队友跟他一起背锅 没错。但我不理解seen讲的个人英雄主义和测试驱动有什么关系。。 |
|
返回顶楼 | |
发表时间:2008-06-03
andyhu1007 写道 gigix 写道 andyhu1007 写道 不理解你的意思,什么叫做从个人英雄主义角度出发?
简单,把个人英雄主义者拖出去挖个坑埋了 成功了是他的个人英雄 失败了你要作为一个队友跟他一起背锅 没错。但我不理解seen讲的个人英雄主义和测试驱动有什么关系。。 说明你还是没理解我说的 个人英雄是不做测试驱动的 因为测试驱动让编程变得简单直白,每步思路清清楚楚摆在面上 而个人英雄希望以某种神秘的个人力量(而不是清晰直白的大家都可以理解的方式)来解决问题 所以,再说一遍 把个人英雄拖出去挖个坑埋了 |
|
返回顶楼 | |
发表时间:2008-06-04
gigix 写道 andyhu1007 写道 gigix 写道 andyhu1007 写道 不理解你的意思,什么叫做从个人英雄主义角度出发?
简单,把个人英雄主义者拖出去挖个坑埋了 成功了是他的个人英雄 失败了你要作为一个队友跟他一起背锅 没错。但我不理解seen讲的个人英雄主义和测试驱动有什么关系。。 说明你还是没理解我说的 个人英雄是不做测试驱动的 因为测试驱动让编程变得简单直白,每步思路清清楚楚摆在面上 而个人英雄希望以某种神秘的个人力量(而不是清晰直白的大家都可以理解的方式)来解决问题 所以,再说一遍 把个人英雄拖出去挖个坑埋了 基本上是这样的 |
|
返回顶楼 | |
发表时间:2008-06-05
小声的唱一下反调。
事先的构思过程可能还是必要的,但是构思过程不一定需要用测试方法表达哦。 还有,对于 seen 写道 从产品管理团队管理的角度出发 测试驱动是个简单高效的方法
但是从个人英雄主义的角度出发 测试驱动是缺乏全局观和前瞻性的无能做法 我认为,英雄主义不好,但是英雄还是好的! 无论是何种类型的团队,软件业也好其他行业也好,团队中的英雄常常对团队又巨大的推动作用。就是《人件》中改变团队熵的人。 真正的英雄,的确有比普通人更好的全局观和前瞻性. 文化上平等和开放的组织,可以发挥民主的最大作用,但在分歧的决策上集中是不可避免的,也是事实证明高效的。(高效是速度快的意思,好的人,速度在好的方向上体现;坏的人,速度在坏的方向体现。所以,如果有好的英雄,还确实是一个好事)。 题外话,如何快速地识别,培养,选拔好的英雄并将其价值最大化,是不是也该成为软件方法中值得研究的问题。 |
|
返回顶楼 | |