国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

庖丁解羊----劃分

2019-09-10 09:07:07
字體:
來源:轉載
供稿:網(wǎng)友

 

庖丁解羊

/t/t/t    ----閑談編程思想

作者:HolyFire

 

經(jīng)過多年的編程,我發(fā)現(xiàn)編程的思想對一個程序員是至關重要的,以前拿到一個問題,馬上就開始考慮如何來一點一點把他用代碼來實現(xiàn),于是啃啊啃啊于愁眉籠罩千辛萬苦下每完成了一點就欣喜若狂。編著編著發(fā)現(xiàn)這里不足,那里沒考慮到于是東補補西湊湊,異常蹩腳的完成了一個小程序,當時的感覺就像我完成了全世界,或許那個時代是我最開心的。

完成了四五個程序的我,開始發(fā)現(xiàn)我做了很多重復的勞動,于是乎開始做我的程序庫,編寫功能型模塊。想到了這些模塊只要寫一遍就可以受用無窮不禁得意洋洋,或許那個時代我是聰明。

當我寫了五六千行代碼的時候,我發(fā)現(xiàn)我寫的功能模塊已經(jīng)記不清什么是干什么的了,而我已經(jīng)習慣使用別人寫的比我好的模塊時,我開始迷茫,我做的一切究竟是為了什么。這時我開始研究別人的代碼,開始懂得什么是優(yōu)化,什么是數(shù)據(jù)結構,什么是數(shù)學建模,我開始研究應用數(shù)學和軟件工程。這時我開始使用C++用類來寫程序,或許那個年代我是明智的。

當我寫了四五十個*.h和*.cpp后,開始發(fā)現(xiàn)我寫的類一點都不通用,無法再利用。我開始深入學習類以及面向對象,明白了繼承和封裝,這時的我才開始深深思考什么是重要的,于是我開始分析問題而不是一上手就開始編代碼。或許以前的我是個傻瓜^_^。

我足足花了三年多的時間來浪費我的青春做了別人僅需一年的事情(當然著三年中我積累的經(jīng)驗不可能是一年能做到的,但是對于編程上的修養(yǎng),我浪費的時間已太多),如果你們沒有意識到這點,或許也會浪費很多時間。

分析能力對一個程序員來說是一個重要的屬性,它直接關系到你對事物的理解能力和組織能力,程序員做的工作就是將一個事物分解成數(shù)學元素然后重新組織在計算機里重現(xiàn),所以如何處理事物是個要點。

我們了解一個事物并進行描述的時候,往往是先處理它的一部分,接著處理另一部分,然后等所有的部分都處理完的時候,具體的事物就重現(xiàn)了。比如給一個不知道山羊的人介紹山羊,如果你對他說山羊就是山羊,他是無論如何都不會明白的。如果你說山羊是一種有四只腳的腦袋上有兩只角,還有短短的尾巴,那他模模糊糊會有些形象在腦海里了,如果加上有絨絨的毛,可笑的胡子,咩咩的叫的食草動物,至少他不會和牛混淆起來,如果你能描述的更詳細更好,那他有九成知道山羊是什么樣子了,當他看見山羊的時候就會立刻明白。對于什么都不懂得計算機你不用說明什么,但是要是別人或者幾年以后的你自己能看明白你的文檔,詳細的說明是必須的。而從上面的過程看來,將事物分成小塊來處理是個好辦法,我們把這個過程叫做劃分。當然劃分是可以繼續(xù)下去,將劃分的小塊繼續(xù)劃分直到不能劃分為止。當然要對一只山羊劃分需要一個對山羊有著全面了解的人,所以劃分你的問題的時候要對問題有全面的了解。看上去這對一個還沒有了解這個問題的人是一個矛盾,劃分一個事物有助于了解這個事物而要很好的劃分卻需要對事物充分的了解。于是我們要有所改變,要改變的是我們的做法。我們先粗略的了解問題,然后粗略的劃分一下,將劃分的模塊再粗略的了解一下,然后將它粗略的劃分,等到都成為不可劃分的小塊時,我們再來組織它。而且這個時候,我們對問題已經(jīng)有全面的了解了,這時候我們將小塊的重復部分扔掉(一般一定會有重復的部分),然后將這些小塊重新將問題組合起來,想一下將一只大卸八塊的山羊組合起來,哈哈,一定是活不過來了,不過有羊肉吃也不錯。如果你很順利的組合起來了,表示你很好的劃分了這個問題而且了解的很透徹,以后的事將會一帆風順,你這時腦袋里一定充滿了解決這個問題的方案,已經(jīng)躍躍欲試了。不要急,聰明的人會仔細的將劃分的過程多看幾遍,重組的方法多試幾種,這不但對以后和編程有好處,也是更好解決方案的起點。

