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

揚-avatar-img
發佈於讀後感
更新於 發佈於 閱讀時間約 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
12會員
76內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言
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
該來的終究還是來了 度過焦躁不安的一整周,學徒老人家我的不安感等比級數的襲來,自3/19寫了第一篇關於<巴克萊銀行:倉促撤退>的報告,看到市場上的機構法人有如大洪水、地震來臨前夕開始竄逃撤退。 海湖莊園協議 接著,在3/31與4/2兩天接著寫了川普與他的財經團隊在海湖莊園豪
Thumbnail
空單爆天量、技術指標超賣、情緒恐慌到極致:美股嘎空行情有機會啟動嗎? 重點摘要: 技術面極度超賣,反彈條件醞釀中,但尚未明確止穩 SPY 與 QQQ 的重要指標,如MACD、KDJ、RSI等指標進入極端超賣區,但尚未出現底部鈍化或明確反轉訊號,技術面仍屬空方主導。 連續出現跳空缺口,空方動
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
Thumbnail
前陣子的某個機緣, 我踏入了 重修舊好 a clean, well-lighted place , 這是一個隱身在台北車站熱鬧街頭裡的小房子, 我還記得那時第一次打開門的震撼, 裡頭坐滿的是我們經常看見,又被我們故意視而不見的面孔, 但坐在重修舊好裡的這些街頭流浪者, 又有著平常看不到的
軟體開發中,我們經常會遇到各種令人抓狂的設計問題。有時候是趕進度的壓力讓我們妥協了設計質量;有時候是忽略了好的設計原則,結果掉進了各種反模式的坑裡。今天我們來繼續聊聊幾個常見的反模式。 寫死 Hard Code 直接將資料值或邏輯硬寫死在程式碼裡,當需求變更時,修改這些 Hard Code
Thumbnail
本文探討了不同情境下優化代碼的建議。透過實際的代碼示例,幫助程式設計師提升程式碼的可讀性和可維護性,適合各類型開發人員參考與應用。
Thumbnail
改稿真的不是一件需要太多情緒的事,把錯的挑出來、改掉,就這麼簡單!很少有什麼「大錯」需要去爭執誰對誰錯。不過真的滿多時候鬼遮眼或是偶爾真的會發生某種「明明前一版是對的,這一版居然是錯的」的鬼故事,把問題找出來解決就好!
Thumbnail
如何提升效率?從職場到生活,運用「標準作業程序」(SOP)讓你不再手忙腳亂。 學會打造你的「高效SOP」,告別瞎忙人生,迎接更從容自在的工作與生活吧!
這篇文章描述了作者對於無聊、失望和人際關係的困惑和感受。文章中運用了大量的比喻和隱喻來描述情感,呈現了一種受傷和無助的心境。
Thumbnail
作為一個愛品嚐各式美食的人,吃貨的本性使然,我每天都會用牙線清理牙縫,確保口腔衛生,這樣才能吃得常常久久。但市面上牙線棒琳瑯滿目,到底該如何選擇呢?🤔 我個人在挑選牙線棒時,會優先考慮以下幾點: 是否易於操作: 線體是否柔軟順滑,能輕鬆穿梭牙縫,不會卡牙或斷裂。 清潔效果: 是否能有效清潔牙
Thumbnail
這本書如果是剛看完《Clean Architecture》這本書,想要直接看答案怎麼實作,是可以當作一個起始點,但我會比較建議,自己循著書中前幾個章節提到的 principles,思考看看怎麼設計出一個符合大多數 principles 的方案,這會比較有趣。
Thumbnail
當你剛進入職場時,可能會覺得工作效率低,事情多且繁瑣。這篇文章提供了3種簡單的優化方法:模板化、流程化和清單化,可以幫助你顯著提高工作效率。
Thumbnail
該來的終究還是來了 度過焦躁不安的一整周,學徒老人家我的不安感等比級數的襲來,自3/19寫了第一篇關於<巴克萊銀行:倉促撤退>的報告,看到市場上的機構法人有如大洪水、地震來臨前夕開始竄逃撤退。 海湖莊園協議 接著,在3/31與4/2兩天接著寫了川普與他的財經團隊在海湖莊園豪
Thumbnail
空單爆天量、技術指標超賣、情緒恐慌到極致:美股嘎空行情有機會啟動嗎? 重點摘要: 技術面極度超賣,反彈條件醞釀中,但尚未明確止穩 SPY 與 QQQ 的重要指標,如MACD、KDJ、RSI等指標進入極端超賣區,但尚未出現底部鈍化或明確反轉訊號,技術面仍屬空方主導。 連續出現跳空缺口,空方動
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
Thumbnail
前陣子的某個機緣, 我踏入了 重修舊好 a clean, well-lighted place , 這是一個隱身在台北車站熱鬧街頭裡的小房子, 我還記得那時第一次打開門的震撼, 裡頭坐滿的是我們經常看見,又被我們故意視而不見的面孔, 但坐在重修舊好裡的這些街頭流浪者, 又有著平常看不到的
軟體開發中,我們經常會遇到各種令人抓狂的設計問題。有時候是趕進度的壓力讓我們妥協了設計質量;有時候是忽略了好的設計原則,結果掉進了各種反模式的坑裡。今天我們來繼續聊聊幾個常見的反模式。 寫死 Hard Code 直接將資料值或邏輯硬寫死在程式碼裡,當需求變更時,修改這些 Hard Code
Thumbnail
本文探討了不同情境下優化代碼的建議。透過實際的代碼示例,幫助程式設計師提升程式碼的可讀性和可維護性,適合各類型開發人員參考與應用。
Thumbnail
改稿真的不是一件需要太多情緒的事,把錯的挑出來、改掉,就這麼簡單!很少有什麼「大錯」需要去爭執誰對誰錯。不過真的滿多時候鬼遮眼或是偶爾真的會發生某種「明明前一版是對的,這一版居然是錯的」的鬼故事,把問題找出來解決就好!
Thumbnail
如何提升效率?從職場到生活,運用「標準作業程序」(SOP)讓你不再手忙腳亂。 學會打造你的「高效SOP」,告別瞎忙人生,迎接更從容自在的工作與生活吧!
這篇文章描述了作者對於無聊、失望和人際關係的困惑和感受。文章中運用了大量的比喻和隱喻來描述情感,呈現了一種受傷和無助的心境。
Thumbnail
作為一個愛品嚐各式美食的人,吃貨的本性使然,我每天都會用牙線清理牙縫,確保口腔衛生,這樣才能吃得常常久久。但市面上牙線棒琳瑯滿目,到底該如何選擇呢?🤔 我個人在挑選牙線棒時,會優先考慮以下幾點: 是否易於操作: 線體是否柔軟順滑,能輕鬆穿梭牙縫,不會卡牙或斷裂。 清潔效果: 是否能有效清潔牙
Thumbnail
這本書如果是剛看完《Clean Architecture》這本書,想要直接看答案怎麼實作,是可以當作一個起始點,但我會比較建議,自己循著書中前幾個章節提到的 principles,思考看看怎麼設計出一個符合大多數 principles 的方案,這會比較有趣。
Thumbnail
當你剛進入職場時,可能會覺得工作效率低,事情多且繁瑣。這篇文章提供了3種簡單的優化方法:模板化、流程化和清單化,可以幫助你顯著提高工作效率。