iT邦幫忙

重構相關文章
共有 51 則文章
鐵人賽 IT技術 DAY 19
30天快速上手TDD 系列 第 19

技術 [Day 19]Refactoring - The End is the Beginning

從[Day 9]開始,一直到[Day 18],我們從最初不知道從哪開始重構,到現在程式碼變得高內聚、低耦合、可擴充、可讀、可維護,而且有了相關的測試保護,不再需...

鐵人賽 IT技術 DAY 18
30天快速上手TDD 系列 第 18

技術 [Day 18]Refactoring - Factory Pattern

上篇文章透過簡單的重構一個function,將相同的部份抽出判斷式外,讓不同的部份影響範圍最低。因此解決了我們有著重複程式碼的問題。 更重要的是,透過這一個過程...

鐵人賽 IT技術 DAY 17
30天快速上手TDD 系列 第 17

技術 [Day 17]Refactoring - Strategy Pattern

在上篇文章中,我們將各個物流商的物件,抽象化出來一個物流商的介面,這個介面提供了當下頁面物件所需要的功能: 計算運費 取得運費結果 取得物流商名稱 雖然頁面...

鐵人賽 IT技術 DAY 16
30天快速上手TDD 系列 第 16

技術 [Day 16]Refactoring - 介面導向

上一篇文章中,將原本散落在頁面,屬於物流商職責的部分,搬移填入到物流商的物件中,並且通過了最原始的Selenium測試,代表符合了使用者的需求。也通過了單元測試...

鐵人賽 IT技術 DAY 15
30天快速上手TDD 系列 第 15

技術 [Day 15]Refactoring - 食神歸位

前兩篇文章,我們先以當下物件的角度,思考屬於自己的職責是什麼。而不屬於自己職責的部份,該委託給哪個物件來進行。並思考清楚當下物件所需要的,究竟是什麼,接著不必去...

鐵人賽 IT技術 DAY 14
30天快速上手TDD 系列 第 14

技術 [Day 14]Refactoring - 驗貨

在上一篇文章中,重構第五式:「給你錢,趕快做」中,重點在於如何站在當下物件的角度,去思考自身職責該處理的邏輯,並思考非自身職責的部分,該委託給哪一個物件來處理。...

鐵人賽 IT技術 DAY 13
30天快速上手TDD 系列 第 13

技術 [Day 13]Refactoring - 告訴我,你要什麼

在上一篇文章中,透過分離主詞與動詞,定義出其他的物件與對應的行為,將不屬於當下物件的職責,拆分到其他的物件上。 在拆物件的過程中,還是一再強調,我們要把關注點放...

鐵人賽 IT技術 DAY 12
30天快速上手TDD 系列 第 12

技術 [Day 12]Refactoring - 職責分離

在上一篇文章中,介紹了先透過理解程式碼,加上註解與排版後,讓我們看了程式碼心情不會再這麼不爽。 也因為抽象思考完,用自己的話在註解來描述程式碼的目的與行為,所以...

鐵人賽 IT技術 DAY 11
30天快速上手TDD 系列 第 11

技術 [Day 11]Refactoring - 讓程式碼說話

上一篇文章,介紹了重構的第一步,就是建立測試。跨出了這第一步,才能確保後面的重構動作不會影響到結果。這也是為什麼本系列文章,需要先介紹測試的技巧、目的以及方式。...

鐵人賽 IT技術 DAY 10
30天快速上手TDD 系列 第 10

技術 [Day 10]Refactoring 起手式 - 建立測試

上一篇文章中,介紹了如何透過一些靜態程式碼分析的工具,搭配品質指標的門檻,來快速找到系統中需要重構的程式。 也稍微的介紹了,重構目標的程式基本功能與樣式。 這一...

鐵人賽 IT技術 DAY 9
30天快速上手TDD 系列 第 9

技術 [Day 9]Refactoring legacy code簡介

到上一篇文章為止,TDD中所需具備的基本測試知識,已經告一段落。 接下來要練習的,是重構的手法。 接下來幾篇文章,會跟各位讀者朋友介紹: 要怎麼找到需要重構的...

鐵人賽 IT技術鐵人 DAY 11

技術 [如何提升系統品質-Day11]重構-使用介面+迴圈取代不穩定的判斷式

今天要分享的部分,是把一陀很類似卻又攤在程式碼中的判斷式,想辦法抽象化。例子會有點像[如何提升系統品質-Day8]重構-簡化判斷式,但相信這次舉的例子會更貼近大...

鐵人賽 IT技術鐵人 DAY 10

技術 [如何提升系統品質-Day10]重構-合併重複的條件片段

這次的目標一樣是用抽象地角度來看我們的程式碼,用人類的話來解釋程式碼的目的與行為,並且避免重複的程式碼出現。 [如何提升系統品質]系列文章連結 需求說明 我們有...

鐵人賽 IT技術鐵人 DAY 9

技術 [如何提升系統品質-Day9]重構-簡化判斷式

前面提到了許多篇重構的方式,都是偏向pattern或較大面向的設計重構,在面對比較大的系統包袱時,或許大家比較沒法子運用的得心應手,所以接下來會穿插一些誰都可以...

鐵人賽 IT技術鐵人 DAY 8

技術 [如何提升系統品質-Day8]重構-抽象來看程式是否符合DRY原則

之前有提到,應該要抽象地去思考與設計程式。面對既存在的程式碼也是如此,如果看到的只是『一行一行』的程式碼,那就只是『見山是山』的程度。 許多好的軟體公司,都有c...

鐵人賽 IT技術鐵人 DAY 6

技術 [如何提升系統品質-Day6]重構-簡單使用interface之『你也會IoC』

上次v3版本,我們將Entity, Service, Dao, Utility都放到了類別庫裡面,讓我們可以輕鬆的在不同專案中用同一份組件。雖然文章沒有獲得太多...

鐵人賽 IT技術鐵人 DAY 5

技術 [如何提升系統品質-Day5]重構-跨專案使用類別庫

從重構的v1開始,介紹了原型糾結版,怎麼樣從糾結成一團的程式碼,將UI、Service與Dao的觀念獨立開來(請參考:重構– UI, Business logi...

鐵人賽 IT技術鐵人 DAY 4

技術 [如何提升系統品質-Day4]重構– DRY & Top-Down思考方式(2)

上一篇的[如何提升系統品質-Day3]重構– DRY & Top-Down思考方式(1)文章因為篇幅限制,所以這一篇會將最後的幾個步驟完成,並看到重構後...

鐵人賽 IT技術鐵人 DAY 3

達標好文 技術 [如何提升系統品質-Day3]重構– DRY & Top-Down思考方式(1)

本篇文章接著上一篇的[如何提升系統品質-Day2]重構– UI, Business logic, Data access概念分開,繼續往下重構。 現實是殘酷的,...

鐵人賽 IT技術鐵人 DAY 2

技術 [如何提升系統品質-Day2]重構– UI, Business logic, Data access概念分開

程式寫的好與寫的不好,其實一直很難去定義出來。雖然可以透過一些Quality attribute以及相關的KPI來決定所謂的品質,但卻很難去解釋怎麼樣的寫法,會...

技術 課程 : Web 程式重構

WEB 程式重構 你接手的案子,是不是剪不斷理還亂?看到就想砍掉重練呢? 但是從頭再來卻又不能保證功能一模一樣,而且老闆也不一定會給你時間。 除了擺爛讓網站程式...