大山姆的機機車車™ #16
▋CppCon 2018
一年一度,一年比一年「壯大」的 C++ 界年度盛會 CppCon 已於九月底歡喜落幕。所有影片皆已就緒。影片太多,時間太少,我的策略一向是挑有興趣的主題,用 1.25 倍速觀看並記錄重點。本期挑選出我認為必看的影片供讀者參考。
▋贈書
今年四月,我寫下了 2018 年目標宣言:
目前的訂閱數 144 人,離 200 人還有一距離,但我相信一定能達成(年底的目標是「五百人斬」)。我決定在訂閱人數突破 200 時贈送電子書給《大機車報》的讀者。
五百人斬沒有達成,但在 2018 年結束前,由於 Jserv 轉推,《大山姆的機機車車™》電子報訂閱數終於突破貳百人。謝謝「宅色夫」!
依據承諾,我會於近期贈送一本《C++ and Node.js Integration》電子書給讀者。我寫了一支程式,在大機車報的訂閱清單中挑出三位讀者,我會以電子郵件通知,跟得獎讀者聯繫並達到共識後,再將電子書寄出。若十天內沒有收到回信,我會將書贈送給第二順位的讀者,依此類推。
抽獎會在一月第一週的某一天進行,全程錄影,大概十秒能夠搞定。
我是山姆,《大山姆的機機車車™》是我投注心力製作的電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。
參兩摘
CppCon 2018: Jonathan Boccara “105 STL Algorithms in Less Than an Hour” — www.youtube.com
【C++】STL 是寶庫,但即便是十年以上的資深 C++ 工程師,也難說能把 STL 裡的 Algorithms 摸得通透。這支影片用約一小時介紹了 105 個 STL 演算法。這是我近年看過最棒的 STL 介紹影片,不可錯過!
Fluent C++ 是近幾年 C++ 界相當熱門的部落格,作者的文章產量大、質量高,絕對要訂閱。
Phil Nash - Exceptional low-latency C++ — www.youtube.com
根㯫最近一份 ISO C++ 訪查,有 52% 的受訪表示他們的專案禁止或部分禁止使用 Exceptions。傳統的錯誤處理方法,如回傳值或 errno,無法明確表達程式碼的意圖。這支影片一步步拆解各種錯誤處理技巧,最後提出一個可能進到標準規格的作法。
Functional exceptionless error-handling with optional and expected
上面那支 Phil Nash 的影片提到這篇文章。文內提出一個嘗試改善當前 C++ 程式處理回傳值以及錯誤的技巧。
C++ rvalue references and move semantics for beginners
C++11 新功能中,R-Value Reference 一般是最不引起注意的功能
這一篇講 R-value Reference and Move Semantics,提出問題並一步步說明為什麼需要該功以及使用時機。後來的研究資料是不錯的延伸閱讀,不要漏掉。
GitHub - hmemcpy/milewski-ctfp-pdf: Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source — github.com
免費下載寫給程式設計師看的數學《範疇論》電子書(看這種書身心靈得先昇華)。作者是 Bartosz Milewski 是 C++ 高手。有人把他一系列關於 Category Theory 的文章整理成冊,並供人免費下載,也有硬皮書可買。
Window Events | Game Engine series — www.youtube.com
有別於先前的影片,這一集寫好多程式。「遊戲引擎」系列開始進入重頭戲,建議試著以「如何設計 C++ 類別」的角度來觀察,會有不少收獲。其中用到 std::bind 來做 Callback—呼叫物件的成員函式(Member Function)。除此之外,還有 Lambda 的使用方式與時機也是觀察重點。
Editor Guidelines - Visual Studio Marketplace — marketplace.visualstudio.com
這個 Visual Studio 外掛可於編輯器設定多條垂直線,且顏色任選。「垂直線」有提醒作用,一旦超出,表示該區塊程式碼邏輯可能過於複雜,有重新檢視的必要。這是我必裝的好工具。
Copying and Copy Constructors in C++ — www.youtube.com
要讓自訂型別如內建型別(int, float, etc.)般可以被自由複製而不出錯(Memory Leak, Resource Leak, etc.),一定要搞懂 Copy Constructor 以及 Copy Assignment Operator。
Exploring C++20 - Three-way Comparison, AKA Spaceship Operator
下一版規格 C++20 有一個新的比較運算元「<=>」。不要怕,它是被提出來解決問題的。什麼問題?本文有解釋。用開放心態面對新技術,不怕痛。況且,這新運算元有個好玩的名字:Spaceship Operator。指揮艇,組合!
《大機車報》 2018 年前十大熱門連結 — www.getrevue.co
Revue 選出《大機車報》 2018 年前十大最熱門的連結。
摘影片
Concepts: The Future of Generic Programming (the future is here)
CppCon 2018 影片上架了,C++ 之父介紹從發源的型別安全,發展到 C++20 正在擬訂中的 Concept 是型別安全的更抽象層次。接著說明好的 Concept 設計理念,我個人認為概念很接近設計模式或無瑕程式碼。
By Sidney Niu
Thoughts on a more powerful and simpler C++ (5 of N)
Herb Sutter 一樣延續 Metaclass 的概念,闡述 C++ 是往更簡潔有力的方向發展,使用者更容易使用,而且在更有彈性的情況下一樣保有型別安全。而且未來 C++20 會給予更多的錯誤訊息,特別是在編譯時期會有更多的警告。
By Sidney Niu
Simplicity: Not Just For Beginners
Build modern GUIs fast with Projucer
JUCE 支援幾個介面排版方式,FlexBox 是最新加入的功能。這支影片介紹 Projucer,並搭配 FlexBox 來讓桌面應用程式達到網頁 RWD 一樣的效果。
JUCE 是一個跨平台應用程式開發框架,跟 Qt 一樣使用 C++ 做為開發語言。她的專長在 Audio 領域,許多音樂相關的軟體使用 JUCE 開發而成。我接觸 JUCE 大約四年,用她做了不少專案,結果令人滿意。我架了一個站(JUCE Tips)推廣這個好用工具。目前文章很少,有興趣的讀者請留言告訴我想知道哪方面的資訊,我會按排時間解答。
開源專案
WorkFlowy Tips
[241] WorkFlowy 新時代開始 — workflowy.tips
今年七月,創辦人 Jesse Patel 宣佈前 Facebook 工程師加入 WorkFlowy 團隊,摩拳擦掌準備好幫 WorkFlowy 來個大翻修。本文介紹 2018 年底前,幾個重要的 WorkFlowy 功能與改變。
我對 WorkFlowy 未來的發展充滿信心,沒用過的朋友,趕快申請這個好用的工具。
想知道更多 WorkFlowy 撇步,請快步前往 WorkFlowy Tips 。還沒有 WorkFlowy 帳號?請用此連結申請,加倍免費清單上限。
還有還有,我在臉書開了一個以 WorkFlowy 為主題的社團——山姆的 WorkFlowy 大小撇步,歡迎加入分享你最酷的 WorkFlowy 使用技的更多同好!
💌 喜歡這一期的內容,請幫我按「👍」。不喜歡請按「👎」,並寫下你認為哪裡做得不好,你的回饋是我進步的動力。想要匿名舉報的話,我開了一個 Sarahah,歡迎使用,謝謝!