【記錄】ThePrimegen 與 Uncle Bob的直播訪談心得

揚-avatar-img
發佈於讀後感
更新於 發佈於 閱讀時間約 5 分鐘

前言

2024-04-26晚上跟到了在twitch上的直播,ThePrimeagen邀請到了Uncle Bob進行訪談—沒錯,就是那位《Clean Code》、《Clean Architecture》、《Clean Agile》等書的作者Robert C. Martin。


整體訪談時間約一小時半,不知道youtube上會不會放上直播存檔。


幾年前剛看過clean code的演講紀錄,陸陸續續找到其他訪談影片,Uncle Bob的主軸跟說詞在每個影片幾乎一致,帶給我的感覺是:我的書已經完整記錄了我的想法,我也為各個章節準備好完整的故事架構,遇到演講或是遇到特定的問題,我就把那個章節拿出來再闡述一次。


因此,這次的訪談我想看看有沒有不一樣的東西。以下為憑印象理解的問答,整理出一些心得記錄:


使用Clojure語言的契機

作為第一個開場問題,SICP(Structure and Interpretation of Computer Programs)果然又被搬了出來,網路上找的到的公開課是使用LISP語言講述,偏向計算思維跟問題解決的養成。


對設計模式Design Pattern的看法

比起在什麼狀況下套用什麼模式,或是學習辨認設計模式,這裡給出的答案相對單純:

在溝通上可以快速的對焦實作方式。


例如某段程式中不想要多個if判斷分支,打算改寫套用策略模式(Strategy Pattern),那麼有學過的人自然理解會改成什麼樣的做法,至少出來的雛型會是類似的結果。


過早的抽象化

讀過SOLID原則跟有點經驗的工程師大多知道,依賴該建立在抽象層(Interface、Abstract class)而不是實作的類別上,保有軟體修改的彈性。只不過,大多時候或是初期的案子,需求僅是完成功能實作,需要在此時就已經定義好這些抽象的介面嗎?


老實說,聽完這題的討論後,並沒有一個完整的結論。


Uncle bob給出的方式是他會先花一個小時的時間思考整體架構設計,接續著手進行開發試試,之後再回來修改。ThePrimegen的做法是我比較可能採取的方式,先針對需要的功能實作,日後有需要進行抽象化的情況,再進行處理。


100%測試覆蓋率

以妥協的結果來說,測試有其必要,但不是絕對完美。畢竟,我只能在我知道的範圍內,盡量測到100%,而我所不知道的部分,那也是無能為力。


另外一個寫測試必要的重點,是為了進行安全的重構。


以Uncle Bob的說法,當改動了一項功能,也該只有一項測試失敗,意味著依賴項目也只能有一項。某種程度上來說不容易,尤其是在企業級的系統架構下。


因此,在這一部份歸納下列兩點

  • 只對重要、相對容易出錯的部分進行測試,盡量提高測試覆蓋率
  • 建立重構的安全及更改彈性、增加程式碼推上線後不會爆掉的信心


Function的拆分

如clean code一書中提到,function應該要小,小到IDE不能再進行提取方法,並且給予一個適當、明確的名稱。然而我也遇過喜歡全部內容只寫在同一個大function的前輩,不希望透過IDE跳來跳去,穿梭在不同資料夾之間再拼湊回原本的邏輯。


於是,Uncle bob在這裡講了個類似進行early return的方式,即是將這些拆分後具有語意的小function,安排整理他們的順序。


敏捷開發

作為17位敏捷宣言的元老之一,他的想法其實都寫在了書中。此次訪談礙於時間及篇幅,從表述中聽起來意思偏向是:

當初人數不多,大家都是很有經驗的工程師,快速聚焦問題快速處理,定期同步進度


所以其實也是小團隊,完成很多小事情,累積起來達成一項大的里程碑,似乎不像PMP或PMBOK建立起來相對明確的制度及方法論。


總結

必須很誠實地說,上面提到的書我並沒有完全看過,至於提到的內容及思想,網路上都有作者在公開演講的錄影。畢竟透過書籍、翻譯、自我解讀等,總比不上作者本人講述來的直接,避免曲解最初的本意。


