抽象能力決定編程能力

程序員的抽象能力是在了解計(jì)算機(jī)工作原理的基礎(chǔ)上,借助于一種或多種編程語(yǔ)言將問(wèn)題的解決方案抽象為計(jì)算機(jī)程序的能力璧瞬。在前文《關(guān)于編程能力的思考》中提到了編程能力包括理論基礎(chǔ)和系統(tǒng)設(shè)計(jì)能力,抽象思維能力恰恰就是決定編程能力的關(guān)鍵渡讼。

程序的本質(zhì)是人的意志延伸到計(jì)算機(jī)的可識(shí)別的指令城菊。計(jì)算機(jī)思維簡(jiǎn)單僅能識(shí)別 0 1 代碼传于,本身不能解決任何問(wèn)題,只能由人編寫(xiě)程序控制計(jì)算機(jī)解決問(wèn)題菩彬,因此編程的本質(zhì)就是人“教會(huì)”計(jì)算機(jī)解決問(wèn)題缠劝。

編寫(xiě)程序總是離不開(kāi)各種各樣的數(shù)據(jù)結(jié)構(gòu)與算法,其中又蘊(yùn)含著深刻的數(shù)學(xué)思想骗灶。理解一種數(shù)據(jù)結(jié)構(gòu)或算法惨恭,就是在理解解決方案的一種抽象。

隨著業(yè)務(wù)越來(lái)越復(fù)雜耙旦、需求越來(lái)越多脱羡,程序總是在擴(kuò)展和重構(gòu)之間徘徊,在這個(gè)過(guò)程中免都,需要程序員深入理解業(yè)務(wù)并逐漸優(yōu)化系統(tǒng)設(shè)計(jì)锉罐。正是在這樣逐漸抽象的過(guò)程中,誕生了開(kāi)發(fā)框架绕娘、中間件和業(yè)務(wù)框架脓规。有著良好抽象能力的程序員能夠根據(jù)業(yè)務(wù)的特點(diǎn)抽象出軟件最合理的設(shè)計(jì),使得程序具有良好的可讀性险领、性能抖拦、擴(kuò)展性、伸縮性舷暮、可用性和可靠性态罪,而抽象能力差的程序員面對(duì)復(fù)雜的業(yè)務(wù)邏輯很可能束手無(wú)策導(dǎo)致代碼臃腫難以維護(hù)。

如何提高編程的抽象思維能力下面,或者抽象能力又具體體現(xiàn)在哪些方面呢复颈?作者認(rèn)為有三個(gè)方面可以參考:善用自頂向下逐層分解的程序設(shè)計(jì)思想、熟練使用設(shè)計(jì)模式和對(duì)代碼進(jìn)行必要的重構(gòu)。這三個(gè)方面能夠體現(xiàn)出優(yōu)秀程序員的抽象思維能力耗啦。

1凿菩、善用自頂向下、逐層分解的程序設(shè)計(jì)思想:

無(wú)論閱讀或編寫(xiě)什么樣的程序帜讲,都要始終堅(jiān)持自頂向下衅谷、逐層分解。無(wú)論配置多少個(gè)顯示器似将,打開(kāi)多少個(gè)編輯器获黔,都不可能一次展示出所有的代碼,在閱讀或編程時(shí)在验,始終把思維控制在一個(gè)屏幕范圍內(nèi),看不到的代碼都當(dāng)做是黑盒腋舌,用抽象的思維去理解代碼盏触。小系統(tǒng)總是容易理解块饺,大系統(tǒng)則很難一次把解決方案裝入大腦,越大的系統(tǒng)越需要在設(shè)計(jì)和理解時(shí)進(jìn)行抽象授艰。

2、熟練使用設(shè)計(jì)模式:

設(shè)計(jì)模式是程序抽象到一定層次后自然而然產(chǎn)生的多種模式想诅≌倥樱基于這些模式来破,可以更好地理解和交流程序的架構(gòu)和設(shè)計(jì),是軟件開(kāi)發(fā)的成熟套路徘禁。設(shè)計(jì)模式是面向?qū)ο筌浖軌驈?fù)用的基礎(chǔ),用好設(shè)計(jì)模式能培養(yǎng)程序員的抽象思維能力送朱。

3娘荡、對(duì)代碼進(jìn)行必要的重構(gòu):

