日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式微處理器
[導(dǎo)讀]夏天時(shí)常會(huì)談到大海、太陽、沙灘、大山或者你的家庭住宅。更充裕的時(shí)間也是夏天帶來的好處之一??赡苁且?yàn)槟阍谛菁伲部赡苁且驗(yàn)檫@段時(shí)間工作沒有那么忙。無論是哪種情況,與一年中的其他季節(jié)相比,夏天的時(shí)間似乎更加寬裕。 你有兩個(gè)選擇:1)把所有夏季空

夏天時(shí)常會(huì)談到大海、太陽、沙灘、大山或者你的家庭住宅。更充裕的時(shí)間也是夏天帶來的好處之一??赡苁且?yàn)槟阍谛菁伲部赡苁且驗(yàn)檫@段時(shí)間工作沒有那么忙。無論是哪種情況,與一年中的其他季節(jié)相比,夏天的時(shí)間似乎更加寬裕。


你有兩個(gè)選擇:1)把所有夏季空閑時(shí)間都用來休整,適當(dāng)放松一下沒什么不可以。2)或者你可以投入一部分空閑時(shí)間來提升你的技能,尤其是 C++,用 C++ 水平的提高(boost C++)來開始新的一年。

如果你覺得選擇1)更適合你,那么關(guān)掉手機(jī)和筆記本吧,真正地放松一下!但是如果你傾向于選擇2),那么這篇文章就是為你準(zhǔn)備的。

有 7 種方法幫助你利用夏天真正提高 C++。之后我會(huì)給你一些小技巧來幫助你真正實(shí)現(xiàn)所選的目標(biāo)。

1)開始一個(gè)項(xiàng)目

用 C++ 來建一個(gè)你自己的小項(xiàng)目是一個(gè)很好的試驗(yàn)方法,而且能通過這個(gè)項(xiàng)目真正理解程序的運(yùn)行。另一個(gè)優(yōu)點(diǎn)在于你可以完全自由地決定使用什么組件。這樣你能夠提升這一年沒有權(quán)限/時(shí)間使用的語言特性和庫組件。

在我去年的夏季項(xiàng)目中,我實(shí)現(xiàn)了一些區(qū)間適配器,這讓我學(xué)到了超多東西。所以我會(huì)把這個(gè)項(xiàng)目的細(xì)節(jié)告訴你,這樣你能夠得到一些靈感來構(gòu)建你自己的項(xiàng)目:

  • 如果你不熟悉 C++ 中的區(qū)間(Ranges),請(qǐng)參考《Ranges: the STL to the Next Level》
  • 實(shí)現(xiàn) transform_iterator,
  • 實(shí)現(xiàn)變換區(qū)間適配器(transform range adaptor),
  • 實(shí)現(xiàn) filter_iterator,
  • 實(shí)現(xiàn)篩選區(qū)間適配器(filter range adaptor),
  • 實(shí)現(xiàn) zip 適配器(zip adaptor),然后結(jié)合變換區(qū)間適配器使用。Zip 適配器需要兩個(gè)區(qū)間,并且返回到來自這兩個(gè)區(qū)間的成對(duì)對(duì)象的視圖
  • 為 zip 適配器一般化,要令 zip 適配器能夠使用任意數(shù)量的區(qū)間,
  • 實(shí)現(xiàn)笛卡爾積區(qū)間適配器(Cartesian product range adaptor),
  • 實(shí)現(xiàn)你自己的新區(qū)間適配器!

是否完美,是否完整或者是否遵從上述指示都不重要,重要的是你要去試驗(yàn)。但是上面這些任務(wù)能給你帶來的是:

  • 明確理解區(qū)間,而區(qū)間是當(dāng)下一個(gè)非常流行的 C++ 特性,
  • 練習(xí)變參模板(variadic templates)的使用,
  • 初步接觸模板元編程(template metaprogramming),

并且這些都是逐漸才能體會(huì)到的。

如果你在這種項(xiàng)目上有任何需要幫助的地方,我都愿意效勞。另外我在這個(gè)項(xiàng)目上的所有嘗試都寫在 GitHub 的代碼倉庫中了,希望對(duì)你們有用。

2)讀一本好書

