成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么要學(xué)習(xí)C++語(yǔ)言?

開發(fā) 后端
學(xué)會(huì)編碼的技巧實(shí)踐要比學(xué)習(xí)C++編程理論更為重要,即時(shí)你看了一些優(yōu)秀的代碼不編寫,也會(huì)比編制一些垃圾代碼要有效。

我們?yōu)槭裁匆獙W(xué)習(xí)C++語(yǔ)言?C++語(yǔ)言能給我們帶來(lái)什么?其實(shí)C++語(yǔ)言里面有太多被發(fā)現(xiàn)的內(nèi)容,而不是被發(fā)明的技術(shù),C++中的眾多細(xì)節(jié),才是真正需要花時(shí)間掌握的東西。

為什么會(huì)存在這么多錯(cuò)誤認(rèn)識(shí)?原因主要有三個(gè),一是C++語(yǔ)言的細(xì)節(jié)太多。二是一些著名的C++書籍總在(不管有意還是無(wú)意)暗示語(yǔ)言細(xì)節(jié)的重要性和有趣。三是現(xiàn)代C++庫(kù)的開發(fā)哲學(xué)必須用到一些犄角旮旯的語(yǔ)言細(xì)節(jié)(但注意,是庫(kù)設(shè)計(jì),不是日常編程)。這些共同塑造了C++社群的整體心態(tài)和哲學(xué)。

單是***條還未必能夠成氣候,其它語(yǔ)言的細(xì)節(jié)也不少(盡管比起C++起來(lái)還是小巫見大巫),就拿javascript來(lái)說(shuō),作用域規(guī)則,名字查找,closure,for/in,這些都是細(xì)節(jié),而且其中還有違反直覺的。但許多動(dòng)態(tài)語(yǔ)言的程序員的理念我猜大約是學(xué)到哪用到哪罷。

C++就不一樣了,學(xué)習(xí)C++之人有一種類似于被暗示的潛在心態(tài),就是一定要先把語(yǔ)言核心基本上吃透了才能下手寫出漂亮的程序。這首先就錯(cuò)了。這個(gè)意識(shí)形成的原因在第二點(diǎn),C++書籍。

市面上的C++書籍不計(jì)其數(shù),但有一個(gè)共同的缺點(diǎn),就是講語(yǔ)言細(xì)節(jié)的書太多——《C++ gotchas》,《Effective C++》,《More Effective C++》,但無(wú)可厚非的是,C++是這樣一門語(yǔ)言:要拿它滿足現(xiàn)代編程理念的需求。

尤其是C++庫(kù)開發(fā)的需求,還必須得關(guān)注語(yǔ)言細(xì)節(jié),乃至于在C++中利用語(yǔ)言細(xì)節(jié)已經(jīng)成了一門學(xué)問。比如C++模板在設(shè)計(jì)之初根本沒有想到模板元編程這回事,更沒想到C++模板系統(tǒng)是圖靈完備的,這也就導(dǎo)致了《Modern C++ Design》和《C++ Template Metaprogramming》的驚世駭俗。

這些技術(shù)的出現(xiàn)為什么驚世駭俗,打個(gè)比方,就好比是一塊大家都認(rèn)為已經(jīng)熟悉無(wú)比,再無(wú)秘密可言的土地上,突然某天有人挖到原來(lái)地下還蘊(yùn)藏著最豐富的石油。在這之前的C++雖然也有一些細(xì)節(jié),但也還算容易掌握,

那可是C++程序員們的happy old times,因?yàn)?FONT size=+0>學(xué)習(xí)C++的一切都一覽無(wú)余,everything is figured out。然而《Modern C++ Design》的出世告訴人們,“瞧,還有多少細(xì)節(jié)你們沒有掌握啊。”于是C++程序員們久違的激情被重燃起來(lái),奮不顧身的踏入細(xì)節(jié)的沼澤中。尤其是,模板編程將C++的細(xì)節(jié)進(jìn)一步挖掘到了***——我們干嘛關(guān)心涉及類對(duì)象的隱式轉(zhuǎn)換的優(yōu)先級(jí)高低?看看boost::is_base_of就可以知道有多詭異了。

