View profile

大山姆的機機車車™ #7

Revue
 
我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。 ༺ 意見調查 ༻ 我正在編一個《C++ 世界的學習指南》,希望提供各階段 C++ 攻城獅一
 
April 16 · Issue #7 · View online
《大山姆的機機車車™》電子報
我是山姆,《大山姆的機機車車™》是我的第一份電子報,希望透過這份小報,把我感興趣的資訊分享給同樣求知若渴的您。
༺ 意見調查 ༻
我正在編一個《C++ 世界的學習指南》,希望提供各階段 C++ 攻城獅一個學習的方向,在強化技能與技術的旅途上,不要因為一時迷失而放棄。
目前的進度緩慢,其中一個原因是:我尚未抓到新學 C++ 會遇到的難處。我能「猜」到幾個新手受挫的原因,但還不無法確切掌握全貌。
因此,我需要讀者的協助,若你還記得當初或目前學習 C++ 遭遇到的挫折或無法繼續進步的門擋,希望你能分享學習經驗,這對我的幫助很大。山姆感謝您!

真心一推
誠懇的建議尚未嘗試過 VIM 的攻城獅,配上這副武器絕對會讓你的專業職涯如虎添翼。另外,如果你是 Visual Studio 用家,可以考慮這個 $99 鎂的外掛-ViEmu
Sam Tsai
有志往專業程式設計師發展的朋友,我建議給自己一個「++專業技能」的機會:花至少一個月的時間用心學習 VIM。頭一個月不求多,開檔、存檔、離開,基本的游標操作(上下左右,跳行數),搜尋,選取、複製、貼上。我相信學會以上技法後,你就...上鉤了。 #VIM
10:39 AM - 27 Mar 2018
人物誌
Jason Turner (@lefticus) | Twitter
參兩摘
C++ Weekly - YouTube
Collaborative Collection of C++ Best Practices
How to Improve Your C++ Skills From Awesome Projects
11 Debugging Tips That Will Save Your Time
Ultralight - Lightweight, Pure-GPU HTML Renderer
Top 10 Bugs in the C++ Projects of 2017
Chaiscript In Game Objects – CooperKing.net
摘影片
P. Goldsborough “clang-useful: Building useful tools with LLVM and clang for fun and profit"
延續編譯器優化主題,早期編譯器會直接將程式碼轉成低階語言,之後才有中介碼的概念。現代編譯器前後端模組分離的好處很多,包含可以任意替換前端語言與後端硬體,也更容易選擇優化等級。
臉書工程師 Peter Goldsborough 簡介編譯器前端 Clang 執行語法剖析並產中介碼,交由後端 LLVM 產生執行檔的過程。正確來說 LLVM 是一種技術和工具鏈而不是後端,但很多時候大家口中的 LLVM 直接是指 Clang ,誤用的程度非常廣泛阿。
Clang 與 LLVM 程式碼風格皆遵守 LLVM Coding Standards,他們的版本控管都是用 svn。 不過只用 git 的人還是可以去 GitHub 鏡像拉下來用。
現在有不少活用中介碼的專案像 Emscripten 可將 LLVM IR 轉成 asm.js ,讓 C++ 直接跑在網頁,同時也讓程式碼可以重複使用。
中英對照:中介碼(Intermediate Representation)、工具鏈(Toolchain)
By Sidney Niu
P. Goldsborough “clang-useful: Building useful tools with LLVM and clang for fun and profit"
CppCon 2017: Ben Deane & Jason Turner “constexpr ALL the Things!”
延續編譯時期決定的主題,為了減少執行時間 C++ 編譯器提早決定了相當多的事情。
《Effective Modern C++》 第三章有說明 constexpr 的使用,另外 std::string_view 其實也是利用了 constexpr 大幅減少執行時期的成本。
一般都會公認除錯難度排序為 預處理 < 編譯時期 < 執行時期 < 不顯示,盡可能的在編譯時期決定能降低除錯難度。 Ben Deane 和 Jason Turner 一起介紹如何利用 constexpr 幫助寫程式在編譯時期除錯,想必未來應該會有越來越多的編譯時期除錯工具。
編譯器的警告和錯誤訊息已經越來越友善,以前的錯誤訊息真的很狂,還有嘲諷圖
中英對照:預處理器(Preprocessor)
By Sidney Niu
CppCon 2017: Ben Deane & Jason Turner “constexpr ALL the Things!”
開源專案
ChaiScript: Embedded Scripting Language Designed for C++
Original Windows File Manager (winfile) with enhancements
WorkFlowy Tips
卡片助力输入输出,工具我选 WorkFlowy | ishanshan's blog
想知道更多 WorkFlowy 撇步,請快步前往 WorkFlowy Tips 。還沒有 WorkFlowy 帳號?請用此連結申請加倍免費清單上限
還有還有,我在臉書開了一個以 WorkFlowy 為主題的社團——山姆的 WorkFlowy 大小撇步現在人很少,快來助拳!
💌 喜歡這一期的內容,請幫我按「👍」。不喜歡請按「👎」,並寫下你認為哪裡做得不好,你的回饋是我進步的動力。想要匿名舉報的話,我開了一個 Sarahah,歡迎使用,謝謝!
本報內含 Affiliate Link 連結若干,也就是我有機會從中獲益,賺點奶粉錢,希望有朝一日能因此日進斗金(誤)。若對這樣的作法有疑慮,請讓我知道或者直接退訂也行,我不會介意,你請別生氣。
開始入侵中文的 GaryVee 的價值觀值得大家認真思考。
Did you enjoy this issue?
If you don't want these updates anymore, please unsubscribe here
If you were forwarded this newsletter and you like it, you can subscribe here
Powered by Revue