Clean code - Uncle Bob演講的一些心得記錄

揚-avatar-img
發佈於讀後感
更新 發佈閱讀 3 分鐘

前言

目前手邊工作上,與其說是開發新功能,大多時候比較常是優化原有的功能,順便修正以前留下來的bug,因此解讀前人的程式碼、留不留註解、如何讓程式寫的更"乾淨"一點等常見的問題一件一件浮上檯面。

說是這麼說,最根本的出發點其實只是因為我比較"懶",太多類似的業務邏輯其實只是換個名子,一個一個實作出來實在有點像是土法煉鋼。畢竟,軟體設計終究得思考一件事--程式碼的重用性。

這篇只有對演講的其中一部份摘要記錄,再加上自己的心得,不會著重clean code一書中歸納出的一些規則,如SOLID。

為什麼要寫乾淨的程式碼?

從反面來看,寫的雜亂的程式碼光是要看懂就耗費很大的心力,更不用說還要修改、加上新功能。

這部分最直接影響的就是程式的可讀性,而達成可讀性提升的方法來自於良好的命名:包含給予變數、函數一個可以清楚描述自己本身的一個名子。

每個函數要盡可能小,小到一次只做一件事。

客觀的"一件事"可以透過IDE提取方法將函式(方法)抽出來,直到不能再抽出來為止。

以下為原文做重點式摘錄

why clean code?

  • Why are programmers so slow?
  • fast leads the mess
  • mess slows down the productivity
  • add more people
  • old code trains the new people
  • desire to go fast makes the mess
  • once the code works, it would be the mess, so clean it!
The only way to go fast is to go well.
  • Your job is to write the code that other people can maintain and reuse.
  • construct well written prose from the names of the variables and functions
  • make functions smaller
  • function are extracted until it cannot be extracted
  • semantic function tree follow by name
  • return a value will not change the state in convention. No side effect.



看完後的延伸方向

  • Functional Programming
  • Object Oriented Programming
  • Design Pattern
  • Test Driven Development
  • Refactoring
留言
avatar-img
Err500
17會員
84內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
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歲一段時間了,具有成長型的思維的人,才不會輕易相信這種幾歲之後就定型的標語。又或者,把書中內容拿來檢視自己符合哪些觀點、而又有哪些可補足的地方,參考檢視一下也無妨。
2024/04/27
2024-04-26晚上跟到了在twitch上的直播,ThePrimeagen邀請到了Uncle Bob進行訪談—沒錯,就是那位《Clean Code》、《Clean Architecture》、《Clean Agile》等書的作者Robert C. Martin。
2024/04/27
2024-04-26晚上跟到了在twitch上的直播,ThePrimeagen邀請到了Uncle Bob進行訪談—沒錯,就是那位《Clean Code》、《Clean Architecture》、《Clean Agile》等書的作者Robert C. Martin。
看更多
你可能也想看
Thumbnail
這篇文章將會分享 Clean Code 關於註解的重點,內容主要以個人閱讀後心得為主,有興趣了解更多請自行購買這本書。
Thumbnail
這篇文章將會分享 Clean Code 關於註解的重點,內容主要以個人閱讀後心得為主,有興趣了解更多請自行購買這本書。
Thumbnail
這篇文章將會簡單介紹無瑕的程式碼(Clean Code)是一種什麼樣的程式設計流派,並且分享以及命名相關的概念。
Thumbnail
這篇文章將會簡單介紹無瑕的程式碼(Clean Code)是一種什麼樣的程式設計流派,並且分享以及命名相關的概念。
Thumbnail
這篇應該是這系列來說,算是寫得最少了.... 成功是一定要找方法,這是大家都公認的原則...但是成功找方法,是一件不容易的事情,在於重點一切就看自己有沒有心。 圖自:電影食神 舉例來說,我們寫程式寫久了,我們會嘗試去優化它,有些重複的東西可以範本化或是程式產生器,來提升生產率或是找不錯的工具提升自己
Thumbnail
這篇應該是這系列來說,算是寫得最少了.... 成功是一定要找方法,這是大家都公認的原則...但是成功找方法,是一件不容易的事情,在於重點一切就看自己有沒有心。 圖自:電影食神 舉例來說,我們寫程式寫久了,我們會嘗試去優化它,有些重複的東西可以範本化或是程式產生器,來提升生產率或是找不錯的工具提升自己
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
這系列大概花了快兩個月的時間快速的把學到的一些知識記錄下來,然而還是有許多內容很難用文章簡單的說明。
Thumbnail
這系列大概花了快兩個月的時間快速的把學到的一些知識記錄下來,然而還是有許多內容很難用文章簡單的說明。
Thumbnail
當我們使用主幹開發(Trunk-based Development)、以及驗收測試驅動開發(A-TDD)之後,所撰寫的程式碼會逐漸的變多,也因此我們會開始注意到程式碼有壞味道(Code Smell)的出現。
Thumbnail
當我們使用主幹開發(Trunk-based Development)、以及驗收測試驅動開發(A-TDD)之後,所撰寫的程式碼會逐漸的變多,也因此我們會開始注意到程式碼有壞味道(Code Smell)的出現。
Thumbnail
初學程式時認為寫程式是在跟機器溝通,它懂了、可以動了,我的目的達成了,結案!然而大多時候,光是連編譯器吐出來的錯誤訊息都看不懂,更別說是考慮自己寫出來的程式碼的可讀性,而且專案太小也感覺不出維護上的困難。
Thumbnail
初學程式時認為寫程式是在跟機器溝通,它懂了、可以動了,我的目的達成了,結案!然而大多時候,光是連編譯器吐出來的錯誤訊息都看不懂,更別說是考慮自己寫出來的程式碼的可讀性,而且專案太小也感覺不出維護上的困難。
Thumbnail
簡單來說,寫程式最困難的地方往往不是技術上的問題,而是如何對當下的狀況正確判斷並且建立良好協作的狀態,才會是最為困難的地方。
Thumbnail
簡單來說,寫程式最困難的地方往往不是技術上的問題,而是如何對當下的狀況正確判斷並且建立良好協作的狀態,才會是最為困難的地方。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News