現(xiàn)在我們來解剖一只山羊,如果你愿意還可以細分,動物愛好者請回避。

 

山羊

-> 腦袋

-> 軀體

-> 四肢

-> 尾部

 

腦袋

軀體

四肢

尾部

-> 五官

->   胸

 

-> 兩只前肢

-> 尾巴

-> 胡子

->   腹

-> 兩只后肢

-> 絨毛

-> 絨毛

->   背

 

-> 骨架

-> 骨架

-> 內臟

 

 

 

-> 絨毛

 

 

 

-> 骨架

 

 

 

五官

-> 耳朵

-> 眼睛

-> 鼻子

-> 嘴巴

 

內臟

-> 心

 

-> 脾

-> 肝

-> 肺

-> 胃

-> 腸

-> 腎

 

前肢

后肢

->   腳

 

->   腳

-> 絨毛

-> 絨毛

-> 骨架

-> 骨架

最后我們得到的是:

山羊 腦袋 軀體 四肢 尾部 腦袋 五官 胡子 絨毛 骨架 軀體 胸 腹 背 內臟 絨毛 骨架 四肢 兩只前肢 兩只后肢 尾部 尾巴 絨毛 骨架 五官 耳朵 眼睛 鼻子 嘴巴 內臟 心 脾 肝 肺 腎 胃 腸 前肢 腳 絨毛 骨架 后肢 腳 絨毛 骨架

去掉重復的部分:

山羊 腦袋 軀體 四肢 尾部 五官 胡子 絨毛 骨架 胸 腹 背 內臟 兩只前肢 兩只后肢 尾巴 耳朵 眼睛 鼻子 嘴巴 心 脾 肝 肺 腎 胃 腸 腳 腳

最終的不可劃分的子模塊:

胡子 絨毛 骨架 胸 腹 背 尾巴 耳朵 眼睛 鼻子 嘴巴 心 脾 肝 肺 胃 腸 腳

現(xiàn)在我們將它重新組合一下,是不是很簡單的就完成了。而且我們需要處理的東西并不多。現(xiàn)在我們來用數(shù)學元素來描述一下

胡子: 數(shù)量不多的多種形狀的輪廓,有各種顏色

絨毛: 非常多的多種形狀的輪廓,有各種顏色

骨架: 多種形狀的輪廓,有一種顏色

胸:     某形狀的輪廓,有一種顏色

腹:     某形狀的輪廓,有各種顏色

背:     某形狀的輪廓,有各種顏色

尾巴: 某形狀的輪廓,有各種顏色

耳朵: 最多兩個的某形狀的輪廓,有各種顏色

眼睛: 最多兩個的某形狀的輪廓,有各種顏色

鼻子:
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 依兰县| 五台县| 定州市| 石台县| 丹东市| 阳谷县| 深水埗区| 正定县| 翁牛特旗| 镇巴县| 凭祥市| 中山市| 贡山| 新民市| 江达县| 盱眙县| 雅安市| 安泽县| 芮城县| 连城县| 双牌县| 开江县| 西安市| 股票| 兰溪市| 宕昌县| 石棉县| 乌拉特中旗| 丹棱县| 睢宁县| 阜平县| 常山县| 清镇市| 乌兰浩特市| 翁牛特旗| 齐齐哈尔市| 铜川市| 山阳县| 武威市| 永善县| 章丘市|