另外,直播主也是Netflix超過10年經驗以上的資深工程師,提問也是大多實務開發上非常實際的問題,很顯然這也是多數在實踐Clean code、SOLID、Design Pattern、Agile、TDD等方法論時會產生的疑惑。


從對談結果而言,無關好壞對錯,只能說:

原則大體適用,原則想達到的目的才是根本。






留言
avatar-img
留言分享你的想法!
avatar-img
Err500
12會員
77內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2024/12/01
這本書是由大人學Podcast上的內容,重新整理修訂成書,因此針對特定主題想快速尋求建議,可以從目錄找到特定單元;如果有時間想深入了解主題,可以回去Youtube找到該集的Podcast,畢竟是由作者本人實際的對談,更能理解所要傳達的意圖。
Thumbnail
2024/12/01
這本書是由大人學Podcast上的內容,重新整理修訂成書,因此針對特定主題想快速尋求建議,可以從目錄找到特定單元;如果有時間想深入了解主題,可以回去Youtube找到該集的Podcast,畢竟是由作者本人實際的對談,更能理解所要傳達的意圖。
Thumbnail
2024/10/06
在生日前夕,無意間在書店翻到這本書《28歲決定你的人生》,雖然已經超過28歲一段時間了,具有成長型的思維的人,才不會輕易相信這種幾歲之後就定型的標語。又或者,把書中內容拿來檢視自己符合哪些觀點、而又有哪些可補足的地方,參考檢視一下也無妨。
2024/10/06
在生日前夕,無意間在書店翻到這本書《28歲決定你的人生》,雖然已經超過28歲一段時間了,具有成長型的思維的人,才不會輕易相信這種幾歲之後就定型的標語。又或者,把書中內容拿來檢視自己符合哪些觀點、而又有哪些可補足的地方,參考檢視一下也無妨。
2022/03/12
初學程式時認為寫程式是在跟機器溝通,它懂了、可以動了,我的目的達成了,結案!然而大多時候,光是連編譯器吐出來的錯誤訊息都看不懂,更別說是考慮自己寫出來的程式碼的可讀性,而且專案太小也感覺不出維護上的困難。
Thumbnail
2022/03/12
初學程式時認為寫程式是在跟機器溝通,它懂了、可以動了,我的目的達成了,結案!然而大多時候,光是連編譯器吐出來的錯誤訊息都看不懂,更別說是考慮自己寫出來的程式碼的可讀性,而且專案太小也感覺不出維護上的困難。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
這是一本極簡主義的書,作者是澀谷直人,下面選幾個書中概念和寫出我的心得
Thumbnail
這是一本極簡主義的書,作者是澀谷直人,下面選幾個書中概念和寫出我的心得
Thumbnail
昨天在短影音平台上看到一個年終論壇的影片(這幾年對岸非常流行做年終演講),每一位講者都是赫赫有名的企業家 其中有一位1993年生的創業者,本來是我很喜歡的一個內容創作者,他專門訪問各種不同行業的創業家,將他們的訪問內容剪輯成影片,短短幾年間累積了數以千萬計的粉絲
Thumbnail
昨天在短影音平台上看到一個年終論壇的影片(這幾年對岸非常流行做年終演講),每一位講者都是赫赫有名的企業家 其中有一位1993年生的創業者,本來是我很喜歡的一個內容創作者,他專門訪問各種不同行業的創業家,將他們的訪問內容剪輯成影片,短短幾年間累積了數以千萬計的粉絲
Thumbnail
「給自己一點喘息的空間並不會讓你變成懶惰鬼!」-Bill Gates 老爸那天在網路上看到#Microsoft的創辦人 @Bill Gates 在今年五月受邀到NAU(North Arizona University)的畢業典禮演講,他提了五點是希望自己在踏入社會前就能聽到的建議:
Thumbnail
「給自己一點喘息的空間並不會讓你變成懶惰鬼!」-Bill Gates 老爸那天在網路上看到#Microsoft的創辦人 @Bill Gates 在今年五月受邀到NAU(North Arizona University)的畢業典禮演講,他提了五點是希望自己在踏入社會前就能聽到的建議:
Thumbnail
看似簡單的項目但執行上來需要層層的方案模式 最近筆者參加了許多教師研習,包括2022年參加的《書店老闆》第一季及2023年的第二季,今年則進入了第三季。這次講座的主要書籍是《好男人病毒:解除好人毒素脫離單身苦海》和《老公怎麼還不去死》。看完後,筆者以賽局思考來反思其中的內容。 印象深刻的是,筆者
Thumbnail
看似簡單的項目但執行上來需要層層的方案模式 最近筆者參加了許多教師研習,包括2022年參加的《書店老闆》第一季及2023年的第二季,今年則進入了第三季。這次講座的主要書籍是《好男人病毒:解除好人毒素脫離單身苦海》和《老公怎麼還不去死》。看完後,筆者以賽局思考來反思其中的內容。 印象深刻的是,筆者
Thumbnail
《解決問題的人》這本書是丹尼·沃謝教授所寫,通過豐富的經營案例和不同背景、不同年齡的創業故事,展示了創業的多種可能性和實踐經驗。這本書強調,解決問題不是什麼神秘天賦,而是一種學得會的技巧,這樣的創業思維,也可以應用到日常生活裡,就能在創業和生活中做得更好,甚至實現夢想。
Thumbnail
《解決問題的人》這本書是丹尼·沃謝教授所寫,通過豐富的經營案例和不同背景、不同年齡的創業故事,展示了創業的多種可能性和實踐經驗。這本書強調,解決問題不是什麼神秘天賦,而是一種學得會的技巧,這樣的創業思維,也可以應用到日常生活裡,就能在創業和生活中做得更好,甚至實現夢想。
Thumbnail
  畢業設計的指導老師─鄭晃二(二哥)出書啦,說什麼都要用新台幣讓它下架。於今(2021)距畢業設計已近8年。翻閱此書,彷彿又回到那段每周兩次到辦公室跟老師討論畢業設計的時光,一邊聽著老師笑談最近建築圈的軼事、一邊從設計的議題、主題、命題、問題、課題、標題中逐漸釐清心中的問題意識。筆者有幸一
