乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C++的用處

       orion360doc 2011-02-25

      C++的用處 收藏

      C++的用場

          Bjarne Stroustrup清晰地回答了這個問題。以下文字摘編自D&E簡體中文版《C++語言的設(shè)計和演化》。

          在以下領(lǐng)域,C++有著根本性的優(yōu)勢:低級系統(tǒng)程序設(shè)計、高級系統(tǒng)程序設(shè)計、嵌入式程序設(shè)計、數(shù)值科學(xué)計算、通用程序設(shè)計以及混合系統(tǒng)設(shè)計等等。讓我們略微展開描述一下:

          1.      低級系統(tǒng)程序設(shè)計:C++是迄今為止最好的低級程序設(shè)計語言。

          2.      高級系統(tǒng)程序設(shè)計:包括操作系統(tǒng)核心、網(wǎng)絡(luò)管理系統(tǒng)、編譯系統(tǒng)、電子郵件系統(tǒng)、文字排版系統(tǒng)、圖像和聲音的編排系統(tǒng)、通訊系統(tǒng)、用戶界面、數(shù)據(jù)庫系統(tǒng)等等。

          3.      嵌入式系統(tǒng):包括照相機(jī)、汽車、火箭、電話交換機(jī)、汽車等等。

          4.      數(shù)值/科學(xué)計算:包括仿真、實(shí)時數(shù)據(jù)獲取和數(shù)據(jù)庫訪問等等。

          Bjarne的個人主頁上,有一頁applications,那兒列出了一些(全部或大部分)使用C++編寫的系統(tǒng)、應(yīng)用程序和庫。下面是一些例子:

          1.      Adobe Systems:所有主要應(yīng)用程序都使用C++開發(fā)而成,比如Photoshop & ImageReady、Illustrator和Acrobat等。

          2.      Maya:知道“蜘蛛人”、“指環(huán)王”的電腦特技是使用什么軟件做出來的嗎?沒錯,就是Maya。

          3.      Amazon.com:使用C++開發(fā)大型電子商務(wù)軟件。

          4.      Apple:部分重要“零件”采用C++編寫而成。

          5.      AT&T:美國最大的電訊技術(shù)提供商,主要產(chǎn)品采用C++開發(fā)。

          6.      Google:Web搜索引擎采用C++編寫。

          7.      IBM:OS/400。

          8.      Microsoft:以下產(chǎn)品主要采用C++(Visual C++)編寫:

              Windows XP

              Windows NT:NT4、2000

              Windows 9x:95、98、Me

              Microsoft Office:Word、Excel、Access、PowerPoint、Outlook

              Internet Explorer,包括Outlook Express

              Visual Studio:Visual C++、Visual Basic、Visual FoxPro

              .NET Framework類庫采用C#編寫,但C#編譯器自身則使用C++編寫而成。

              Exchange

              SQL Server

              FrontPage

              Project

              所有游戲

              ......

          9.      KDE:K Desktop Environment(Linux)。

          10.   Symbian OS:最流行的蜂窩電話OS之一。

          我通常使用C++進(jìn)行高端程序開發(fā)。

          “通常”一詞沒什么好說的,有時只是出于公司文化或個人愛好方面的原因,選用了別的語言而不是C++,或者相反。我所說的“高端”是指:關(guān)鍵業(yè)務(wù)處理,效率要求極高,實(shí)時性要求高等等。

          我看見幾乎所有嚴(yán)肅的工控系統(tǒng)軟件和實(shí)時數(shù)據(jù)采集、處理和表現(xiàn)(主要是圖形)軟件,都是采用C++(或C,少部分采用Java)編寫而成的。

          據(jù)我的了解,我原先所在的研究院幾乎每一個研究所都在不同程度地使用C++(以及一些別的語言)。

          想想看,迄今為止,現(xiàn)代Unix操作系統(tǒng)的各種變體上,最常使用的是什么樣的開發(fā)語言?(C/C++)

          C++語言

          C++語言是靈活,但首先要看看使用者能不能發(fā)揮它的靈活性;C++語言夠強(qiáng)大,但要看看使用者有沒有本事發(fā)揮它的強(qiáng)大功能。

          使用C++語言和編譯器編寫一個快速的程序,并不難,不過編寫一個強(qiáng)健而高效的大型程序,就不是那么容易了。

          語言之間的區(qū)別,絕非只是大括號和begin、end或Sub、End Sub之間的區(qū)別。選擇了一種語言,你就選擇了一種思維方式,一種程序設(shè)計思想。要想跳出語言的束縛,首先要對語言有著深刻的認(rèn)識和透徹的把握。世界上一些大師級的人物,也常常毫不掩飾自己對某種語言(我并沒有專指C++)的偏愛。一些人對語言尚一知半解,就大談要跳出語言的束縛了 — 你無需跳出,因?yàn)槟愀静辉钊搿?/p>

          純粹的技術(shù)性(學(xué)術(shù)性)研究,總能給人帶來純粹的快樂。C++語言復(fù)雜至極,可研究性極強(qiáng),但一般來說,沒有3~5年的持續(xù)學(xué)習(xí)、思考、使用,是不可能真正掌握C++的。

          我不是唯語言論或唯工具論者,但我反對抹殺不同語言、不同開發(fā)工具之間的區(qū)別。抱持這種觀點(diǎn)的人,若非無知,即是別有用心。這就好比雜牌筆記本電腦廠商最喜歡叫嚷“筆記本電腦已經(jīng)進(jìn)入同質(zhì)時代”一樣,雜牌機(jī)怎么能和IBM相比?

          選擇C++或選擇Java,要看你個人愛好和對將來的打算。雖然只是語言上的差別,但由此決定的就業(yè)領(lǐng)域的確不一樣。

          不管你走什么樣的技術(shù)路線,不管你用不用它做開發(fā),學(xué)習(xí)C++總會帶來長遠(yuǎn)的好處。一名熟悉C++的開發(fā)人員,假如他不是一個偏執(zhí)狂的話,再學(xué)習(xí)Java或C#,都要容易得多。

          C++不過是一門編程語言,我們總是要用它來解決實(shí)際問題,所以要學(xué)習(xí)開發(fā)工具(比如Visual C++),了解操作系統(tǒng)(比如API),熟悉領(lǐng)域知識(比如電力系統(tǒng)),掌握其他軟件技術(shù)(比如數(shù)據(jù)庫),等等。編寫真正的代碼,解決實(shí)際問題的能力,才是衡量一名程序員是否有真水平的唯一標(biāo)準(zhǔn)。

          設(shè)計模式和統(tǒng)一建模語言

          設(shè)計模式(Design Patterns)和統(tǒng)一建模語言(Unified Modeling Language,UML)是兩個不同的概念。前者主要目標(biāo)在于提供可重用的面向?qū)ο筌浖O(shè)計方案,后者則是一種描繪軟件藍(lán)圖的標(biāo)準(zhǔn)語言。

          當(dāng)然了,可以使用UML來描述設(shè)計模式的結(jié)構(gòu)。

          UML所描述的模型可以映射成C++、C#、Java等語言代碼,甚至可以映射到關(guān)系型數(shù)據(jù)庫。映射過程可以是雙向的,一般都有相應(yīng)的軟件工具(或插件)支持。

          不同的語言,特性有所差別,這多少會影響設(shè)計模式在該語言中的實(shí)現(xiàn)(方式、難易)。比方說,假如使用C語言來描述設(shè)計模式,那么,繼承、封裝和多態(tài)等特性就變成了需要研究的設(shè)計模式,但在任何一門面向?qū)ο蟮恼Z言中,這都純屬多余。

          現(xiàn)在市面上還沒有看到象樣的以C#為手段講述設(shè)計模式的書(我沒有看到),但這并不打緊,倘若有興趣,完全可以讀一讀《Design Patterns: Elements of Reusable Object-Oriented Software》(中文版名《設(shè)計模式》機(jī)械工業(yè)出版社)這本書,盡管它主要以C++和Smalltalk語言為講解手段。

          設(shè)計模式本身無所謂好壞,根據(jù)你要解決的目標(biāo)問題,選擇適當(dāng)?shù)脑O(shè)計模式。

          系統(tǒng)架構(gòu)

          在企業(yè)級軟件開發(fā)中,架構(gòu)第一重要。架構(gòu)有缺陷,系統(tǒng)就存在硬傷。優(yōu)秀的架構(gòu)來自于優(yōu)秀的設(shè)計。這一點(diǎn)毋庸置疑。

          任何成功的軟件,即使它沒有明確地使用建模思想、架構(gòu)方法,但在骨子里、潛意識中,大都具有良好的設(shè)計思想和架構(gòu)。

          只有寫過好多好多代碼以后,只有做過一些夠份量的企業(yè)級項(xiàng)目之后,才可能對軟件架構(gòu)形成清晰的認(rèn)識。很難想像一個連幾行像樣的代碼都沒有寫過的人,對程序思想和架構(gòu)卻有著深刻的認(rèn)識。這種人,十有八九屬于紙上談兵之輩。

          我們時不時會看到這種情況,軟件的設(shè)計也不算太差,但程序員要么不知道怎么寫實(shí)現(xiàn)代碼,要么是代碼寫得缺乏效率,或不夠強(qiáng)健,甚至有時連“架構(gòu)師”自己對此都一籌莫展。

          我們也常常聽到一些聲音,不要太拘泥于語言(技術(shù))細(xì)節(jié)了,要從大處著眼,要有大局觀,架構(gòu)怎么怎么重要,這些都是大實(shí)話。不過現(xiàn)實(shí)情況往往是,很多程序員不是太拘泥于語言(技術(shù))細(xì)節(jié)了,而是對語言(技術(shù))細(xì)節(jié)掌握得還遠(yuǎn)遠(yuǎn)不夠。

          書本知識的重要性毋庸置疑,但絕不要以為讀了兩本書,自己就成了牛氣的架構(gòu)師、設(shè)計師或者什么建模專家。

          從前的軟件開發(fā)埋頭實(shí)踐而缺乏必要的理論指導(dǎo)?,F(xiàn)在越來越走向另外一個極端:設(shè)計文稿越來越圖文并茂,琳瑯滿目,但開發(fā)出來的軟件卻比以前差很多。這種表面文章,意義何在?

          數(shù)據(jù)庫

          大多數(shù)軟件都要和數(shù)據(jù)庫打交道,并非只有MIS類軟件如此,數(shù)據(jù)庫知識幾乎是非掌握不可的,無非使用深度和廣度有別而已。迄今為止,我編寫的每一個項(xiàng)目軟件,都要訪問數(shù)據(jù)庫,有一個程序甚至同時要跟兩個數(shù)據(jù)庫打交道(Oracle和SQL Server)。

          如果你上過任何一門數(shù)據(jù)庫基礎(chǔ)理論方面的課,或認(rèn)真看過任何一本數(shù)據(jù)庫基礎(chǔ)理論方面的書,或許都不必再買更多的(類似的)書。二十多年以來,關(guān)系式數(shù)據(jù)庫理論之穩(wěn)定,遠(yuǎn)遠(yuǎn)超過C++語言的穩(wěn)定:)

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多