我會(huì)發(fā)布一個(gè) C++ 的書單,但是我現(xiàn)在要給你一個(gè)選擇。我認(rèn)為作為一個(gè)程序員要讀的第一本書就是 Steve McConnell 的《代碼大全》。盡管這本書不是專注于 C++ 的,但是它把寫好代碼要注意的幾乎所有方面都教給你了。從寫一個(gè) if 語句(沒錯(cuò),有好多方法把 if 語句搞砸)到分配類責(zé)任,再到代碼審查,《代碼大全》涵蓋了軟件架構(gòu)的所有方面。在讀完這本書以后你永遠(yuǎn)不會(huì)還用一樣的方法來編程。


如果你還沒有讀過《代碼大全》,你應(yīng)該去看看 Scott Meyers 的《Effective C++》。我建議《Effective C++》要讀兩遍。我已經(jīng)讀過三遍了,但是我想兩遍的效果應(yīng)該一樣好。盡管這本書是在 C++11 之前寫的,但是大部分內(nèi)容在今天也仍然是有用的。而且《Effective Modern C++》涵蓋了C++11 和 C++14 中的特性,可以作為這本書的補(bǔ)充材料。



今年夏天我要看的是 Eric Evans 的著名書籍——《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》(Domain Driven Design)?!额I(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》涵蓋了領(lǐng)域?qū)<液烷_發(fā)人員之間的密集交流,建立領(lǐng)域模型以及在討論模型與代碼時(shí)使用同一種語言。


盡管這本書的內(nèi)容很有價(jià)值,但是讀起來并不容易。我發(fā)現(xiàn)一個(gè)有用的小技巧:對(duì)每一小節(jié)先讀第一段,再讀最后一段,最后讀其余部分。這樣你能更好地理解作者的寫作方向,節(jié)省時(shí)間。

我希望通過顯示代碼中的域,來找到使代碼具有表達(dá)性的靈感。當(dāng)然啦,我會(huì)在博客上分享這些靈感的。

這只是一個(gè)選擇,我還會(huì)做一個(gè)更全面的書單。

3)學(xué)習(xí)一個(gè)新的語言

雖然聽起來很稀奇,但是學(xué)習(xí)一種新的語言可以讓你對(duì)你所的專注語言獲得更深層次的理解,而且是最有效的方法之一。并且新的語言和你自己使用的語言差別越大,效果越好。

新的觀點(diǎn)認(rèn)為,其他編程語言會(huì)讓你對(duì)編程有更一般的理解。由于你太熟悉自己所用的語言,往往會(huì)忽略它的特性,而用不同的方法解決問題能夠使這些特性凸顯出來。即使你不會(huì)使用新語言來寫產(chǎn)品代碼,所接觸到的新概念也能為你提供可以應(yīng)用到主語言中的思路。

如果你用的是 C++,那么我推薦你去學(xué)習(xí)一下 Haskell 語言。Haskell 是一種函數(shù)型編程語言。如果你還沒有試用過函數(shù)型編程,那么你能從它的概念中獲得啟發(fā),并從新的角度看待 C++,尤其是 STL。

我已經(jīng)花了很長時(shí)間比較網(wǎng)絡(luò)上各種學(xué)習(xí) Haskell 的資源。2013 年(單指那一年)賓夕法尼亞大學(xué)的課程是我找到的最好的資源。它解釋得很清楚,沒有太多理論,課程練習(xí)也很良心而且有指導(dǎo)性,并且它還是免費(fèi)的。

一旦你學(xué)完這門課程,你可以在 data61 課程中獲得很多 Haskell 的練習(xí),包括填空補(bǔ)充代碼。你能夠通過這些練習(xí)來整理不尋常的函數(shù)型編程的相關(guān)知識(shí)。

如果你想了解更多函數(shù)型編程語言以及它們?cè)?C++中的應(yīng)用,我推薦 Quentin Duval 的博客:deque.blog。

今年夏天我要學(xué)習(xí)的語言是 Lisp 。我明白它是一種非常強(qiáng)大的語言,能夠全面提升對(duì)編程的理解。一些語言是從它衍生出來的。它不會(huì)消失一定是有原因的!

