LeSS in Action - 壞味道

閱讀時間約 1 分鐘
當我們使用主幹開發(Trunk-based Development)、以及驗收測試驅動開發(A-TDD)之後,所撰寫的程式碼會逐漸的變多,也因此我們會開始注意到程式碼有壞味道(Code Smell)的出現。

重構與壞味道

在驗收測試驅動開發的方式下,我們每一次的修改都是漸進的。每當一個步驟(Step)完成(Done)時就會進行重構調整,以利於下一個步驟的修改來逐步完成功能。
這也表示,我們有非常多機會重新檢視(Review)之前撰寫過的程式碼,得益於這樣的開發方式,我們很容易會觀察到壞味道的出現,進而將這些可能會造成未來維護困難的地方改善。
除此之外,我們會採用結隊程式設計(Pair Programming)的方式,這讓我們在開發過程中隨時都在 Code Review(程式碼審查)並且更快的發現壞味道。

Top-Down 的視角

在驗收測試驅動開發的方式來看,我們在實現功能的時候是由上而下(Top-Down)的方式,以使用者的角度觀察開始,逐步地完成細節。這樣的方式跟以往我們在開發軟體的方式差異非常大。
以往我們會希望了解系統(或者功能)的全貌,並且完整的設計(Design)所需的類別、介面之後,才開始實現功能。這樣的視角是由下而上(Bottom-up)的方式,我們會像堆積木一樣把每一個零件設計好組裝出來。
然而在敏捷開發中,我們會嘗試先使用最容易的方法(Make it Work)將預期的成果呈現出來,並且逐步的切割成小的零件(Make it Right)。這樣做的好處是,如果沒有需要重複使用,那麼只需要等待需要複用的時候進行重構即可。
基於這樣的理由,我們隨時可以在衝刺(Sprint)結束後重新安排任務,即使功能的細節實作並未完成(Finished)也能夠運作,更容易的對應變化而「敏捷的改變」
重構是為了下一次的修改而準備,當我們的程式碼都是被測試以及可以正確運作時就是有用的程式碼。

封面圖片使用 UnsplashBattlecreek Coffee Roasters 的作品,這系列的文章只是課程的一小部分,因此並無法完整涵蓋所有概念以及精神,看關於技術的主題可以到弦而時習之找找靈感。
為什麼會看到廣告
53會員
40內容數
軟體工程師逐漸變成一個熱門的職業,當我們進入這個職業之後應該要具備怎樣的技能才會在工作上更加順利呢?這系列的專欄會分享日常工作中的經驗以及一些案例分析,讓我們一起努力成為一位更優秀的軟體工程師吧!
留言0
查看全部
發表第一個留言支持創作者!
蒼時弦也的沙龍 的其他內容
LeSS in Action - 主幹開發
閱讀時間約 1 分鐘
LeSS in Action - 持續整合
閱讀時間約 1 分鐘
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
防曬產品係數測試報告彙整(2024年)從2014年起,自己對於市售防曬產品的效能產生了濃厚的興趣。因為當時候發現不少產品的防曬係數其實標示是有問題的,像是原本應該是人體測試的SPF與PA數值,實際上沒有做,只用機器測試的數據來充當,但這兩者卻有很大的差異。像是防曬係數其實有強度、廣度與平均度三個面向需要一起判斷,但多數廠商並沒有完整標示
Thumbnail
avatar
邱品齊皮膚科醫師
2023-04-27
WWII in less than a minute.WWII in less than a minute. Cool video! Zelensky asked: Why did Ukraine start as red? 擇輪司機, 你自己本歷史不去讀, 正死橙!!🤣🤣🤣🤣
avatar
Mei Wechner
2024-02-24
從 Scrum 到 LeSS -使用者故事(三)講完了 Story 的拆解 其中提到了 Scope 那麼 Scope 是什麼呢? 以及伴隨著 Scope  很常聽到的 Acceptance Criteria (AC) 又扮演了什麼樣的角色? 0x00 回顧 在系列文章中的第一篇 From Scrum to LeSS — Roles
Thumbnail
avatar
Neo Kusanagi
2023-07-22
從 Scrum 到 LeSS -使用者故事(二)當 Story 被確定下來之後 要如何切割 Story  讓他們可以在 Sprint 期間能 Done 過去經驗我們都知道 當 Story 太大的時候要拆小 但問題就來了 小要小到多小 有可能小到 Task 嗎?
Thumbnail
avatar
Neo Kusanagi
2023-07-22
從 Scrum 到 LeSS -使用者故事(一)從一開始 Story 的出生 就會被放進 Product Backlog 經過漫長的等待 終於在某次的 Sprint 中被提到 Sprint Backlog 接著透過獅子🦁及猿猴🦍們的努力 將 Coffin 轉換成 Code Story 終於蛻變成了 PSPI
avatar
Neo Kusanagi
2023-07-22
Lesson 8:兩種投資心態與策略原則(重要問題補充)要擺脫受壓榨的人生,最好的方法就是擁有專精的技術。—《做工的人》
Thumbnail
avatar
一郎
2018-06-12
Lesson 7:兩種投資心態與策略原則(下)依法不依人。依義不依語。依智不依識。依了義經不依不了義經。 — 釋迦牟尼
Thumbnail
avatar
一郎
2018-06-04
Lesson 6:兩種投資心態與策略原則(中)王右軍目陳玄伯;「壘塊有正骨。」 — 世說新語 壘塊是土泥的凝結,這裡係指心中憤積鬱結的意思。王羲之眼中的陳泰,總是義憤填膺,對於政治與社會上不正之事滿懷不平,有著正義凜然的風骨。
Thumbnail
avatar
一郎
2018-05-29
Lesson 34:最後的濾網—現金流量表(五) 從弗朗特那裡,我知道了什麼是暴君作為。他專制霸道、善於嫉妒、偽善和口是心非,也知道了我們中間那些被稱為上等人的人,一般總是缺乏仁愛之情。 — 奧理略《沈思錄》
Thumbnail
avatar
一郎
2018-05-28
Lesson 2:價格位階的意義(一)不要急著進場買股,等我指示開始實戰練習,再開始操作。 市場不會跑掉不用擔心。當然我對你並沒有任何強制力,但這是我認為對你最好的建議,你可以選擇聽或不聽。我們今天要談的是價格位階的意義,以及位階的決定方法,也就是「線的畫法」。
Thumbnail
avatar
一郎
2018-05-23