文章

目前顯示的是 九月, 2019的文章

自學技巧,與難易度相關的讀書技巧

圖片
與難易度相關的讀書技巧: Tips 1:若一直花時間讀太簡單的書,表示沒有累積新知識,只是在浪費時間
讀書目的是累積知識量、增進新觀念。
這時應該挑戰困難、進階一點的書。 Tips 2: 若 看不懂作者部分的內容,表示你跟作者仍不在同一個知識水平
這時需要找別的資源(網路文章、別的書籍)補充知識。 Tips 3: 若 看不懂作者一半的內容,表示跟作者的知識水平相差太多
這時應該放下手上的書,先學習 前置知識 再回來挑戰。 Tips 4: 不要讀到不懂詞彙的就立刻停下來查資料
應先快速讀過整本書、章節,讓大腦快速建立 書中的知識概念、詞彙關係
大腦建立起 詞彙關係 後,再回來查資料會更容易理解。 其他: 學習新知識的過程總是辛苦… ​

自學選書技巧、推薦程度說明

圖片
自學時常要 K 書培養知識,但是在資訊大爆大的時代,書籍的數量跟網路文章一樣多,品質也參差不齊。因此選書需要謹慎,若不仔細挑書就容易變成浪費時間。 平時選書會透過「題材/範圍、深度、作者文筆、翻譯品質」來決定要不要購買或花時間讀下去: 題材/範圍:
快速讀過目錄,檢查書本內容是不是圍繞在你有興趣的主題。 深度:
快速翻閱書籍內容,檢查書本的深度/難易度是不是符合你現在的需求。若深度太淺、太簡單則表示你不需要花太多時間閱讀這本書。反之深度太深、太困難,表示應該花時間學習前置知識。 作者文筆:
此項決定知識的吸收效率。快速檢查大小章節的前後順序,以及內文是否與章節有關聯。
作者若有系統性的把書籍章節、內文結構設計妥當,由淺入深。則閱讀書籍速度跟吸收知識都會很快。
若作者沒辦法有結構、系統性得組織知識,在閱讀書籍時,你必須時常前後反覆翻閱,並搭配網路搜尋文章補充知識,把破碎的知識從書中整理到腦海裡。 翻譯品質:
程式相關的書籍,多半是國外原文翻譯的書,若翻譯品質很差,輕則看得出戲(有些翻譯與句很怪,根本不像中文),重則扭曲作者原意,誤導讀者學習不對的觀念。
若遇到翻譯品質差的書籍,可以改換簡體書看(換譯者)或者搭配原文書一起看。 ​

單元測試的藝術

圖片
The Art of Unit Testing: with examples in C#, 2/e書本連結 摘要: 本書涵蓋了撰寫單元測試的基本知識,包含如何撰寫單元測試、使用隔離(模擬)框架,以及讓它們變得可維護、可讀、可被信任。並且講解在真實世界撰寫、管理和維護單元測試的最佳實踐。 心得: 第一、二章:
作者示範一個良好的單元測試應該具備哪些條件。 第三、四章:
作者以設計單元測試的角度,引用 Working Effectively with Legacy Code 的接縫技術講解如何透過接縫技術建立偽物件,讓單元測試的受測對象(SUT)可以隔離依賴,達到快速、獨立原則。 接縫技術是針對 Legacy Code 無法執行單元測試的處理手段,由本書的角度來學習接縫技術,會覺得為什麼要繞一大圈只為了產生偽物件(Stub/Mock)。因此建議直接去看 Working Effectively with Legacy Code 如何使用接縫技術讓多種情境的 Legacy Code 可執行單元測試。 第五章:
使用模擬(Mock)框架來取代三、四章節的接縫技術。
覺得此章節的安排不太洽當,
接縫技術是針對 Legacy Code 無法執行單元測試的處理手段,作者卻以取代接縫技術的角度來介紹模擬框架,可能讓讀者誤以為接縫技術是過時的測試手段。
也許是本書出版的年代較早 (1/e: 2009、2/e: 2013),但現今的測試框架搭配模擬框架已經相當普及。若要講解模擬技術時,應該直接講解模擬框架即可,把接縫技術跟模擬技術分開講應該會更好!。 第七、八、九、十、十一章節:
介紹開發團隊在實務中如何進行單元測試,包含如何安排單元測試的檔案、舊系統引入單元測試的策略、如何讓單元測試好維護..等等。
若您的團隊還不了解怎麼進行單元測試,則相當推薦閱讀這些章節。 總結:
本書的深度不深,作者把讀者設定為單元測試的新手,從 0 開始講解單元測試,書中的內容大多是針對不良測試案例的叮嚀。 推薦給想學習單元測試又對單元測試不了解的工程師,本書將單元測試應該具備的概念都教完了,讀過後應該能少走不少歪路。 適合讀者:對單元測試不了解的工程師
可學習議題:單元測試技術
延伸學習:測試驅動開發(TDD)、行為驅動開發(BDD) ​