我還沒有完成對(duì)網(wǎng)上資源的調(diào)查,但是我計(jì)劃使用《計(jì)算機(jī)程序的構(gòu)造和解釋》(Structure and Interpretation of Computer Programs)。如果你有任何關(guān)于學(xué)習(xí) Lisp 的想法,請(qǐng)告訴我!

4)提升使用 STL 的能力

STL 是 C++ 中處理容器和算法的部分。它很強(qiáng)大而且并不難用,卻沒有它應(yīng)有的名氣。要想掌握 STL 需要有相當(dāng)?shù)闹R(shí)積累,但是這是值得的。它是一個(gè)神奇的方法,能使你的 C++ 代碼更具有表達(dá)性也更健壯。

我正在整理幫你掌握 STL 的資料,叫做 STL 學(xué)習(xí)資源。還沒有完成,但是有很大一部分已經(jīng)做完了,我想足夠讓你在這個(gè)夏天的大部分時(shí)間都很充實(shí)了。

5)緊跟現(xiàn)代C++的特性

C++11,C++14 和C++17給C++ 和標(biāo)準(zhǔn)庫帶來了很多新的特性。即使你現(xiàn)在,比如今年夏天,沒有在產(chǎn)品代碼中使用它們,它們也都來了。并且你可以立即把它們應(yīng)用在你的項(xiàng)目中(看上面的第1條)。

有些特性很好掌握,比如 lambdas。盡管精通 lambda 表達(dá)式需要掌握很多細(xì)節(jié)上的東西,但是學(xué)會(huì)它們的基礎(chǔ)用法不需要花太多精力。

所以部分特性很好理解,只需要一些好資源和時(shí)間來熟悉它們。比如 Scott Meyers 的《Effective Modern C++》(見上面的第2點(diǎn))涵蓋了 C++11和 C++14 的大部分特性。

我特別喜歡Bartek博客上的一份 C++17 特性列表,它可以幫你快速上手 C++17 新特性。內(nèi)容詳實(shí),而且你可以通過給一個(gè)特定的特性添加信息來貢獻(xiàn)自己的一份力量。Bartolomiej 提供了所有的資源和 Github 權(quán)限,所以你能夠非常輕松地添加信息。這樣即使你還不了解 C++17 也能夠貢獻(xiàn)自己的力量,并且在這個(gè)過程中學(xué)到很多東西。

如果你不練習(xí)的話,是無法理解很多特性的。尤其是變參模板,它是現(xiàn)代標(biāo)準(zhǔn) C++ 的一個(gè)重要特性。上面第一點(diǎn)中的項(xiàng)目和其他任何包含變參模板的項(xiàng)目都可以作為練習(xí)。


6)提高你對(duì) boost 的了解

Boost 是設(shè)計(jì)良好的 C++ 庫的集合,可移植且開源。很多現(xiàn)代 C++ 的特性都源自 Boost。

了解 Boost 的內(nèi)容很重要。有兩個(gè)原因:第一,在代碼中確實(shí)需要它們,因?yàn)?boost 主要應(yīng)用于綜合使用;第二,更重要的原因是即使你在產(chǎn)品代碼中沒有使用 boost,它可以給你一個(gè)通用的精心設(shè)計(jì)的 API 和 C++ 代碼模型。留心 boost 中的內(nèi)容可以給你自己的設(shè)計(jì)帶來靈感。

學(xué)習(xí)大量的 boost 庫的一個(gè)方法是閱讀 Boris Sch?ling 的書——《The boost C++ Libraries》。這本書有電子版,但是紙質(zhì)版可以放進(jìn)沙灘包供你躺在沙灘上閱讀(真的,我去年夏天就讀的這本書)。不過這本書是基于 boost 1.55.0 的,所以它包含了很多庫,但并不是所有。

特別地,它沒有包含 Boost Hana。Boost Hana 是一個(gè)流行的現(xiàn)代 C++ 元程序庫。實(shí)際上,學(xué)習(xí) Boost Hana 可以作為今年夏天的一個(gè)目標(biāo)。

我詢問了 Louis Dionne(Boost Hana 的創(chuàng)始人)怎么樣才能有效地學(xué)習(xí) Boost Hana。從官方指導(dǎo)入手是一個(gè)好的開始,而且你可以看他的 ACCU 演講(或者M(jìn)eeting C++ keynote,內(nèi)容相似)來獲取初步的介紹。這里是 Louis 的所有演講,大多數(shù)都與元編程和 HANA 有關(guān),可以幫助加深你的了解。

