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

更新於 2024/12/01閱讀時間約 4 分鐘


前言

目前手邊工作上,與其說是開發新功能,大多時候比較常是優化原有的功能,順便修正以前留下來的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
    13會員
    64內容數
    遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    Err500 的其他內容
    剛結束公司的內部訓練,對我自己來說,收穫最多的部分並不是來自課程內容,反而是與一同參加課程,來自各部門、不同學經歷的同事們的交流閒談,看看從不同背景、不同角度看待同一件事情,會出現哪些自己從來沒發現過的盲點。
    僅就自身的經驗作為心得記錄,並不適用於每個人,請斟酌參考。 畢業於理工科系,最初接觸的程式語言不是現在人人推前後端都能做的javascript,也不是初學易懂好上手應用廣的python,而是如同傳統企業核心用COBOL、Java,理工科入門語言--fortran。
    兩年前第一次在誠品打開斜槓青年這本書,當時是為了找日本語gogogo系列以及python相關書籍,經過暢銷書促銷區便隨手拿起翻翻。在那之前早在youtube上看過各式各樣的說書,花了兩小時讀完後,有種相見恨晚之感,因為發現作者許多思維與自己相似,並且以更精煉、更明確的字句闡述,也串聯起以往在不同領域
    寫在前面 會想找這本書來看並不是路過翻翻,在FB上曾掃到此書的推薦,又在youtube上看玩說書的影片,才決定路過書店時拿來看看。一共花了兩天,合計大約4小時看完,算是一本需要稍微停下來好好消化一番的書。
    下了班經過書店,拿了幾本書,掃過前言跟目錄後就決定把這本書給繼續看下去。 腦科學的書呈現上通常都是類似的方式,講述記憶的運作、腦的組成連結、以及多個研究實證例子,有些雖然舉例生活化,可是理論枯燥乏味。然而本書編排上有些刻意營造的"巧思",讓你從頭看到尾才會發現其中的意義。
    你或許聽過只要每天進步1%,一年後就會有37倍的成長,可是如果每天退步一點點,結果只會剩下原本的0.03。所以要透過持之以恆的進步,讓時間複利產生驚人的成果。哦...真的是這樣?
    剛結束公司的內部訓練,對我自己來說,收穫最多的部分並不是來自課程內容,反而是與一同參加課程,來自各部門、不同學經歷的同事們的交流閒談,看看從不同背景、不同角度看待同一件事情,會出現哪些自己從來沒發現過的盲點。
    僅就自身的經驗作為心得記錄,並不適用於每個人,請斟酌參考。 畢業於理工科系,最初接觸的程式語言不是現在人人推前後端都能做的javascript,也不是初學易懂好上手應用廣的python,而是如同傳統企業核心用COBOL、Java,理工科入門語言--fortran。
    兩年前第一次在誠品打開斜槓青年這本書,當時是為了找日本語gogogo系列以及python相關書籍,經過暢銷書促銷區便隨手拿起翻翻。在那之前早在youtube上看過各式各樣的說書,花了兩小時讀完後,有種相見恨晚之感,因為發現作者許多思維與自己相似,並且以更精煉、更明確的字句闡述,也串聯起以往在不同領域
    寫在前面 會想找這本書來看並不是路過翻翻,在FB上曾掃到此書的推薦,又在youtube上看玩說書的影片,才決定路過書店時拿來看看。一共花了兩天,合計大約4小時看完,算是一本需要稍微停下來好好消化一番的書。
    下了班經過書店,拿了幾本書,掃過前言跟目錄後就決定把這本書給繼續看下去。 腦科學的書呈現上通常都是類似的方式,講述記憶的運作、腦的組成連結、以及多個研究實證例子,有些雖然舉例生活化,可是理論枯燥乏味。然而本書編排上有些刻意營造的"巧思",讓你從頭看到尾才會發現其中的意義。
    你或許聽過只要每天進步1%,一年後就會有37倍的成長,可是如果每天退步一點點,結果只會剩下原本的0.03。所以要透過持之以恆的進步,讓時間複利產生驚人的成果。哦...真的是這樣?
    你可能也想看
    Google News 追蹤
    Thumbnail
    本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
    Thumbnail
    It steers clear of weight reduction, just to improve yourself and better! Foster these 8 positive routines together.  Numerous young ladies nearly tr
    Thumbnail
    有些英文俚語的比喻很莫名其妙,讓中文母語者聽得滿頭問號。「像白紙一樣乾淨」這句話我們懂,但外國人說「像哨子一樣乾淨」這句話就讓人納悶了吧?這種神比喻是從什麼邏輯來的?透過這篇的解說帶你一起破解。
    Thumbnail
    《原子習慣》這本書在全世界賣到翻,作者 James Clear 本人的名氣也水漲船高,在台灣也有許多他的讀者粉絲,當然我也是其中一位。在網路上有許多他的專訪,本篇摘錄其中一次的重點。
    Thumbnail
    人類日常使用的事物,都是些形塑生活和被生活形塑,反映生活或被生活創造的東西。裡頭藏的,往往是人類不經意為之,或者不得不為之的文明進展。側面窺看的樂趣,特別讚。
    Prior to the coronavirus, 2019 has seen the global economy become an increasingly difficult landscape to navigate. The US – China trade war has create
    Thumbnail
    lean 與漢字「臨」的漢語發音及意義皆相近,其中 e 又可能與漢字「依」互為形聲,an 又可能與「沿」字的漢語互為形聲。漢字「依」意思接近「靠」,漢字「沿」則有「順著邊緣」或「順著分界」的意思,所以 lean 也可能有「臨沿」或「臨依沿」之意。......
    Thumbnail
    本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
    Thumbnail
    It steers clear of weight reduction, just to improve yourself and better! Foster these 8 positive routines together.  Numerous young ladies nearly tr
    Thumbnail
    有些英文俚語的比喻很莫名其妙,讓中文母語者聽得滿頭問號。「像白紙一樣乾淨」這句話我們懂,但外國人說「像哨子一樣乾淨」這句話就讓人納悶了吧?這種神比喻是從什麼邏輯來的?透過這篇的解說帶你一起破解。
    Thumbnail
    《原子習慣》這本書在全世界賣到翻,作者 James Clear 本人的名氣也水漲船高,在台灣也有許多他的讀者粉絲,當然我也是其中一位。在網路上有許多他的專訪,本篇摘錄其中一次的重點。
    Thumbnail
    人類日常使用的事物,都是些形塑生活和被生活形塑,反映生活或被生活創造的東西。裡頭藏的,往往是人類不經意為之,或者不得不為之的文明進展。側面窺看的樂趣,特別讚。
    Prior to the coronavirus, 2019 has seen the global economy become an increasingly difficult landscape to navigate. The US – China trade war has create
    Thumbnail
    lean 與漢字「臨」的漢語發音及意義皆相近,其中 e 又可能與漢字「依」互為形聲,an 又可能與「沿」字的漢語互為形聲。漢字「依」意思接近「靠」,漢字「沿」則有「順著邊緣」或「順著分界」的意思,所以 lean 也可能有「臨沿」或「臨依沿」之意。......