Re: [請益] 這種情況要怎麼重構

作者: TonyQ (自立而後立人。)   2020-06-25 18:07:26
※ 引述《vi000246 (Vi)》之銘言:
: 我現在遇到一個情況 同時跟其他人開發很相似的功能
: 舉例來說 我跟B同時開發兩個電商網站
: 一個叫博客來,一個叫蝦皮好了
: B已經建好博客來商品列表頁面
: 我也要建立蝦皮的商品列表 想把B建的博客來頁面拿來用
: 因為相似度很高,打算把頁面共用的邏輯抽出來
: 放到common lib
: 但是這時B也在開發中
: 如果我重構博客來頁面,他要把code merge回博客來時就要修很多衝突
: 這時我該做的是,直接複製博客來的邏輯,先把蝦皮商品列表建出來
: 等兩邊網站都完成,再來重構嗎?
: 因為現在程式成長幅度已經有點誇張了
: 單個檔一千行程式碼
: 我怕等兩邊都完成再重構,會花更多時間
: 現在就重構會造成merge衝突,而且兩邊開發進度也不一樣
: 他寫完的code我要用,就重構他的code
: 可能會重構到沒完沒了
: 遇到這種情況該怎麼辦呢?
: 想問有比較好的方法嗎
1. 你不應該去動別人開發中的 code, 除非 pair 或你是有被授權的人.
2. 你可以使用他的 code , 建 common, 但你不應該改回他的部分(理由1).
3. 假設改完會有衝突, 那表示你做的不是重構.
4. 如果完成再重構會花更多時間, 那表示你做的不是重構.
5. 你要用他的 code , 跟你要整理重構, 是兩回事.
所以你要先搞清楚你要做的事情, 是解決你的事情,
還是幫別人改(你未必有取得授權的) code.
你拿別人的東西, 改成自己能用的 common lib,
用自己的 common lib, 這樣基本上應該不至於被靠北.
但去動別人正在開發的東西, 說穿了, 你知道人家在幹嘛嗎?
你權責上能對人家時程負責嗎?
或說穿了, 你可以負起 fix conflict 的責任嗎?
另外有個版友說重構是農閒的事情,
其實重構是越忙的地方越需要, 因為會忙通常就是沒在重構,
但是這篇原文講得並不是重構,
而是在僭越職責的前提底下自作聰明改別人的程式碼.
厲害的人應該是會抽出正確的 common,
當A 跟B都做完的時候, 拿 common 套回去不會很久的.
會被開發拖著走的 common, 表示需求根本就還沒穩定到可以共同重構啊.
作者: airtsubasa (偽學姊)   2020-06-25 18:22:00
會忙有很多原因,不合理的時程,不合理的專案成員!
作者: king22649   2020-06-25 18:28:00
4. 怪怪的
作者: vi000246 (Vi)   2020-06-25 18:41:00
TonyQ大說明得很清楚 感謝建議
作者: cplusplus426 (c++)   2020-06-25 19:37:00
大大真的強者
作者: qrtt1 (有些事,有時候。。。)   2020-06-25 20:27:00
不合理的成員丟溫泉,不要擋輸出。
作者: content71 (羅莉飼養中...)   2020-06-25 21:04:00
感謝,最近很有感受
作者: xo1100 (蝦蒸河粉)   2020-06-25 22:34:00
亂動別人code是行內大忌吧
作者: APTON (瑋瑋)   2020-06-25 22:45:00
推!
作者: Csongs (西歌)   2020-06-26 14:11:00
推調理列出*條理
作者: CloudyWing (孤單ㄉ翼)   2020-06-26 17:40:00
這篇講得很好,推
作者: lerdor (Lerdor)   2020-06-26 21:23:00
作者: allenxxx (fufuxxx)   2020-06-27 01:25:00
當我極菜時,曾經有兩個前輩一個很不喜歡用oo,另一個極喜歡,結果那位oo派的不知發甚麼神經私自去大改另一位程式被火掉,因為原作者不肯繼續維護除非老闆給交代真的別隨便動人家東西,沒有開發者或上級授權的話
作者: sharku (明珠求瑕)   2020-06-27 09:47:00
推這篇
作者: king22649   2020-06-27 12:42:00
這代表本來A,B間就有良好的溝通吧 不然會有lib, build,design pattern使用不一樣的問題 正常來說都是更花時間的就是因為完成再重構 更花時間 才會需要先MERGE 弄出common lib吧等等 你要說的是 先重構再完成吧?先完成A,B再重構的時間>先重構A部分邏輯給B引用的時間兩者應該都可以算是重構 第一個是重構A的comm lib部分第二個是重構AB 兩者功能上都沒太大的異動不太能理解 以時間作為重構的定義基準你的先完成指的是啥 先各自完成?還是先完成A COMM LIB?
作者: TonyQ (自立而後立人。)   2020-06-27 15:18:00
我會建議你試著把你想像中的重構描述, 就會知道落差了.我使用的重構定義文中已經描述過了, 請參照.
作者: king22649   2020-06-27 15:20:00
這滿有趣的 確實是值得學習。
作者: pttworld (批踢踢世界)   2020-06-27 19:45:00
如果對時間的定義包含測試則重構不一定比較快另外重構第一部有提到不遵守規則的重構坑越挖越大,整體時間反而是比較多的

Links booklink

Contact Us: admin [ a t ] ucptt.com