但***的問題還在于,對(duì)于這些細(xì)節(jié)的關(guān)注還真有它合適的理由:我們要開發(fā)現(xiàn)代模板庫(kù),要開發(fā)active library,就必須動(dòng)用模板編程技術(shù),要?jiǎng)佑媚0寰幊碳夹g(shù),就必須利用語(yǔ)言的犄角旮旯,enable_if,type_traits,甚至連早就古井無(wú)波的C宏也在亂世中重生,看看boost::preprocessor有多詭異就知道了,連C宏的圖靈完備性(預(yù)編譯期的)都被挖掘出來(lái)了。

為什么要做這些?好玩?標(biāo)榜?都不是,開發(fā)庫(kù)的實(shí)際需求。但這也正是***的悲哀了。在boost里面因?qū)嶋H需求而動(dòng)用語(yǔ)言細(xì)節(jié)最終居然能神奇的完成任務(wù)的***教材就是boost::foreach,這個(gè)小設(shè)施對(duì)語(yǔ)言細(xì)節(jié)的發(fā)掘達(dá)到了驚天地泣鬼神的地步,不信你先試著自己去看看它的源代碼,再看看作者介紹它的文章吧。而boost::typeof也不甘其后——C++語(yǔ)言里面有太多被“發(fā)現(xiàn)”而不是被“發(fā)明”的技術(shù)。難道最初無(wú)意設(shè)置這些語(yǔ)言規(guī)則的家伙們都是oracles?

因?yàn)闆]有variadic templates,人們用宏加上缺省模板參數(shù)來(lái)實(shí)現(xiàn)類似效果。因?yàn)闆]有concepts,人們用模板加上析構(gòu)函數(shù)的細(xì)節(jié)來(lái)完成類似工作。因?yàn)闆]有typeof,人們用模板元編程和宏加上無(wú)盡的細(xì)節(jié)來(lái)實(shí)現(xiàn)目標(biāo)…學(xué)習(xí)C++時(shí)的DIY精神不可謂不強(qiáng)。

然而,如果僅僅是因?yàn)橐_發(fā)優(yōu)秀的庫(kù),那么涉及這些細(xì)節(jié)都還是情有可原的,至少在C++09出現(xiàn)并且編譯器廠商跟上之前,這些都還能說(shuō)是不得已而為之。但我們廣大的C++程序員呢?大眾是容易被誤導(dǎo)的,我也曾經(jīng)是。

以為掌握了更多的語(yǔ)言細(xì)節(jié)就更牛,但實(shí)際卻是那些語(yǔ)言細(xì)節(jié)十有八九是平時(shí)編程用都用不到的。C++中眾多的細(xì)節(jié)雖然在庫(kù)設(shè)計(jì)者手里面有其用武之地,但普通程序員則根本無(wú)需過多關(guān)注,尤其是沒有實(shí)際動(dòng)機(jī)的關(guān)注。一般性的編碼實(shí)踐準(zhǔn)則,以及基本的編程能力和基本功,乃至基本的程序設(shè)計(jì)理論以及算法設(shè)計(jì)。才是真正需要花時(shí)間掌握的東西。

避免去過問任何語(yǔ)言細(xì)節(jié),除非必要。這個(gè)必要是指在實(shí)際編程當(dāng)中遇到問題,這樣就算需要過問細(xì)節(jié),也是最省事的,懶惰者原則嘛。一個(gè)掌握了基本的編程理念并有較強(qiáng)學(xué)習(xí)能力的程序員在用一門陌生的語(yǔ)言編程時(shí)就算拿著那本語(yǔ)言的圣經(jīng)從索引翻起也可以編出合格的程序來(lái)。

十年學(xué)會(huì)編程不是指對(duì)每門語(yǔ)言都得十年,那一輩子才能學(xué)幾門語(yǔ)言哪,如果按字母順序?qū)W的話一輩子都別指望學(xué)到Ruby了;十年學(xué)習(xí)編程更不是指先把語(yǔ)言特性從粗到細(xì)全都吃透才敢下手編程,在實(shí)踐中提高才是最重要的。