重構(gòu)可以改善既有代碼的設(shè)計(jì)驶沼,消除代碼中的壞味道炮沐。任何一段代碼都應(yīng)該經(jīng)歷三個(gè)階段,最初的設(shè)計(jì)階段追求多快好省地解決問(wèn)題回怜,后來(lái)的設(shè)計(jì)優(yōu)化用于擴(kuò)展程序的新需求和解決 bug大年,最后的重構(gòu)則把重點(diǎn)放在系統(tǒng)設(shè)計(jì)的優(yōu)化上。重構(gòu)是培養(yǎng)抽象能力的好方法,如何用更好的抽象模型描述解決方案以實(shí)現(xiàn)更好的擴(kuò)展性翔试、伸縮性轻要、可用性、可靠性值得每個(gè)人深思垦缅。

每周 3 篇學(xué)習(xí)筆記或技術(shù)總結(jié)冲泥,面向有一定基礎(chǔ)的 Java 程序員,內(nèi)容涉及 Java 進(jìn)階壁涎、虛擬機(jī)凡恍、MySQL、NoSQL粹庞、分布式計(jì)算咳焚、開(kāi)源框架等多個(gè)領(lǐng)域洽损。關(guān)注作者或微信公眾號(hào) backend-develop 第一時(shí)間獲取最新內(nèi)容庞溜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市碑定,隨后出現(xiàn)的幾起案子流码,更是在濱河造成了極大的恐慌,老刑警劉巖延刘,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漫试,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡碘赖,警方通過(guò)查閱死者的電腦和手機(jī)驾荣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)普泡,“玉大人播掷,你說(shuō)我怎么就攤上這事『嘲啵” “怎么了歧匈?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)砰嘁。 經(jīng)常有香客問(wèn)我件炉,道長(zhǎng),這世上最難降的妖魔是什么矮湘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任斟冕,我火速辦了婚禮,結(jié)果婚禮上缅阳,老公的妹妹穿的比我還像新娘宫静。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布孤里。 她就那樣靜靜地躺著伏伯,像睡著了一般说搅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上虏等,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天霍衫,我揣著相機(jī)與錄音,去河邊找鬼澄干。 笑死,一個(gè)胖子當(dāng)著我的面吹牛麸俘,可吹牛的內(nèi)容都是我干的惧笛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拜效,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼各谚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起稻励,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤望抽,失蹤者是張志新(化名)和其女友劉穎履婉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體毁腿,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年妓羊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稍计。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡净刮,死狀恐怖硅则,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怎虫,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布穷吮,位于F島的核電站饥努,受9級(jí)特大地震影響八回,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缠诅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一管引、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褥伴,春花似錦、人聲如沸饥臂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)囚戚。三九已至,卻和暖如春绿店,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背假勿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工转培, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浸须。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓删窒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親肌索。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 本文把程序員所需掌握的關(guān)鍵知識(shí)總結(jié)為三大類(lèi)19個(gè)關(guān)鍵概念,然后給出了掌握每個(gè)關(guān)鍵概念所需的入門(mén)書(shū)籍午乓,必讀書(shū)籍,以及...
    dle_oxio閱讀 11,100評(píng)論 6 244
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,091評(píng)論 25 707
  • 莫與周?chē)时?只期許未來(lái)自己的模樣 想想最重要的事梢灭,那么當(dāng)下這點(diǎn)小小的不快又算什么蒸其?! 莫讓未來(lái)的自己討厭現(xiàn)在的自...
    Dave_Jenny閱讀 192評(píng)論 0 1
  • 最近電視劇《大秦帝國(guó)-崛起》正在熱播颂暇,雖然電視沒(méi)看過(guò)但惶,但兩年前就把孫皓暉寫(xiě)得這部《大秦帝國(guó)》看完了湿蛔,非常過(guò)癮县爬,至今...
    往前走的蟹子閱讀 185評(píng)論 0 0
  • 前段時(shí)間在知乎上看到一個(gè)回答,答案里面對(duì)窮進(jìn)行了定義: 我對(duì)貧窮的定義是察迟,總資產(chǎn)少于2000萬(wàn),沒(méi)有財(cái)務(wù)自由扎瓶。 初...
    Chigogo閱讀 468評(píng)論 0 5