在上一篇文章中,透過分離主詞與動詞,定義出其他的物件與對應的行為,將不屬於當下物件的職責,拆分到其他的物件上。 在拆物件的過程中,還是一再強調,我們要把關注點放...
在上一篇文章中,介紹了先透過理解程式碼,加上註解與排版後,讓我們看了程式碼心情不會再這麼不爽。 也因為抽象思考完,用自己的話在註解來描述程式碼的目的與行為,所以...
上一篇文章,介紹了重構的第一步,就是建立測試。跨出了這第一步,才能確保後面的重構動作不會影響到結果。這也是為什麼本系列文章,需要先介紹測試的技巧、目的以及方式。...
上一篇文章中,介紹了如何透過一些靜態程式碼分析的工具,搭配品質指標的門檻,來快速找到系統中需要重構的程式。 也稍微的介紹了,重構目標的程式基本功能與樣式。 這一...
到上一篇文章為止,TDD中所需具備的基本測試知識,已經告一段落。 接下來要練習的,是重構的手法。 接下來幾篇文章,會跟各位讀者朋友介紹: 要怎麼找到需要重構的...
今天要分享的部分,是把一陀很類似卻又攤在程式碼中的判斷式,想辦法抽象化。例子會有點像[如何提升系統品質-Day8]重構-簡化判斷式,但相信這次舉的例子會更貼近大...
這次的目標一樣是用抽象地角度來看我們的程式碼,用人類的話來解釋程式碼的目的與行為,並且避免重複的程式碼出現。 [如何提升系統品質]系列文章連結 需求說明 我們有...
前面提到了許多篇重構的方式,都是偏向pattern或較大面向的設計重構,在面對比較大的系統包袱時,或許大家比較沒法子運用的得心應手,所以接下來會穿插一些誰都可以...
之前有提到,應該要抽象地去思考與設計程式。面對既存在的程式碼也是如此,如果看到的只是『一行一行』的程式碼,那就只是『見山是山』的程度。 許多好的軟體公司,都有c...
上次v3版本,我們將Entity, Service, Dao, Utility都放到了類別庫裡面,讓我們可以輕鬆的在不同專案中用同一份組件。雖然文章沒有獲得太多...
從重構的v1開始,介紹了原型糾結版,怎麼樣從糾結成一團的程式碼,將UI、Service與Dao的觀念獨立開來(請參考:重構– UI, Business logi...
上一篇的[如何提升系統品質-Day3]重構– DRY & Top-Down思考方式(1)文章因為篇幅限制,所以這一篇會將最後的幾個步驟完成,並看到重構後...
本篇文章接著上一篇的[如何提升系統品質-Day2]重構– UI, Business logic, Data access概念分開,繼續往下重構。 現實是殘酷的,...
程式寫的好與寫的不好,其實一直很難去定義出來。雖然可以透過一些Quality attribute以及相關的KPI來決定所謂的品質,但卻很難去解釋怎麼樣的寫法,會...
WEB 程式重構 你接手的案子,是不是剪不斷理還亂?看到就想砍掉重練呢? 但是從頭再來卻又不能保證功能一模一樣,而且老闆也不一定會給你時間。 除了擺爛讓網站程式...