至于這種摳語(yǔ)言細(xì)節(jié)的哲學(xué)為何能在社群里面呈野火燎原之勢(shì),就是一個(gè)心理學(xué)的問題了。想像人們?cè)谡搲嫌懻搯栴}時(shí),一個(gè)對(duì)語(yǔ)言把握很細(xì)致的人肯定能夠得到更多的佩服,而由于論壇上的問題大多是小問題。

所以解決實(shí)際問題的真正能力并不能得到顯現(xiàn),也就是說(shuō),知識(shí)型的人能夠得到更多佩服,后者便成為動(dòng)力和仿效的砝碼。然而真正的編程能力是與語(yǔ)言細(xì)節(jié)沒關(guān)系的,熟練運(yùn)用一門語(yǔ)言能夠幫你***表達(dá)你的意圖。但熟練運(yùn)用一門語(yǔ)言絕不意味著要把它的邊邊角角全都記住。懂得一些常識(shí),有了編程的基本直覺,遇到一些細(xì)節(jié)錯(cuò)誤的時(shí)候再去查書,是最節(jié)省時(shí)間的辦法。

【編輯推薦】

  1. 簡(jiǎn)介學(xué)習(xí)C++總結(jié)之談
  2. 對(duì)C++庫(kù)函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語(yǔ)言真的還有市場(chǎng)價(jià)值?
  5. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來(lái)源: NET130
相關(guān)推薦

2010-01-20 14:03:12

C++程序

2015-05-25 15:31:56

C語(yǔ)言學(xué)習(xí)和使用 C 語(yǔ)言

2022-11-28 09:58:58

C++開發(fā)

2017-04-05 18:10:05

R語(yǔ)言開發(fā)Ross

2010-11-03 09:22:00

C語(yǔ)言

2021-11-19 09:49:00

CC++語(yǔ)法糖

2012-04-11 09:19:08

Haskell編程

2019-11-15 13:10:17

潘石屹Python語(yǔ)言

2012-06-18 14:51:09

Python

2015-05-12 11:04:42

Java EE學(xué)習(xí)Java EE

2018-08-02 15:24:05

RPCJava微服務(wù)

2021-03-08 11:28:59

人工智能深度學(xué)習(xí)Python

2010-01-14 17:02:10

學(xué)習(xí)C++

2010-01-21 18:00:59

C++語(yǔ)言

2022-01-17 16:09:43

Go語(yǔ)言開發(fā)

2012-06-12 09:47:17

C語(yǔ)言

2020-09-04 15:34:07

C編程語(yǔ)言開發(fā)

2024-01-24 11:24:03

C++編程異常處理

2010-01-14 17:52:02

2021-12-03 17:22:09

CC++編程語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品九九| 精品欧美一区二区精品久久久 | 久久久精品一区二区三区四季av | 国产在线一区二 | 国产精品久久久久久久久久久免费看 | 免费黄篇 | 中文字幕一区二区三区四区 | 午夜丁香视频在线观看 | 免费看91 | 亚洲国产高清在线观看 | 日韩精品一区二区三区在线观看 | av黄色在线观看 | 337p日本欧洲亚洲大胆精蜜臀 | 精品美女视频在线观看免费软件 | 国产99久久 | 欧美乱大交xxxxx另类电影 | 国际精品久久 | 一区二区精品视频 | 精品国产乱码久久久久久丨区2区 | 亚洲+变态+欧美+另类+精品 | 欧美日韩精品久久久免费观看 | 国产一区二区在线视频 | 欧美日韩一区二区在线 | 日韩免费一区 | 亚洲精品白浆高清久久久久久 | 中文字幕成人av | 亚洲在线 | 成人免费福利视频 | 亚洲精品一区二区网址 | 色婷婷久久久亚洲一区二区三区 | 欧美精品一区二区三区在线播放 | 免费看黄视频网站 | 久久夜视频| 日韩欧美中文 | 中文字幕亚洲无线 | 亚洲一区二区视频 | 在线一区二区三区 | 精品成人佐山爱一区二区 | 成年人网站在线观看视频 | 日韩有码在线观看 | 在线观看黄免费 |