Thumbnail
  畢業設計的指導老師─鄭晃二(二哥)出書啦,說什麼都要用新台幣讓它下架。於今(2021)距畢業設計已近8年。翻閱此書,彷彿又回到那段每周兩次到辦公室跟老師討論畢業設計的時光,一邊聽著老師笑談最近建築圈的軼事、一邊從設計的議題、主題、命題、問題、課題、標題中逐漸釐清心中的問題意識。筆者有幸一
Thumbnail
作者很會利用一些故事案例來帶出他所要傳達的關於人性、財富、風險等真理, 很多金句都有當頭棒喝之感, 立即筆記下來, 不只是投資世界, 更可運用於職場、家庭及人際關係上面, 是本我覺得值得收藏, 有迷惘時隨時可找來翻閱的好書!
Thumbnail
作者很會利用一些故事案例來帶出他所要傳達的關於人性、財富、風險等真理, 很多金句都有當頭棒喝之感, 立即筆記下來, 不只是投資世界, 更可運用於職場、家庭及人際關係上面, 是本我覺得值得收藏, 有迷惘時隨時可找來翻閱的好書!
Thumbnail
這篇內容精華重點:一個是 Open AI 執行長分享了一篇「希望有人早點告訴他的幾件事」,從過來人的角度分享他年輕時會希望有人告訴他的事情,很有啟發,還有一部影片是我認為人生必看 TED 的演講,叫脆弱的力量,告訴我們與脆弱相處的方法跟重要性。
Thumbnail
這篇內容精華重點:一個是 Open AI 執行長分享了一篇「希望有人早點告訴他的幾件事」,從過來人的角度分享他年輕時會希望有人告訴他的事情,很有啟發,還有一部影片是我認為人生必看 TED 的演講,叫脆弱的力量,告訴我們與脆弱相處的方法跟重要性。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News