久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

編程思想

 賺錢(qián)密碼 2018-04-09

首先解釋一下“思想”最后補(bǔ)充一點(diǎn),,就是中國(guó)的一句老話(huà)“盡信書(shū),不如無(wú)書(shū)”,。編程的學(xué)習(xí)還是需要有一點(diǎn)批判的精神和創(chuàng)造的精神才好,。對(duì)于某些東西不要過(guò)早下定論,或許你某一個(gè)智慧的閃光,,將為計(jì)算機(jī)開(kāi)辟出一個(gè)新的發(fā)展方向,。
問(wèn)你個(gè)問(wèn)題:你想做個(gè)怎樣的人?
可能你會(huì)回答:我想做個(gè)好人,,孝敬父母,,尊重長(zhǎng)輩,關(guān)愛(ài)親朋……
你看,,這就是思想,。這是你做人的思想,或者說(shuō),,是你做人的原則,。
做人有做人的原則,編程也有編程的原則,。這些編程的原則呢,,就是編程思想。比如說(shuō),,C語(yǔ)言中,,數(shù)據(jù)與處理這些數(shù)據(jù)的函數(shù)是分離的,程序的最小單元是函數(shù),?!@種思想叫做面向過(guò)程編程。前輩們說(shuō),,這樣不好,,應(yīng)該把數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的行為放在一起,用一個(gè)叫做類(lèi)的東西裝起來(lái),。于是,,在Java中,程序的最小單元變成了類(lèi),?!@種思想叫封裝,、繼承、多態(tài),。封裝有什么作用,?封裝時(shí)要注意什么?繼承有什么優(yōu)點(diǎn)和缺點(diǎn),?什么時(shí)候使用繼承,?多態(tài)有什么好處?什么時(shí)候使用多態(tài),?……這些問(wèn)題的解答有一些指導(dǎo)原則,,比如單一職責(zé)原則里氏替換原則,、開(kāi)閉原則,、接口隔離原則依賴(lài)倒置原則等等,。這些原則就是編程思想。
舉個(gè)例子來(lái)說(shuō),,你寫(xiě)了一個(gè)程序,,現(xiàn)在用的是SQLServer的數(shù)據(jù)庫(kù),但客戶(hù)說(shuō),,將來(lái)也可能換成MySQL數(shù)據(jù)庫(kù),。那你可能就會(huì)考慮了:如何在現(xiàn)有的基礎(chǔ)上,做最少的改動(dòng),,就能從SQLServer換到MySQL,。于是,你就會(huì)開(kāi)始想這些問(wèn)題:如何能達(dá)到更少的變動(dòng),?是否需要?jiǎng)?chuàng)建接口,?在什么地方創(chuàng)建接口?接口中定義哪些方法,?如何讓調(diào)用者更方便地獲取接口的實(shí)現(xiàn)類(lèi)的對(duì)象,?……這個(gè),就是你的編程思想,。就是那些原則在你的實(shí)踐中的應(yīng)用,。

建議閱讀如下書(shū)籍:
《面向?qū)ο缶幊虒?dǎo)論(原書(shū)第3版)》
設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》(經(jīng)典中的經(jīng)典,,巨著中的巨著,精華中的精華)
《大話(huà)設(shè)計(jì)模式》(適合初學(xué)者,。如果看不懂上邊那本,,請(qǐng)配合這本書(shū)看)
敏捷軟件開(kāi)發(fā):原則、模式與實(shí)踐》(如果不想停留在紙上談兵的水平,,請(qǐng)看這本)
重構(gòu)與模式

