[161] Pluralsight C++ 課程精選

前面提到三個月免費享用 Pluralsight 海量學習資源的方法,這一篇列出幾個 Pluralsight 上,我認為不錯的 C++ 課程。 入門 Pluralsight 的 C++ 入門課由凱特大嬸(Kate Gregory)操刀,有兩集,皆以 C++11 為教授範圍: C++ Fundamentals C++ Fundamentals - Part 2 此課程從工具安裝開始教起,慢慢建立基本觀念如變數(Variables),流程控制(Flow of Control),迴圈(Loop)。一路教到運算元(Operator),模板(Tempalte),指標(Pointer)與繼承(Interitance)。第二部分介紹標準函式庫(STL),Lambda(這個我不會翻)…

[160] 免費取得 Pluralsight 線上學習資源(無限暢飲三個月)

Pluralsight 主要提供軟體工程相關的線上學習資源,以影片為主,其課程內容與講師素質高。這幾年陸續併購了幾間線上學習公司,如 PeepCode, Tekpub, Code School,成了領域頭目之一。許多公司併購後即關閉原站,但 Code School 例外,目前依然維持獨立運作。 Pluralsight 的 C++ 課程有許多知名人物,如 Kenny Kerr(現任職 Microsoft,負責 C++/WinRT 專案), Kate Gregory, Dmitri Nesteruk。 Pluralsight 的 C++ 課程由入門、中階至高階,一應俱全。現在,只要簡單幾個步驟就可以三個月免費暢遊 Pluralsight 豐富的學習資源,挑自己喜愛的課程,認真上三堂課,應有不少收穫。怎麼做呢?很簡單,只要申請…

[156] 函數或類別

先前寫過 C++ 類別的設計手法,其中一個是「滿足條件才能生成物件」。其實,需求若只是產生 TheTea,使用函數(Function)即可滿足,有需要寫成類別嗎?本文以此例探討:To class, or not to class. 以函數實作 把先前的 TeaMaker 類別實作貼過來: class TeaMaker { TeaMaker(Tea, Sugar, Ice); TheTea Make(); }; 相應的函數可實作成: TheTea MakeTea(Tea, Sugar, Ice); 同樣是接收三個輸入參數,產生輸出(TheTea),上述函數實作滿足了「當前」的需求。一般來說,呼叫函數不需要先建物件,再呼叫其成員函數,比使用類別來得輕鬆。那麼,有必要設計成類別嗎? 跟許多軟體開發問題的答案一樣:…

[153] JUCE Diary #14:Catch Test Framework

Catch 在 C++ 單元測試、自動化測試領域算是新兵。由於設計優良,使用簡便,近來頗受好評。JUCE 內建了單元測試機制,雖然大部分情況下比夠用還多,不過,為了避免落入「固步自封」的工程師死亡陷阱,偶爾還是要看看窗外的世界,弄髒手,動動腦。 JUCE 論壇經常出現高手分享自己的作品,昨天就看到 varx 這個把 Reactive-Extension, RxCpp 導入到 JUCE 的專案,太有才,改天一定要試試。不過,今天的重點不在該專案,原因是我挖了專案原始碼來看,發現作者用了 Catch 做單元測試,而不是用 JUCE 內建的機制。然後,使用 Catch 來做測試真的很簡單。底下說明使用方式(程式碼參考 varx 專案)。 首先,使用 Projucer…

[139] JUCE Diary #13:C++ namespace 的必要

前言 C++ namespace 的用意是減少名稱衝突,Objective-C 則是以「加上前贅詞」(「贅」者,多餘、沒有用處。)的方式處理,老實說有點不牢靠。 JUCE 的公開類別置放於 juce:: 命名空間裡。不過,預設情況下由於 JuceHeader.h 引入了 using namespace juce;,因此使用 JUCE 類別不需要加上 juce::。這麼做純粹是為了節省打字時間,並試圖讓「版面」更乾淨,但不應視為「最佳實務」。這個預設行為可以透過定義 DONT_SET_USING_JUCE_NAMESPACE=1 來改變。不過,經驗顯示加上後反而是自找麻煩... 那些年,我們一起經歷的不美好... C++ namespace 的美意如前述,…

[135] Livecoding.tv: JUCE #6

應觀眾要求改用破英文面對。 這集示範如何使用 juce::DrawableButton class 來顯示圖文合併的按鈕。另外用到了 juce::Array 來實作載入 SVG 圖檔的函數。…

[134] Livecoding.tv: JUCE #5

在 Facebook Live 直播幾集,發覺受眾跟 Livecoding.tv 上的差很多。依我少得可憐的朋友來看,臉書直播的對象多為台灣人,而且多為圈外人。而 Livecoding.tv 的屬性很明確就是技術類,出沒人士多以英語系為主。 接下來我希望 Facebook Live 以及 Livecoding.tv 做不同的主題,看看反應如何。…

[132] Livecoding.tv: JUCE #4

前天直播時犯了新手錯誤,加上沒注意到 Livecoding.tv 站務人員的大聲呼喊,五十分鐘的直播報銷了。昨天針對同一個主題(JUCE Unit Test Framework)又做了一次。 沒想到直播中途有人提問,最後應觀眾要求改用「破英文」說明 JUCE Unit Test Framework... (事後聽發現紅軸機械鍵盤的聲音太大了)…