1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        ?C++之父給C++程序員的1047條建議(文末送書(shū))

        共 3636字,需瀏覽 8分鐘

         ·

        2021-08-16 04:21

        1979C++誕生的那一天起,C++之父Bjarne Stroustrup就一直致力于C++的標(biāo)準(zhǔn)制定、語(yǔ)言設(shè)計(jì)與實(shí)現(xiàn)、教學(xué)和研究等相關(guān)的工作,碩果累累,為C++的發(fā)展和應(yīng)用做出了杰出的貢獻(xiàn)。


        Stroustrup不僅僅是在C++方面取得了不菲的成就,在其他很多方面都頗有建樹(shù)。為了向Stroustrup致敬,我們來(lái)看看他亮眼的履歷。



        圖 C++之父Bjarne Stroustrup


        Bjarne Stroustrup介紹


        C++語(yǔ)言之父:C++的設(shè)計(jì)者和最初實(shí)現(xiàn)者,C++語(yǔ)言ISO標(biāo)準(zhǔn)的維護(hù)者。

        科學(xué)界明星人物曾獲《財(cái)富》雜志“美國(guó)12位最年輕的科學(xué)家”稱號(hào),以及BYTE雜志“近20年來(lái)計(jì)算機(jī)工業(yè)最具影響力的20人”稱號(hào)。

        學(xué)術(shù)造詣極高美國(guó)工程院院士、IEEE會(huì)士、ACM會(huì)士,曾獲Sigma Xi(科學(xué)研究協(xié)會(huì))的William Procter獎(jiǎng)(首位獲得此獎(jiǎng)的計(jì)算機(jī)科學(xué)家)。


        教育貢獻(xiàn)重大:曾擔(dān)任德州農(nóng)工大學(xué)首席教授,為劍橋大學(xué)、哥倫比亞大學(xué)、普林斯頓大學(xué)等知名學(xué)府教育事業(yè)做出重要貢獻(xiàn)。


        企業(yè)界擔(dān)任要職:現(xiàn)任摩根士丹利技術(shù)與數(shù)據(jù)部門(mén)董事總經(jīng)理,RollApp科技公司資深顧問(wèn)。

        著作頗豐:

        • The Design and Evolution of C++(《C++的設(shè)計(jì)與演化》)

        • A Tour of C++(《C++語(yǔ)言導(dǎo)學(xué)》,更新至第2版)

        • The C++ Programming Language(《C++程序設(shè)計(jì)語(yǔ)言》,更新至第4版)

        • Programming: Principles andPractice Using C++(《C++程序設(shè)計(jì):原理與實(shí)踐》,更新至第2版)

         

        為了幫助程序員更好地學(xué)習(xí)和使用C++,Stroustrup創(chuàng)建了一個(gè)內(nèi)容豐富的C++元宇宙《C++之父創(chuàng)建的C++元宇宙》。其中,這個(gè)元宇宙中包含1047條C++編程的最佳實(shí)踐,全部都是從C++語(yǔ)言設(shè)計(jì)者的視角和大量工程實(shí)踐中總結(jié)出來(lái)的寶貴經(jīng)驗(yàn),可謂字字珠璣。


        這些最佳實(shí)踐都悉數(shù)總結(jié)在Stroustrup的3部享譽(yù)全球的著作里,由于數(shù)量比較多,本文無(wú)法全部呈現(xiàn),只能展示部分,想要領(lǐng)會(huì)語(yǔ)言之父思想和經(jīng)驗(yàn)的讀者,可以沿著下面的路線找到全部的1047條最佳實(shí)踐。


        1.《C++程序設(shè)計(jì)語(yǔ)言(原書(shū)第4版)》:698條

        這里隨機(jī)展示10條:

        建議1:請(qǐng)關(guān)注編程技術(shù),而非語(yǔ)言特性。

        建議2:設(shè)計(jì)應(yīng)該關(guān)注優(yōu)雅且高效的抽象,可能的情況下以庫(kù)的形式呈現(xiàn)。

        建議3:當(dāng)接口和實(shí)現(xiàn)需要完全分離時(shí),請(qǐng)使用抽象類作為接口。

        建議4:如果你不確定是否會(huì)越界,請(qǐng)記得使用帶邊界檢查的容器。

        建議5:盡量使用普通char,而非signed char或unsigned char。

        建議6:讓表示所有權(quán)的指針位于句柄類的內(nèi)部。

        建議7:當(dāng)不得不使用顯式類型轉(zhuǎn)換時(shí),請(qǐng)盡量使用命名的轉(zhuǎn)換。

        建議8:與函數(shù)指針相比,請(qǐng)優(yōu)先使用函數(shù)對(duì)象(包括lambda)和虛函數(shù)。

        建議9:僅在確實(shí)需要時(shí)才使用protected成員,且務(wù)必小心使用。

        建議10:模板可以用來(lái)構(gòu)成類型安全且緊湊的數(shù)據(jù)結(jié)構(gòu),以及用來(lái)線性化類層次。


        2.《C++程序設(shè)計(jì)設(shè)計(jì):原理與實(shí)踐(原書(shū)第2版)》:27條

        這里隨機(jī)展示3條:

        建議11:請(qǐng)不要低估類型安全的重要性。類型是大多數(shù)正確程序的核心概念,大多數(shù)用于構(gòu)建程序的有效技術(shù)依賴于類型的設(shè)計(jì)與使用。

        建議12:輸入和輸出是很難處理的,所以我們必須預(yù)計(jì)到輸入輸出中所面臨的一定程度上的混亂,并接受它和適應(yīng)它。

        建議13:當(dāng)設(shè)計(jì)一個(gè)類時(shí),我們必須考慮類的初始化、拷貝與析構(gòu)。

        3.《C++語(yǔ)言導(dǎo)學(xué)(原書(shū)第2版)》:322條

        這里隨機(jī)展示12條:

        建議14:理解C++語(yǔ)言的原語(yǔ)是如何映射到硬件的。

        建議15:避免使用裸union,將其與類型域封裝在一個(gè)類中。

        建議16:如果你的函數(shù)不拋出異常,那么將其聲明成noexcept。

        建議17:如果成員函數(shù)不改變其對(duì)象的狀態(tài),將其生命為const。

        建議18:如果某個(gè)類是一個(gè)資源句柄,則它需要一個(gè)用戶自定義的構(gòu)造函數(shù)、析構(gòu)函數(shù)和非默認(rèn)的拷貝操作。

        建議19:不能將虛函數(shù)成員定義成模板成員函數(shù)。

        建議20:如果你需要一個(gè)簡(jiǎn)單函數(shù)對(duì)象且只用在一個(gè)地方,則使用lambda。

        建議21:不要重新發(fā)明輪子,應(yīng)該使用庫(kù);當(dāng)有多種庫(kù)可選擇時(shí),優(yōu)先選擇標(biāo)準(zhǔn)庫(kù)。

        建議22:將regex用于正則表達(dá)式的大部分常規(guī)用途。

        建議23:在使用一個(gè)文件流之前,記得檢查它是否依附于某個(gè)文件上。

        建議24:如果要在大量數(shù)據(jù)中執(zhí)行搜索操作,請(qǐng)選擇無(wú)序容器。

        建議25:與垃圾回收機(jī)制相比,請(qǐng)優(yōu)先選擇智能指針。

         

        不管你現(xiàn)階段的C++功底如何,應(yīng)該或多或少都能感受這些最佳實(shí)踐的價(jià)值。用“字字珠璣”來(lái)形容,一點(diǎn)也不夸張,有的是只有只有站在C++語(yǔ)言設(shè)計(jì)者才能明白的,有的可能是要踩了無(wú)數(shù)坑并付出一定的代價(jià)后才能明白的。


        如果能將這1047條最佳實(shí)踐吃透并靈活運(yùn)用,不敢說(shuō)你從此在C++領(lǐng)域可以封神(Stroustrup才是yyds),但絕對(duì)可以稱得上是高手。

         

        要學(xué)好C++,最重要的是編程實(shí)踐,一定要編寫(xiě)和閱讀有一定復(fù)雜度的工程化代碼,而不是Demo或玩具代碼。提到實(shí)踐,上面提到的C++之父的這3本書(shū)也會(huì)給你驚喜,因?yàn)闀?shū)中有2000-3000個(gè)代碼示例,這些代碼示例都是工程代碼簡(jiǎn)化而來(lái)的,同時(shí)這3本書(shū)中還有1000多道習(xí)題。


        如果你想跟著C++之父學(xué)習(xí)最正統(tǒng)的C++,想了解C++的最新動(dòng)態(tài),想學(xué)習(xí)的過(guò)程事半功倍,推薦你了解C++之父構(gòu)建的C++元宇宙。




        RECOMMEND

        推薦閱讀
        01

        《C++程序設(shè)計(jì)語(yǔ)言(原書(shū)第4版)》  

          

        作者:(美)本賈尼·斯特勞斯特魯普(Bjarne Stroustrup)

        譯者:王剛楊巨峰

        C++之父作品,40余年長(zhǎng)銷不衰,被翻譯為20余種語(yǔ)言,

        世界名校教材,數(shù)百萬(wàn)程序員學(xué)習(xí)C++的推崇之作



        推薦理由

        本書(shū)是在C++語(yǔ)言和程序設(shè)計(jì)領(lǐng)域具有深遠(yuǎn)影響、暢銷不衰的經(jīng)典著作,由C++語(yǔ)言的設(shè)計(jì)者和最初的實(shí)現(xiàn)者Bjarne Stroustrup編寫(xiě),對(duì)C++語(yǔ)言進(jìn)行了最全面、最權(quán)威的論述,覆蓋標(biāo)準(zhǔn)C++以及由C++所支持的關(guān)鍵編程技術(shù)和設(shè)計(jì)技術(shù)。本書(shū)英文原版一經(jīng)面世,即引起業(yè)內(nèi)人士的高度評(píng)價(jià)和熱烈歡迎,先后被翻譯成德、希、匈、西、荷、法、日、俄、中、韓等近20種語(yǔ)言,數(shù)以百萬(wàn)計(jì)的程序員從中獲益,是無(wú)可取代的C++經(jīng)典力作。



        02

        《C++程序設(shè)計(jì):原理與實(shí)踐(原書(shū)第2版)》


        作者:[美] 本賈尼·斯特勞斯特魯普(Bjarne Stroustrup)

        譯者:任明明王剛李忠偉劉曉光

        C++之父作品,暢銷全球10余年,

        被翻譯為20余種語(yǔ)言,1182道習(xí)題,

        C++程序員從匠人到藝術(shù)家必讀之作



        推薦理由

        將經(jīng)典程序設(shè)計(jì)思想與C++開(kāi)發(fā)實(shí)踐完美結(jié)合,全面地介紹了程序設(shè)計(jì)基本原理,包括基本概念、設(shè)計(jì)和編程技術(shù)、語(yǔ)言特性以及標(biāo)準(zhǔn)庫(kù)等,教你學(xué)會(huì)如何編寫(xiě)具有輸入、輸出、計(jì)算以及簡(jiǎn)單圖形顯示等功能的程序。此外,本書(shū)通過(guò)對(duì)C++思想和歷史的討論、對(duì)經(jīng)典實(shí)例(如矩陣運(yùn)算、文本處理、測(cè)試以及嵌入式系統(tǒng)程序設(shè)計(jì))的展示,以及對(duì)C語(yǔ)言的簡(jiǎn)單描述,為你呈現(xiàn)了一幅程序設(shè)計(jì)的全景圖。



        03

        《C++語(yǔ)言導(dǎo)學(xué)(原書(shū)第2版)》


        作者:[美]本賈尼·斯特勞斯特魯普(Bjarne Stroustrup)

        譯者:王剛

        C++之父作品,暢銷全球近10年,322條編程建議,

        可幫助有經(jīng)驗(yàn)的程序員3小時(shí)了解C++語(yǔ)言全貌和設(shè)計(jì)思想



        推薦閱讀

        在本書(shū)中,C++的創(chuàng)造者本賈尼?斯特勞斯特魯普描述了現(xiàn)代C++語(yǔ)言的構(gòu)成。這本簡(jiǎn)潔、自成體系的導(dǎo)引書(shū)籍包含了C++語(yǔ)言大多數(shù)主要特性和標(biāo)準(zhǔn)庫(kù)組件。本書(shū)通過(guò)介紹編程風(fēng)格(例如面向?qū)ο缶幊毯头盒途幊蹋┮鲋С炙鼈兊腃++特性。從基本特性開(kāi)始,延伸到更寬范的進(jìn)階主題,包括很多C++17新特性,例如移動(dòng)語(yǔ)義、一致初始化、lambda表達(dá)式、改進(jìn)的容器、隨機(jī)數(shù)以及并發(fā)。本書(shū)非常全面,甚至包含一些為C++20提出的擴(kuò)展,例如概念和模塊。本書(shū)最后討論了C++語(yǔ)言的設(shè)計(jì)和演化。


        最后
        如何送書(shū)



        在這篇文章下方留言 + 這篇文章的點(diǎn)贊在看,我會(huì)選取留言點(diǎn)贊量最高的 5 位同學(xué),送出這 5 本書(shū)的任意一本(中獎(jiǎng)小伙伴自己選),《C++程序設(shè)計(jì):原理與實(shí)踐(原書(shū)第2版)》與《C++程序設(shè)計(jì)語(yǔ)言(原書(shū)第4版),請(qǐng)獲獎(jiǎng)粉絲備注選取的是基礎(chǔ)篇or進(jìn)階篇,1-3部分或第4部分。截止時(shí)間至 8 月 14 日晚 8 點(diǎn)。


        當(dāng)然,各位讀者朋友們你也可以在當(dāng)當(dāng)或者京東上自行購(gòu)買(mǎi)到這幾本書(shū)

        同時(shí)也歡迎各位加我微信,拉你進(jìn)微信學(xué)習(xí)交流群。也給公眾號(hào)加一個(gè)星標(biāo)。

        瀏覽 38
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            男插女逼逼 | 尤物H娇喘大尺度高H | 天天舔夜夜操 | 操b视频在线免费观看 | 性囗交免费视频观看 | 三级影片在线观看免费的 | 黄色大片免费看 | 精品国自产拍三区 | 做爰gay羞羞看片 | 亚洲无码在线观看网站 |