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

閱讀時間約 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
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
    12會員
    62內容數
    遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
    留言0
    查看全部
    發表第一個留言支持創作者!
    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
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    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
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    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 也可能有「臨沿」或「臨依沿」之意。......