庖丁解羊-闲谈编程思想(转).doc

庖丁解羊-闲谈编程思想(转).doc

ID:51705401

大小:37.95 KB

页数:5页

时间:2020-03-15

庖丁解羊-闲谈编程思想(转).doc_第1页
庖丁解羊-闲谈编程思想(转).doc_第2页
庖丁解羊-闲谈编程思想(转).doc_第3页
庖丁解羊-闲谈编程思想(转).doc_第4页
庖丁解羊-闲谈编程思想(转).doc_第5页
资源描述:

《庖丁解羊-闲谈编程思想(转).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、正文:庖丁解羊                            ----闲谈编程思想作者:HolyFire经过多年的编程,我发现编程的思想对一个程序员是至关重要的,以前拿到一个问题,马上就开始考虑如何来一点一点把他用代码来实现,于是啃啊啃啊于愁眉笼罩千辛万苦下每完成了一点就欣喜若狂。编着编着发现这里不足,那里没考虑到于是东补补西凑凑,异常蹩脚的完成了一个小程序,当时的感觉就像我完成了全世界,或许那个时代是我最开心的。完成了四五个程序的我,开始发现我做了很多重复的劳动,于是乎开始做我的程序库,编写功能型模块。想到了这些模块只要写一遍就可以受用无穷不禁得

2、意洋洋,或许那个时代我是聪明。当我写了五六千行代码的时候,我发现我写的功能模块已经记不清什么是干什么的了,而我已经习惯使用别人写的比我好的模块时,我开始迷茫,我做的一切究竟是为了什么。这时我开始研究别人的代码,开始懂得什么是优化,什么是数据结构,什么是数学建模,我开始研究应用数学和软件工程。这时我开始使用C++用类来写程序,或许那个年代我是明智的。当我写了四五十个*.h和*.cpp后,开始发现我写的类一点都不通用,无法再利用。我开始深入学习类以及面向对象,明白了继承和封装,这时的我才开始深深思考什么是重要的,于是我开始分析问题而不是一上手就开始编代码。或许

3、以前的我是个傻瓜^_^。我足足花了三年多的时间来浪费我的青春做了别人仅需一年的事情(当然着三年中我积累的经验不可能是一年能做到的,但是对于编程上的修养,我浪费的时间已太多),如果你们没有意识到这点,或许也会浪费很多时间。分析能力对一个程序员来说是一个重要的属性,它直接关系到你对事物的理解能力和组织能力,程序员做的工作就是将一个事物分解成数学元素然后重新组织在计算机里重现,所以如何处理事物是个要点。我们了解一个事物并进行描述的时候,往往是先处理它的一部分,接着处理另一部分,然后等所有的部分都处理完的时候,具体的事物就重现了。比如给一个不知道山羊的人介绍山羊,

4、如果你对他说山羊就是山羊,他是无论如何都不会明白的。如果你说山羊是一种有四只脚的脑袋上有两只角,还有短短的尾巴,那他模模糊糊会有些形象在脑海里了,如果加上有绒绒的毛,可笑的胡子,咩咩的叫的食草动物,至少他不会和牛混淆起来,如果你能描述的更详细更好,那他有九成知道山羊是什么样子了,当他看见山羊的时候就会立刻明白。对于什么都不懂得计算机你不用说明什么,但是要是别人或者几年以后的你自己能看明白你的文档,详细的说明是必须的。而从上面的过程看来,将事物分成小块来处理是个好办法,我们把这个过程叫做划分。当然划分是可以继续下去,将划分的小块继续划分直到不能划分为止。当然

5、要对一只山羊划分需要一个对山羊有着全面了解的人,所以划分你的问题的时候要对问题有全面的了解。看上去这对一个还没有了解这个问题的人是一个矛盾,划分一个事物有助于了解这个事物而要很好的划分却需要对事物充分的了解。于是我们要有所改变,要改变的是我们的做法。我们先粗略的了解问题,然后粗略的划分一下,将划分的模块再粗略的了解一下,然后将它粗略的划分,等到都成为不可划分的小块时,我们再来组织它。而且这个时候,我们对问题已经有全面的了解了,这时候我们将小块的重复部分扔掉(一般一定会有重复的部分),然后将这些小块重新将问题组合起来,想一下将一只大卸八块的山羊组合起来,哈哈

6、,一定是活不过来了,不过有羊肉吃也不错。如果你很顺利的组合起来了,表示你很好的划分了这个问题而且了解的很透彻,以后的事将会一帆风顺,你这时脑袋里一定充满了解决这个问题的方案,已经跃跃欲试了。不要急,聪明的人会仔细的将划分的过程多看几遍,重组的方法多试几种,这不但对以后和编程有好处,也是更好解决方案的起点。现在我们来解剖一只山羊,如果你愿意还可以细分,动物爱好者请回避。山羊->脑袋->躯体->四肢->尾部脑袋躯体四肢尾部->五官->   胸->两只前肢->尾巴->胡子->   腹->两只后肢->绒毛->绒毛->   背  ->骨架->骨架->内脏    ->

7、绒毛    ->骨架    五官->耳朵->眼睛->鼻子->嘴巴内脏->心->脾->肝->肺->胃->肠->肾前肢后肢->   脚->   脚->绒毛->绒毛->骨架->骨架最后我们得到的是:山羊脑袋躯体四肢尾部脑袋五官胡子绒毛骨架躯体胸腹背内脏绒毛骨架四肢两只前肢两只后肢尾部尾巴绒毛骨架五官耳朵眼睛鼻子嘴巴内脏心脾肝肺肾胃肠前肢脚绒毛骨架后肢脚绒毛骨架去掉重复的部分:山羊脑袋躯体四肢尾部五官胡子绒毛骨架胸腹背内脏两只前肢两只后肢尾巴耳朵眼睛鼻子嘴巴心脾肝肺肾胃肠脚脚最终的不可划分的子模块:胡子绒毛骨架胸腹背尾巴耳朵眼睛鼻子嘴巴心脾肝肺胃肠脚现在我们将它重

8、新组合一下,是不是很简单的就完成了。而且我们需要处理的东西并不多。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。