在計算機科學有這麼一句名言:
All problems in computer science can be solved by another level of…
出社會以來,我一直有個疑問:要當通才還是專才?這個探索過程有很多值得分享的細節,有時間再整理成文章。直到在 CloudMosa 工作的某天,聽老闆說:「通才不是什麼都會一點,而是能在各領域快速成為專才」、「最重要的兩個能力是學得快和完成目標 (Get Sh*t Down)」 (上述非原文,是中文大意)。我才豁然開朗。
最近剛好看到劉謙用「三週零基礎學給愛麗絲」為例,說明如何快速學一個新領域的東西。這是我看過最簡短清楚的說明,推薦一看。
除了滿足功能需求外,軟體設計階段你會額外考慮那些面項呢?
假設有如下圖的 object dependency graph:
初學寫測試的人,多少會為此問題困擾。每個人的看法都不同,這篇整理跨程式語言的一般性看法,以及我個人偏好的作法。
你不該測試 private method?
近來有些心得,一方面覺得是老生常談,一方面覺得沒有適當例子和時間描述,姑且隨筆記錄。若讀者剛好有類似的經驗,或許看了會有共鳴。
前陣子看到 Object-Oriented Programming — The Trillion Dollar Disaster 用力的罵 OOP,加上最近看了 RxJS 而接觸了 Reactive Programming,平衡過去太偏「要有好的設計得精通 OOP 」的迷思。例如繼承,我一直認為是「弊 >>…
大學時讀過一遍,最近再讀一遍,發覺書中說的觀念仍然適用。工作經驗愈久,愈能認同書中所言。可能有些當時新穎的觀念,現在已被視為常識 (例如要用漸進式開發模型而不是瀑布模型)。也因為這樣,重看後其實沒學到什麼新東西,如同作者在《人月神話二十年後》自我調侃:
… 坐在我旁邊的那位陌生人正在看《人月神話》,而我一直在等,等看看他會不會有什麼反應,也許是一番話或某些表示。最後,飛機終於降落滑向了登機門,我不能再等了: