前言
如果有人問你:你怎么看待編程這件事服鹅?你怎么回答。
這個(gè)問題是忽然出現(xiàn)在我腦子中的百新。我突然意識(shí)到企软,其實(shí)不管是函數(shù)還是屬性智厌,他們都是數(shù)據(jù)逐样。我們編寫的所有程序都是在處理數(shù)據(jù)。函數(shù)本身也是一種特殊的數(shù)據(jù)劫侧。
真正難的是生產(chǎn)數(shù)據(jù)的這一過程铅辞。舉個(gè)例子藻治,給你一堆菜籽,要求生產(chǎn)出油來巷挥。怎么辦桩卵?我們首先為這個(gè)任務(wù)設(shè)計(jì)一個(gè)函數(shù):
-(油)用菜籽生產(chǎn)油(菜籽);
這就是我們最外層的函數(shù)倍宾,也應(yīng)該是我們最開始想到的函數(shù)雏节。然后經(jīng)過我們的研究發(fā)現(xiàn),這個(gè)生產(chǎn)過程很復(fù)雜高职,必須分工合作才能實(shí)現(xiàn)钩乍。于是我們把這個(gè)任務(wù)分割為好幾個(gè)小任務(wù):
1. - (干凈的菜籽)取出雜質(zhì)(菜籽);
2. - (炒熟的菜籽)把菜籽炒一下(干凈的菜籽);
3. - (蒸了的菜籽)把菜籽蒸一下(炒熟的菜籽);
4. - (捆好的菜籽)把菜籽包捆成一塊(蒸了的菜籽);
5. - (油)撞擊菜籽包(捆好的菜籽);
大家有沒有發(fā)現(xiàn),整個(gè)榨油的過程在編程看來就是對(duì)數(shù)據(jù)的處理怔锌。這一點(diǎn)其實(shí)很重要寥粹。如果沒有把- (油)用菜籽生產(chǎn)油(菜籽)变过;這一任務(wù)進(jìn)行拆分,我們就會(huì)寫出復(fù)雜無比的函數(shù)涝涤。那么就有人要問了媚狰,只要實(shí)現(xiàn)這個(gè)功能就行了唄。但是這就可能造成代碼臃腫,邏輯復(fù)雜的問題,這往往也是寫不出好代碼的原因阔拳。畢竟協(xié)調(diào)合作,效率更高.
整個(gè)任務(wù)的設(shè)計(jì)應(yīng)該是事先就設(shè)計(jì)好的(開發(fā)設(shè)計(jì)文檔)崭孤。任務(wù)被分割成更小更簡(jiǎn)單的部分,然后再去實(shí)現(xiàn)這些最小的任務(wù)糊肠,不應(yīng)該是變寫邊分割任務(wù)辨宠,往往臨時(shí)分割的任務(wù)(也算是私有函數(shù)吧)沒有最正確的界限,并且可能嚴(yán)重影響開發(fā)效率.
有了上邊合理的分工之后呢,我們就可以進(jìn)行任務(wù)安排了货裹。我們回到現(xiàn)實(shí)開發(fā)中來嗤形。上邊5個(gè)子任務(wù)的難度是不同的。有的人可能基礎(chǔ)比較差弧圆,那么讓他去干篩菜籽這種體力活赋兵,應(yīng)該沒問題。那些炒或者蒸的子任務(wù)是要掌握火候的墓阀,也就是說有點(diǎn)技術(shù)含量。那么就交給能勝任這項(xiàng)工作的人去做拓轻。所有的這一切斯撮,我們只要事先定義好各自的生產(chǎn)結(jié)果就行了,完全不影響每個(gè)程序的執(zhí)行扶叉。
怎么樣勿锅?大家體會(huì)到這種編程設(shè)計(jì)的好處了嗎?我還可以進(jìn)行合并枣氧,把炒和煮合成一個(gè)小組溢十,完全可行。如果我想買煮熟了的菜籽达吞,是不是也很簡(jiǎn)單张弛?
有的人用原始的撞擊菜籽包榨油,有的人卻用最先進(jìn)的儀器榨油酪劫,這就是編程技術(shù)和知識(shí)深度的區(qū)別吞鸭。