那什么是編程思想,?答案可能很會(huì)復(fù)雜,但也可以很簡(jiǎn)單,。一句話(huà)來(lái)講就是,,用計(jì)算機(jī)來(lái)解決人們實(shí)際問(wèn)題的思維方式,即編程思想,。
  我們學(xué)習(xí)編程語(yǔ)言的最終目的,,就是希望用計(jì)算機(jī)來(lái)解決我們的實(shí)際問(wèn)題。那么學(xué)習(xí)計(jì)算機(jī)該如何入手,,也是很多初學(xué)者犯難的一個(gè)問(wèn)題,,特別是對(duì)與非計(jì)算機(jī)專(zhuān)業(yè)的人來(lái)說(shuō)更是如此。面對(duì)現(xiàn)實(shí)如此多的編程語(yǔ)言(比如:C,C ,JAVA,C#…)和種類(lèi)繁多的應(yīng)用技術(shù)(比如:windows編程,,linux編程,,數(shù)據(jù)庫(kù),網(wǎng)絡(luò)編程…),。確實(shí)讓人有些眼花繚亂,,摸不著頭腦。此篇文章就來(lái)談?wù)剬W(xué)習(xí)計(jì)算機(jī)的步驟和編程思想的發(fā)展,。
  
    計(jì)算機(jī)的發(fā)展大家也有所了解,,在這里就不多費(fèi)口舌。我們現(xiàn)在用的計(jì)算機(jī)CPU只能認(rèn)識(shí)0和1,,這是目前的現(xiàn)狀,。(如果你能發(fā)明另一種機(jī)器,能夠識(shí)別更多的符號(hào),,那么我支持你,,并由衷的希望你能有所成就)這個(gè)階段里面代表性的書(shū)籍就是“計(jì)算機(jī)組成原理”。這門(mén)課的精髓在于兩點(diǎn):第一,,計(jì)算機(jī)由哪些部分組成,,各有什么作用,少一個(gè)組成部件會(huì)有什么后果,。雖然當(dāng)初我對(duì)這本書(shū)看得不是很透,,但看完后我至少就知道了,電腦只要有個(gè)CPU,主板,,內(nèi)存就可以點(diǎn)亮了,。加個(gè)軟驅(qū),就可以運(yùn)行DOS超作系統(tǒng),。再加個(gè)光驅(qū),,硬盤(pán),就可以把WINDOWS系統(tǒng)放到硬盤(pán)上運(yùn)行起來(lái),。第二,,CPU是如何工作,CPU做了哪些事情,,CPU為什么只能認(rèn)識(shí)0和1,,CPU的尋址方式?對(duì)CPU本人了解得不深,,不敢隨意賣(mài)弄,。但有一個(gè)還是是需要知道一下的,CPU基礎(chǔ)計(jì)算只有3個(gè):與,,或,,非。這3個(gè)邏輯門(mén)實(shí)現(xiàn)了我們現(xiàn)在所有的計(jì)算機(jī)程序計(jì)算,。
  
  二:過(guò)程性的編程思想
  計(jì)算機(jī)只能認(rèn)識(shí)0和1,,但人卻不能只是用0,1來(lái)寫(xiě)程序,。為了程序的寫(xiě)得方便就出現(xiàn)了0,,1的第一層抽象標(biāo)記,匯編語(yǔ)言,。匯編里面的那些標(biāo)記可是直接對(duì)應(yīng)硬件的,。硬件生產(chǎn)廠商都有明確的指令說(shuō)明書(shū)。這些匯編標(biāo)記是可以被硬件直接識(shí)別的,。比如CPU,生產(chǎn)CPU的廠家都會(huì)有寄存器的標(biāo)識(shí)比如(ax,bx,cx),,操作指令標(biāo)識(shí)(mov),,等等。驅(qū)動(dòng)方面的編程大多會(huì)用到這方面的東西,。學(xué)習(xí)匯編的核心是你需要認(rèn)識(shí)到匯編是一種過(guò)程性的編程語(yǔ)言,,并且目前的CPU只能執(zhí)行過(guò)程性的程序,任何高級(jí)語(yǔ)言都必須轉(zhuǎn)換成過(guò)程性的編程語(yǔ)言后再交給CPU執(zhí)行,。在匯編里主要有三個(gè)操作:比較,,跳轉(zhuǎn)(goto),過(guò)程調(diào)用(call)。為什么說(shuō)它是過(guò)程性的編程思想,值得你去好好的體會(huì)一下,。不妨寫(xiě)幾個(gè)算法的程序(在程序里面用到比較,,跳轉(zhuǎn),過(guò)程調(diào)用),,再來(lái)看看匯編程序的特點(diǎn),,相信你會(huì)有所感悟。值得提一下的是,,如果你對(duì)操作系統(tǒng)感興趣,,也可以看看什么是保護(hù)模式。
  
  三:結(jié)構(gòu)性的編程思想
  隨著人們解決的問(wèn)題越來(lái)越復(fù)雜,,匯編程序當(dāng)然束縛了計(jì)算機(jī)軟件的發(fā)展,。因此編程思想發(fā)生了一場(chǎng)革命性的變化,結(jié)構(gòu)性的編程方法出現(xiàn)了,。在結(jié)構(gòu)性編程思想的編程語(yǔ)言里面,,C語(yǔ)言首當(dāng)其沖。C語(yǔ)言里面有幾個(gè)能表現(xiàn)出結(jié)構(gòu)化思想的地方:分支(if),循環(huán)(while,,for),結(jié)構(gòu)體(struct).只要你會(huì)用這三個(gè),,那么你就可以寫(xiě)出結(jié)構(gòu)化的程序,但不一定你就了解什么是結(jié)構(gòu)化的編程方法,。什么叫做結(jié)構(gòu)化,?為什么說(shuō)goto會(huì)破壞程序的結(jié)構(gòu)化?結(jié)構(gòu)體有什么作用,,你能說(shuō)出結(jié)構(gòu)體的哪些好處,?這些都是值得認(rèn)真體會(huì)的地方。別人給的定義不見(jiàn)得都全面,。還是自己理解比較靠得住,。結(jié)構(gòu)化編程里面最具代表性的書(shū)籍就要屬“數(shù)據(jù)結(jié)構(gòu)“,具體哪本書(shū)比較好就不知道了,,好像都差不多,,只要是用C寫(xiě)的就行。C語(yǔ)言的“數(shù)據(jù)結(jié)構(gòu)“里面就是專(zhuān)門(mén)來(lái)講怎么用結(jié)構(gòu)性的編程思想來(lái)解決實(shí)際中的算法問(wèn)題,??赐昴承┱鹿?jié),然后自己找個(gè)問(wèn)題,,再用程序去實(shí)現(xiàn)它,。多寫(xiě)一些程序,會(huì)很有幫助,。如果第一遍看完后你看得很模糊,,不防先放一放,過(guò)一段時(shí)間再看看,你可能會(huì)有種霍然開(kāi)朗的感覺(jué),。還有需要說(shuō)明一下,,并不是所有的時(shí)候結(jié)構(gòu)化的編程一就定好。某些的時(shí)候,,結(jié)構(gòu)化的編程會(huì)使程序更繁雜,。(比如結(jié)構(gòu)化編程希望函數(shù)只能有一個(gè)入口,一個(gè)出口,。然而有時(shí)一個(gè)出口會(huì)使程序看起來(lái)更繁雜)
  
  四:面向?qū)ο蟮木幊趟枷?br>  現(xiàn)在該說(shuō)說(shuō)面向?qū)ο缶幊塘?。這個(gè)也是現(xiàn)在用得最多的編程思想。什么是面向?qū)ο?,它和結(jié)構(gòu)性的思想有什么不同,?從程序語(yǔ)法上看,面向?qū)ο蟊冉Y(jié)構(gòu)性的程序多了兩個(gè)特性:
  1,,結(jié)構(gòu)體成員的私有化,。結(jié)構(gòu)化程序里面,結(jié)構(gòu)體的成員都是公有的,。然而在面向?qū)ο罄锩?,結(jié)構(gòu)體改稱(chēng)為類(lèi),并且成員分為公有和私有兩個(gè)部分,。就因?yàn)檫@一點(diǎn)的不同,,就產(chǎn)生了接口的概念。接口不就是類(lèi)成員的公有部分么,?(想想很好笑,,本人剛開(kāi)始認(rèn)識(shí)面向?qū)ο蟮臅r(shí)候,以為只有定義成interface的才叫做接口)
  2,,類(lèi)的繼承,。因?yàn)槌霈F(xiàn)了繼承,才出現(xiàn)了多態(tài),。然而就是因?yàn)槎鄳B(tài),,才出現(xiàn)諸如:隱藏啊,虛函數(shù)啊…等等這些概念,。多態(tài)的出現(xiàn),,能夠讓同一組數(shù)據(jù),在不同的階段,,用同一種表達(dá)方式,,執(zhí)行不同的操作,。如果把這個(gè)東西領(lǐng)悟到了,,那么你會(huì)感嘆一句”原來(lái)程序是可以這么寫(xiě)的”.
  因?yàn)橐陨蟽牲c(diǎn)的變化,編程思想也隨之發(fā)生了巨大轉(zhuǎn)變。它可以讓程序更適合人的思維方法來(lái)編寫(xiě),。面向?qū)ο蟮木幊陶Z(yǔ)言就很多了,可謂五花八門(mén):C ,JAVA,C#…,。這三個(gè)本人都用過(guò)。用的感覺(jué)在這里也隨口說(shuō)說(shuō),,只是代表個(gè)人觀點(diǎn),。都說(shuō)C 和JAVA有很大的不同,而JAVA和C#卻非常相似,,你知道為什么嗎,?最根本區(qū)別就在于垃圾收集器。就是因?yàn)镴AVA里面有垃圾自動(dòng)收集功能,,所以JAVA不能和C兼容,,而且也不能使用指針。在C 中的值類(lèi)型和引用類(lèi)型是可以自己定義的,。如果對(duì)象被定義為值類(lèi)型,,那么當(dāng)編輯器自動(dòng)把對(duì)象收集走之后,有時(shí)自己會(huì)一無(wú)所知,。如果對(duì)象被定義為引用類(lèi)型,,那么又要必須記得把它釋放掉,不然又會(huì)引起什么內(nèi)存泄漏的問(wèn)題,。在JAVA和C#里面就不一樣,,在這兩種語(yǔ)言里面,自定義的類(lèi),,初始得到的對(duì)象只能是引用類(lèi)型,。并且有垃圾收集器幫你回收垃圾對(duì)象。所以就不會(huì)出現(xiàn)內(nèi)存泄漏的問(wèn)題,。因?yàn)镃#比JAVA后出來(lái)吧,,JAVA所具有的特性,C#基本上都有,。并且還具有一些JAVA所不具有的特性(但C#目前不能在linux上面運(yùn)行),。當(dāng)然在這里不是說(shuō)哪個(gè)語(yǔ)言好,哪個(gè)語(yǔ)言壞,。其實(shí)他們都是來(lái)實(shí)現(xiàn)面向?qū)ο缶幊痰墓ぞ?。你也可以用C或者匯編寫(xiě)一門(mén)支持面向?qū)ο蟮恼Z(yǔ)言出來(lái)(如果你想做,本人絕對(duì)支持,,或者用匯編也行,。為中國(guó)的軟件事業(yè)貢獻(xiàn)一份力量,免得總說(shuō)什么什么語(yǔ)言都是他們外國(guó)人發(fā)明的,。)只要它能夠?qū)崿F(xiàn)數(shù)據(jù)封裝,,成員私有化,,和繼承就行了。在面向?qū)ο蟮木幊汤锩?,代表性?shū)籍就要屬“設(shè)計(jì)模式“了,。不過(guò)設(shè)計(jì)模式這個(gè)東西,不是你看書(shū)就能看懂的,。并且你硬套那些模式,,不一定對(duì)你有多大的好處。這個(gè)東西,,只有設(shè)計(jì)做多了,,才能有所領(lǐng)悟,自己得到總結(jié),??偨Y(jié)多了,就會(huì)發(fā)現(xiàn)和書(shū)上的那些東西不謀而合,,或許可能比書(shū)上總結(jié)得更好,。 
  將來(lái)的編程思想的會(huì)是一個(gè)什么樣子,,我也不得而知,。希望有志之士能夠發(fā)明一種編程的思想出來(lái),推動(dòng)軟件業(yè)的發(fā)展,,讓中國(guó)也來(lái)引領(lǐng)一下世界軟件的發(fā)展潮流,。如果你是初學(xué)者,可以按照上面的順序來(lái)學(xué)習(xí)計(jì)算機(jī),。希望在每個(gè)環(huán)節(jié)中能掌握其重點(diǎn),。相信一年之后,你就會(huì)有所感悟,?! ?br>  大家都希望學(xué)的東西是可以用來(lái)賺錢(qián)的。而往往能夠快速用來(lái)賺錢(qián)的都是一種應(yīng)用技術(shù)像windows編程,,linux編程,,WEB開(kāi)發(fā)等等。你掌握了其中的一門(mén)技能,,就可以謀得一個(gè)職位,,可能還可以拿到一個(gè)不錯(cuò)的薪水。然而如果你掌握了編程思想,,那么那些應(yīng)用技術(shù)將一通百通(因?yàn)閼?yīng)用技術(shù)往往都是對(duì)特定的一些函數(shù)的調(diào)用,,通俗一點(diǎn)就是調(diào)用API,這些東西到專(zhuān)門(mén)的網(wǎng)站上查手冊(cè)將一目了然,比如windows編程,。掌握了編程思想你將不在局限于某個(gè)特定的編程技術(shù),,而是對(duì)整個(gè)軟件系統(tǒng)有了全局的把握,,研究的不再是編程技術(shù),而是協(xié)議和規(guī)范學(xué)習(xí)計(jì)算機(jī)編程需要達(dá)到一種狀態(tài),,就是在任何時(shí)候腦海里面都會(huì)在隱約的思考:對(duì)計(jì)算機(jī)里面某種原理的理解,或者尋找某種問(wèn)題的算法,。有時(shí)一個(gè)新想法的閃現(xiàn)會(huì)讓自己興奮不已,。如果你表現(xiàn)出這種狀況,說(shuō)明你對(duì)計(jì)算機(jī)編程有著濃厚的興趣,。

 最后補(bǔ)充一點(diǎn),,就是中國(guó)的一句老話(huà)“盡信書(shū),不如無(wú)書(shū)”,。編程的學(xué)習(xí)還是需要有一點(diǎn)批判的精神和創(chuàng)造的精神才好,。對(duì)于某些東西不要過(guò)早下定論,或許你某一個(gè)智慧的閃光,,將為計(jì)算機(jī)開(kāi)辟出一個(gè)新的發(fā)展方向,。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多