程序开发,不只是手艺,更是谋划
2011-03-07 00:00
393 查看
程序开发是技术活。只有通过不断积累经验,并且反思过去,才能偶有所得,进而改进自己的开发方式,提高工作效率。
写程序,不是体力活。一般写程序出现问题,都在于前期准备不够,其实写程序有一句箴言:厚积薄发。你要是思路清晰,不费劲,很快能开发出一个像模像样的系统出来。你要是思维混乱,折腾吧,管你怎么折腾,都会弄成一团糨糊。程序开发不是简单的,可以度量的,平滑的劳动积累,而是一系列公关的过程,你走了99%的路程,可能就卡死在这最后的1%之中,所以不能死板、粗暴的对待程序开发,必须保持头脑的清醒,必须经常留意是否走进死胡同。
对于程序开发,人们往往都太急于动手。对问题根本不清楚,以为借助开发行动,就能自然而然的理解,这样太过自信,太过蔑视问题。程序开发所面对的问题几乎总有我们想象不到的难,也许因为我们只是人类,是不是神明,去设计一套指挥别人行动的方案,这种神明的职能对我们来说很陌生。每件很普通平常的事情,深究下去,里面蕴含的结构和逻辑都异常复杂,只有没有试过深究的人才敢贸然行动。
作为前期准备,首先应该压制自己蠢蠢欲动的心情,然后也压制自己的雄心壮志,卑微的去观察,去模仿,进而吸取前人的劳动成果,才是正确的方法。很少人以模仿和顺从别人为荣,但实际这是一个很实在的做法。如果你连前人做了什么都一无所知,试问你做出来的东西可否知道究竟优胜在哪里呢?可是人们往往就是忽视这些,急于表现自己的聪明才智。
观察别人的成果,至少有个优点,你知道自己要开发什么,开发目标是什么。这种目标并不是“成功学”所谓的目标,也就是所谓的“我一定成功”,而是具体的,比如,我想让游戏这个部分的物品这样摆放,速度在这里这里可以改变一下。你只有真的去认识一个完整的产品之后,才能在大脑里形成比较成熟的观点。这种观点越是具体,你就越有可能将它实现出来。
一开始,你可能会对某些细节有看法,经过大量的反思之后,你能发现更加宏观性的架构问题,并有改进的方案。这就是一个积累的过程。
等待这个过程越来越明显,脑海中的印象越来越清晰,你就知道该开始动手了。
当你动手之后,发现原来之前的认识只是局部的,有很多漏洞,如果漏洞比想象中要多,你就不可能继续下去,说明你的积累还不够,认识太过片面,与其修补漏洞,还不如再次系统化的研究一下别人的成果。
程序开发,并不是手艺,而是谋划,需要积累对事物的正确认识的前提下,深思熟虑,规划方案,层层深入,步步为营,逐个击破。这就是程序开发的方法学。
写程序,不是体力活。一般写程序出现问题,都在于前期准备不够,其实写程序有一句箴言:厚积薄发。你要是思路清晰,不费劲,很快能开发出一个像模像样的系统出来。你要是思维混乱,折腾吧,管你怎么折腾,都会弄成一团糨糊。程序开发不是简单的,可以度量的,平滑的劳动积累,而是一系列公关的过程,你走了99%的路程,可能就卡死在这最后的1%之中,所以不能死板、粗暴的对待程序开发,必须保持头脑的清醒,必须经常留意是否走进死胡同。
对于程序开发,人们往往都太急于动手。对问题根本不清楚,以为借助开发行动,就能自然而然的理解,这样太过自信,太过蔑视问题。程序开发所面对的问题几乎总有我们想象不到的难,也许因为我们只是人类,是不是神明,去设计一套指挥别人行动的方案,这种神明的职能对我们来说很陌生。每件很普通平常的事情,深究下去,里面蕴含的结构和逻辑都异常复杂,只有没有试过深究的人才敢贸然行动。
作为前期准备,首先应该压制自己蠢蠢欲动的心情,然后也压制自己的雄心壮志,卑微的去观察,去模仿,进而吸取前人的劳动成果,才是正确的方法。很少人以模仿和顺从别人为荣,但实际这是一个很实在的做法。如果你连前人做了什么都一无所知,试问你做出来的东西可否知道究竟优胜在哪里呢?可是人们往往就是忽视这些,急于表现自己的聪明才智。
观察别人的成果,至少有个优点,你知道自己要开发什么,开发目标是什么。这种目标并不是“成功学”所谓的目标,也就是所谓的“我一定成功”,而是具体的,比如,我想让游戏这个部分的物品这样摆放,速度在这里这里可以改变一下。你只有真的去认识一个完整的产品之后,才能在大脑里形成比较成熟的观点。这种观点越是具体,你就越有可能将它实现出来。
一开始,你可能会对某些细节有看法,经过大量的反思之后,你能发现更加宏观性的架构问题,并有改进的方案。这就是一个积累的过程。
等待这个过程越来越明显,脑海中的印象越来越清晰,你就知道该开始动手了。
当你动手之后,发现原来之前的认识只是局部的,有很多漏洞,如果漏洞比想象中要多,你就不可能继续下去,说明你的积累还不够,认识太过片面,与其修补漏洞,还不如再次系统化的研究一下别人的成果。
程序开发,并不是手艺,而是谋划,需要积累对事物的正确认识的前提下,深思熟虑,规划方案,层层深入,步步为营,逐个击破。这就是程序开发的方法学。
相关文章推荐
- 手机程序开发
- USB驱动安装程序-开发过程
- 51单片机程序开发入门知识
- 【番外篇】mini2440裸机开发——程序下载SRAM,NorFlash方法
- J2ME程序开发中随机数字处理
- c#开发Windows服务程序及部署
- 开发的一个android程序,总是显示无法运行,就退出了。但是没有报错。求大神解救啊!
- 实例解析-范型程序开发
- J2ME程序开发新手入门要领
- 深度剖析WinPcap之(五)——在Visual studio 2005中使用WinPcap库进行程序开发
- iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(三·完结)
- 开发第一个Java程序 HelloWorld!
- 小程序后台开发Tomcat配置ssl
- 微信小程序开发经验总结(一)
- J2ME程序开发全方位基础讲解汇总
- 微信小程序(应用号)开发新闻客户端实例
- BizTalk开发系列(二) "Hello World" 程序搬运文件
- 微信小程序开发日志2018-03-07
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