※ 引述《purin88 (原來我是憤怒的鄉民)》之銘言:
: code review時,主管說暫存變數可省記憶體,不用一直建立變數佔記憶體,我就說"重
: 構"這本書作
: 者建議別這樣做,我就拿下面這個"重構"作者的網址
: https://sourcemaking.com/refactoring/split-temporary-variable
: 他就說這個作者有問題,說我跟他寫一樣出去別人
: 會笑我
: 接著,我程式有用簡單工廠模式,就像head first design patten的內容一樣建立pizza
: 店的工廠,他又
: 說為什麼要建立抽象的pizza店,建立A pizza加盟店,B pizza加盟店,我說每間pizza店
: 產生pizza囗味,方法不同,他又說建立A pizza店,B pizza店
: 產生物件浪費記憶體,為何不用switch case判定
: 是A或B,直接寫各店pizza的作法及口味,產生pizza的作法何必封
: 裝在A pizza物件,或B物件中,全寫在pizza這個程式中,寫一個類別靜態方法回傳pizza
: 一樣的,他沒看過design patten,也覺得四人幫在亂寫一通,建立物件是浪費記憶體
: https://rongli.gitbooks.io/design-pattern/content/chapter1.html
: https://dotblogs.com.tw/joysdw12/archive/2013/06/23/design-pattern-simple-fact
: ory-pattern.aspx
: 然後談到建立物件,我是用set get的方式設置參數,他就覺得為什麼不用建構子把好幾
: 個參數丟進去,我一樣拿出
: https://sourcemaking.com/refactoring/smells/long-parameter-list
: http://teddy-chen-tw.blogspot.tw/2014/04/3long-parameter-list-divergent-change
: .html?m=1
: 重構的作者是建議參數不用丟太多,建立一個物件,
: 設定物件的值,把物件丟進建構子,或方法參數中,然後我這樣跟我主管說,他又說我沒
: 腦袋嗎
: 沒辦法判定這個作者有問題
: 參數本來就全丟給建構子,讓建構子去塞,即便
: 參數很多也沒關係,說我物件導向沒學好
: 反正一直在對我人身攻擊,即使我提到重構
: 設計模式,對他來說就是爛書,作者亂寫
: 請問我該如何是好?
我重構的方法是用樣板簡單工廠合併
1.模組由樣板實作
2.產品由工廠實作
在工廠階段通過參數switch決定要什麼樣板
並實作樣板內容
我認爲你老大要的是動態時期注入什麼方法
這的確在初期會減少記憶體,在測試上也比較彈性
再來我會開始定義領域物件,透過IResult泛型做統一回傳class,並定義該工廠的Reapon
se class裡面定義不同樣板Domain class,
重構以後程式結構大概如下
http://i.imgur.com/XSxp7Pv.jpg
我重構得前提是維持住現有的商務邏輯,透過封裝和釐清權責後再重構,先決定領域,將
相關的領域從原本大雜燴的程式抽離,將共同部份放到樣本主類別,子類別決定細節,工
廠階段則決定要何種子類別。
這樣閱讀性和效能說真的比原先好多
我重構也會找組長和長官討論多請益,基本上codereview前先討論,並能說明該方法好處
在哪,我想不會被刁難