【記錄】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
13會員
65內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Err500 的其他內容
上次完成到基本的CRUD及權限控制,後面花了點時間把排序、分頁、圖表總覽的部分做完,其他細節是佈署上線,一般在公司內有專屬的部門處理,僅了解一下流程。
原本的計畫是寫系列文,一天嗑一點,雖然完整影片約17小時,分批消化卻花了我近10天,現在回去看我第一天寫的草稿,編輯時間已經是半年前...。
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
學習Spring Boot是Java工程師必備技能,文章分享瞭如何自學並快速上手Spring Boot開發,包括架構、開發工具、專案建立以及實作過程。
在過年期間,利用集中時間跟完Mosh Hamedani的Next.js課程,掌握了前端至後端的技術應用。本文分享了學習過程中的收穫與成果,以及對於未來應用的展望。
巨集(Macro)是什麼? 第一次聽到這個詞是出現在excel,按下錄製鍵後,畫面上進行的操作會被記錄下來,可以重複回放執行前述操作。之後接觸C語言的#define,巨集又跟函數類似...
上次完成到基本的CRUD及權限控制,後面花了點時間把排序、分頁、圖表總覽的部分做完,其他細節是佈署上線,一般在公司內有專屬的部門處理,僅了解一下流程。
原本的計畫是寫系列文,一天嗑一點,雖然完整影片約17小時,分批消化卻花了我近10天,現在回去看我第一天寫的草稿,編輯時間已經是半年前...。
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
學習Spring Boot是Java工程師必備技能,文章分享瞭如何自學並快速上手Spring Boot開發,包括架構、開發工具、專案建立以及實作過程。
在過年期間,利用集中時間跟完Mosh Hamedani的Next.js課程,掌握了前端至後端的技術應用。本文分享了學習過程中的收穫與成果,以及對於未來應用的展望。
巨集(Macro)是什麼? 第一次聽到這個詞是出現在excel,按下錄製鍵後,畫面上進行的操作會被記錄下來,可以重複回放執行前述操作。之後接觸C語言的#define,巨集又跟函數類似...
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
大家好,歡迎收聽《E人I碎念》。我是你的主持人大E,一個愛自言自語、有點宅宅的ISTJ。在這裡,我會用實事求是的態度,為你帶來豐富的知識和生活智慧。無論是資訊安全、家庭管理,還是心靈成長、社會時事,甚至是基督教信仰分享,我都會用有條理的方式為你呈現。讓我們一起在這個節目中,探索身體、心情、靈命、家庭
Thumbnail
這是第二課的Podcast,第二次錄製感覺講話順暢很多,雜字變少,江湖味不少~歡迎收聽~
Thumbnail
終於上傳人生第一個Podcast,文章內部一併崁入~ 第一次錄超緊張一直在想要說什麼,雜字一堆😭那來那去的,請各位朋友多多包涵,後段開始慢慢放飛自我開啟練肖話的模式,漸漸就能聽到充滿江湖味的跑大叔😂 原本要星期五才上傳,但想讓自己的腦袋休息一下,決定提前一天上線。 因為我也沒有很專業的錄製工
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 書籍:Transformers for Natural Language Processing and Computer Vision, Denis Rothman,
Thumbnail
這本書如果是剛看完《Clean Architecture》這本書,想要直接看答案怎麼實作,是可以當作一個起始點,但我會比較建議,自己循著書中前幾個章節提到的 principles,思考看看怎麼設計出一個符合大多數 principles 的方案,這會比較有趣。
Thumbnail
#小小宣傳# 【Podcast節目:當日子起舞時- EP32 神秘人物特別專訪篇!】 歡迎有興趣的朋友點擊連結收聽!感恩的心~ @whendaysdance's link in bio | Linktree 今天又和老爸一起完成一個有趣好玩的心願目標: 一起去專業錄音室錄podcast!
Thumbnail
大家好!從本周開始的每周三,我會在Podcast上更新自我成長相關的收聽內容。 內容和方格子上的經營內容不會完全一致,所以可以兩邊都追蹤哦! 在這個節目中,我們可以一起透過故事來體悟人生。
Thumbnail
朋友回饋對清潔系列有興趣,不妨整理成一篇,分享給好奇的人,想不到也默默累積了幾則。 🎧 歡迎點我收聽《安 SAY》Podcast 🙃 #53 好聚好散 #52 清潔大哉問 #49 工作新體驗(下) #48 接案善緣 #40 工作新體驗(上) #33 清潔工作一個月了 想到前室
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
大家好,歡迎收聽《E人I碎念》。我是你的主持人大E,一個愛自言自語、有點宅宅的ISTJ。在這裡,我會用實事求是的態度,為你帶來豐富的知識和生活智慧。無論是資訊安全、家庭管理,還是心靈成長、社會時事,甚至是基督教信仰分享,我都會用有條理的方式為你呈現。讓我們一起在這個節目中,探索身體、心情、靈命、家庭
Thumbnail
這是第二課的Podcast,第二次錄製感覺講話順暢很多,雜字變少,江湖味不少~歡迎收聽~
Thumbnail
終於上傳人生第一個Podcast,文章內部一併崁入~ 第一次錄超緊張一直在想要說什麼,雜字一堆😭那來那去的,請各位朋友多多包涵,後段開始慢慢放飛自我開啟練肖話的模式,漸漸就能聽到充滿江湖味的跑大叔😂 原本要星期五才上傳,但想讓自己的腦袋休息一下,決定提前一天上線。 因為我也沒有很專業的錄製工
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 書籍:Transformers for Natural Language Processing and Computer Vision, Denis Rothman,
Thumbnail
這本書如果是剛看完《Clean Architecture》這本書,想要直接看答案怎麼實作,是可以當作一個起始點,但我會比較建議,自己循著書中前幾個章節提到的 principles,思考看看怎麼設計出一個符合大多數 principles 的方案,這會比較有趣。
Thumbnail
#小小宣傳# 【Podcast節目:當日子起舞時- EP32 神秘人物特別專訪篇!】 歡迎有興趣的朋友點擊連結收聽!感恩的心~ @whendaysdance's link in bio | Linktree 今天又和老爸一起完成一個有趣好玩的心願目標: 一起去專業錄音室錄podcast!
Thumbnail
大家好!從本周開始的每周三,我會在Podcast上更新自我成長相關的收聽內容。 內容和方格子上的經營內容不會完全一致,所以可以兩邊都追蹤哦! 在這個節目中,我們可以一起透過故事來體悟人生。
Thumbnail
朋友回饋對清潔系列有興趣,不妨整理成一篇,分享給好奇的人,想不到也默默累積了幾則。 🎧 歡迎點我收聽《安 SAY》Podcast 🙃 #53 好聚好散 #52 清潔大哉問 #49 工作新體驗(下) #48 接案善緣 #40 工作新體驗(上) #33 清潔工作一個月了 想到前室