大山姆的機機車車™ #2
我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。
專科時,我們兩人一組用 C++ 寫了一個「五子棋」遊戲(作業系統是 DOS 6.22),當時只做到兩人輪流對戰,專案不難。不過,期末交差後就沒再認真寫過程式了。直到當兵時,買了侯捷老師的譯作《C++ Primer》,用軍中的舊電腦(DOS 6.22)寫一些小程式,這才重拾撰碼之樂。
退伍後順利進入以 C++ 為主要武器的小公司上班,邊做邊學,越學越驚恐,原來 C++ 這麼「深」,我只學了點皮毛。於是開始讚研 C++ 以及軟體開發技術直到現在。
本期在版面上做了一些調整,雖然還有一些想法但因內容量已足,留待下一期。Enjoy 🤘
正反兩造論 C++
Criticizing the Rust Language, and Why C/C++ Will Never Die
這是一篇護 C++ 評 Rust 的文章。大意是 Rust 的角色很尷尬,說安全嘛,其實也有不安全的地方。論效能嘛,恐怕及不上 C++。再加上學一個新語言的成本不低,除非誘因夠強或有大廠力挺,否則很難吸引開發人員。
新語言必須突破甜密點,才能進入「正向循環」,吸引更多開發人員以及專案,該語言才得以存活。Mozilla 很用力在做這些事,而且已經看到成績。
Why I don’t spend time with Modern C++ anymore – Baremetal Labs
這篇一年多前的舊文章,當時造成了不少迴響。其中,最討戰的莫過於這句:
C++ today is like Fortran: it reached its limits.
作者大意是說,現在的硬體太快了,C++ 因此失去了最大優勢,為了效能而使用複雜的程式語言,不符合效益。應該採用新的,更符合當前硬體設計的程式語言才是王道...
果真如此?讀一讀,想一想。你有什麼看法?
人物誌
Matt Godbolt and Compiler Explorer
這位 ex-Googler 最有名的是他的姓—Godbolt,瀏覽器輸入 godbolt.org,運行其上的程式是 Compiler Explorer,可以在瀏覽器裡寫 C++ 然後即時輸出編譯後的組合語言。支援各廠編譯器的不同版本,總共數十個組合,相當豐富。
Compiler Explorer 相當適合分析關鍵程式碼的執行效能,我在這篇文章裡用她來分析有無 const 於組合語言的差異。
Meltdown And Spectre - YouTube
除了在 Cpp Cast 上說明,Matt Godbolt 更利用這個影片說明紅透半邊天的臭蟲 Meltdown 以及 Spectre。
開源專案
Catch2: A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD
Catch 是 C++ 單元測試領域新兵,由於設計優良,使用簡便,近來頗受好評。Catch2 於去年十一月推出,作者 Phil Nash 後來加入了 JetBrains,持續開發 Catch。(本期有 Catch 作者介紹該專案的影片,別錯過)
專案 Logo 別具巧思啊 👍
學習資源
免費無限暢飲三個月 Pluralsight 線上學習課程
Microsoft 與 Pluralsight 合作,只要加入 Visual Studio Dev Essentials,即可免費使用 Pluralsight 全部課程,三個月完全免費。我的這篇文章有介紹申請流程,好康不要錯過。
Pluralsight 上有不少優質 C++ 課程,其中一堂教你怎麼使用 Catch,相當不錯—C++ Unit Testing Fundamentals Using Catch。
CppCon 2015: Phil Nash “Test Driven C++ with Catch”
記得我是看這個講得知 Catch 這個好物,影片說明 Catch 第一版。
Modern C++ testing with Catch2 - Phil Nash - Meeting C++ 2017
這是新的講,針對 Catch2。由於兩版概念以及用法差異不大,建議先從第一版影片看起。
精選影片
我很喜歡看 Sean Parent 的影片,每次看都有收獲。他最愛的 STL 演算法是 std::rotate,早先聽都沒聽過,看了才知道原來這麼好用。而且他用投影片演示,清楚易懂。
WorkFlowy Tips
[198] 親愛的,我把勞基法變成 QR Code 了
同一件事用不同的方式處理,會得到不同的效果。法律條文即是一例。全國法規資料庫提供台灣法律條文查詢檢索服務,該站為傳統的網頁,表現中規中矩。但法律條文這種「純文字」的資料,其實更適合用 WorkFlowy 這類工具來呈現。
我把《勞基法》條文複製貼上 WorkFlowy,微調版面,加了少許元素,便成了這個《勞基法清單》。文章簡短介紹使用方式,並提供 QR Code 供手機掃瞄以快速取得該清單。QR Code 可列印,貼紙或傳單是不錯的選擇。
除了《勞基法》本法外,另有《勞基法施行細則清單》。
[caption align="alignnone" width="980"]
《勞基法 WorkFlowy 清單》[/caption]
想知道更多 WorkFlowy 撇步,請快步前往 WorkFlowy Tips 。還沒有 WorkFlowy 帳號?請用此連結申請,加倍免費清單上限。
還有還有,我在臉書開了一個以 WorkFlowy 為主題的社團——山姆的 WorkFlowy 大小撇步現在人很少,快來助拳!
💌 喜歡這一期的內容,請幫我按「👍」。不喜歡請按「👎」,並寫下你認為哪裡做得不好,你的回饋是我進步的動力。謝謝!