7)觀看網(wǎng)絡(luò)視頻

C++ 社區(qū)上有超多網(wǎng)絡(luò)視頻,尤其是年會(huì)的視頻。今年夏天是觀看這些視頻的好時(shí)機(jī)。

下面是一些我覺得有近期指導(dǎo)性的演講:

  • Patrice Roy – 異常處理(The Exception Situation)。這個(gè)演講讓你對(duì)在 C++ 中使用異常處理對(duì)你的代碼意味著什么有一個(gè)大致了解。該演講結(jié)構(gòu)合理,而且 Patrice 的演講風(fēng)格很讓人愉快。
  • Arthur O’Dwyer – Template Normal Programming。在這個(gè)演講中,Arthur 在不用模板元編程的情況下,展示了關(guān)于模板的所有知識(shí),同樣有板有眼。
  • Stephan T. Lavave  –  tuple<>:新特點(diǎn)以及它的用法(tuple<>: What’s New and How it Works)。這里有很多關(guān)于 tuples 的有用信息和練習(xí)幫助你更了解標(biāo)準(zhǔn)庫。
  • Howard Hinnant – chrono 導(dǎo)論(A <chrono> Tutorial)。這個(gè)演講教你使用 chrono 庫,告訴你它是怎么用強(qiáng)類型來完成安全又表達(dá)清楚的代碼。
  • David Sankel – Monoids, Monads, and Applicative Functors: Repeated Software Patterns。David Sankel 展示了純函數(shù)概念如何應(yīng)用于 C++。
  • David Sankel – Variants:過去,現(xiàn)在和未來(Variants: Past, Present, and Future)。一個(gè)關(guān)于 variant 的優(yōu)秀展示,并且 variant 在 C++17 中被放進(jìn)標(biāo)準(zhǔn)庫里了。
  • Dietmar Kühl – Constant Fun。一個(gè)關(guān)于 constexpr 的優(yōu)秀展示。
  • Jason Turner – C++周刊(C++ Weekly)。在這個(gè)周系列中,Jason 制作了一些短視頻(5 到 10 分鐘),每個(gè)視頻都展示了一個(gè) C++ 的精彩應(yīng)用。我通常把這系列視頻描述為“精彩 5 分鐘”。

這個(gè)列表絕沒有包括所有優(yōu)秀的視頻。我看到過其他好視頻,并且會(huì)有很多我沒看過的。但是我覺得這個(gè)列表里的視頻是個(gè)好開始。

實(shí)現(xiàn)你的夏季目標(biāo)

現(xiàn)在已經(jīng)有很多事要做啦。一個(gè)夏天之內(nèi)不可能做完這些所有事情。所以你應(yīng)該選擇其中一部分來做,并且提前定好目標(biāo)。不要從一件事情跳到另一件事情上,否則夏天會(huì)很快過去而且你也完不成任何一件事。

此外,要想完成你的目標(biāo),你需要集中注意力。一個(gè)實(shí)用的方法是使用番茄工作法,我是用 kanbanflow 來實(shí)現(xiàn)的。我現(xiàn)在就在使用這個(gè)方法而且結(jié)果也不錯(cuò)。

我今年夏天的目標(biāo)是讀完《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》并且對(duì) Lisp 有適當(dāng)?shù)睦斫?。你的目?biāo)是什么呢?

現(xiàn)在就選擇兩個(gè)目標(biāo)吧,寫在評(píng)論區(qū)內(nèi)讓我了解一下你們的選擇。


本文授權(quán)轉(zhuǎn)載自公眾號(hào)“CPP開發(fā)者”,作者伯樂在線


-END-




推薦閱讀



【01】又被C/C++的內(nèi)存坑了?5個(gè)黃金規(guī)則請(qǐng)謹(jǐn)記!
【02】你的c++團(tuán)隊(duì)還在禁用異常處理嗎?
【03】C++ 基礎(chǔ)知識(shí)!初學(xué)者必看!
【04】C++ 轉(zhuǎn) Python 這三年,我都經(jīng)歷了什么?
【05】C 語言會(huì)比 C++ 快?



免責(zé)聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請(qǐng)聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