Re: [請益] 這種情況要怎麼重構
※ 引述《vi000246 (Vi)》之銘言:
: 我現在遇到一個情況 同時跟其他人開發很相似的功能
: 舉例來說 我跟B同時開發兩個電商網站
: 一個叫博客來,一個叫蝦皮好了
: B已經建好博客來商品列表頁面
: 我也要建立蝦皮的商品列表 想把B建的博客來頁面拿來用
: 因為相似度很高,打算把頁面共用的邏輯抽出來
: 放到common lib
: 但是這時B也在開發中
: 如果我重構博客來頁面,他要把code merge回博客來時就要修很多衝突
: 這時我該做的是,直接複製博客來的邏輯,先把蝦皮商品列表建出來
: 等兩邊網站都完成,再來重構嗎?
: 因為現在程式成長幅度已經有點誇張了
: 單個檔一千行程式碼
: 我怕等兩邊都完成再重構,會花更多時間
: 現在就重構會造成merge衝突,而且兩邊開發進度也不一樣
: 他寫完的code我要用,就重構他的code
: 可能會重構到沒完沒了
: 遇到這種情況該怎麼辦呢?
: 想問有比較好的方法嗎
如果專案有deadline的壓力建議是先各自發展以不相互影響為前提,最後再用剩餘時間開一個分支做重構。其實這就是在規劃專案時沒有一個主要主導的設計人,沒有定義從系統到功能的分工,導致代碼重工,而且缺乏溝通。
真的建議未來有機會在主導你還是要自己學會定義好工作,先學習不寫code就可以訂出功能以及架構。我自己工作後常常遇到工程師很喜歡自幹,還沒開始就急著寫code,而不是開始溝通定義架構統合,還有彼此在工作的時候還是要切記不要去做重構這件事,除非所有的規劃才剛開始,或是你可以保證在對方繼續做前就全部重構完,否則根據經驗你們就會一直陷入無限重構中。
--
大大的建議一針見血 的確是分工不佳及缺乏溝通的關係
現在只能盡量讓專案維持現狀別再膨脹了
同感啊,根本不是怎麼重構,是一開始就沒搞架構的角色
推這篇
3
其實我真的不懂為什麼要急著重構 有好處嗎? 一般而言,重構都是發生在農閒的時候 就是沒有新案子在趕,老闆又要想辦法把人力資源給排滿 以免被上面丟一坨賽過來的最好理由16
1. 你不應該去動別人開發中的 code, 除非 pair 或你是有被授權的人. 2. 你可以使用他的 code , 建 common, 但你不應該改回他的部分(理由1). 3. 假設改完會有衝突, 那表示你做的不是重構. 4. 如果完成再重構會花更多時間, 那表示你做的不是重構. 5. 你要用他的 code , 跟你要整理重構, 是兩回事.15
我這篇寫的跟原原PO的狀況無關 ※ 引述《tbpfs ( )》之銘言: : 其實我真的不懂為什麼要急著重構 : 有好處嗎? : 一般而言,重構都是發生在農閒的時候26
首Po我現在遇到一個情況 同時跟其他人開發很相似的功能 舉例來說 我跟B同時開發兩個電商網站 一個叫博客來,一個叫蝦皮好了 B已經建好博客來商品列表頁面 我也要建立蝦皮的商品列表 想把B建的博客來頁面拿來用
35
[討論] 重構跟kpi的考量假設以下情境 有個功能A、B都會用到相同邏輯,且有兩份重覆的code (沒有unit test保護,而且年久失修 要加入unit test會需要更多時程) 現在要加入C,也會用到相同邏輯 身為合格的工程師 應該會把ABC重覆的部份提取出來24
重構的幾個迷思覺得最近很多文章都有些不求甚解的問題,來寫點論述。 1. 重構不是什麼了不起的事情 2. 變更程式碼,重寫舊的程式碼成自己爽的樣子,不一定是重構。 3. 重構是一種相對安全的工具型開發方法論, 但仍然有不少風險跟誘惑。20
Re: [討論] 所謂的開發強者是怎麼樣子的?^^^^^^^^^^^^^^^^^^^^^^ : 管理 1000+ servers、每年幫公司節省一百萬美金(?) machine cost : 1. 硬實力上 : 他很擅長在不同專案、codebases 中穿梭,幾天就能看穿並理解背後的邏輯和設計脈絡 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17
Re: [討論] 重構之前要寫測試 不然不要重構這就是TAD, 一般做法是假設以前人做的是對的 拿以前的output當測資 避免以後的output跟預期結果不同 技術面的錯誤→沒有防呆/沒有釋放資源/overflow/沒有check 這應該不在討論範圍內, 也有客觀標準 行為與邏輯的部分才是有爭議的, 要嘛根本沒規格只有口傳11
Re: [請益] 該辭職嗎?原文吃光~~ 爛系統無所謂,我認為你有能力就接起來重構它,重構過程中累積的經驗是你的, 就算換工作別人也拿不走,做到現在從一般軟體工程師變成全端系統架構師 ( 包含軟硬體規劃),收入也從 70/y 變成 300+/y (包含一些跟資訊相關的被動收入), 如果能力有限接不下來,那你的天花板大概就這樣了。2
Re: [討論] 重構之前要寫測試 不然不要重構人生在世,吃飯跟拉屎都是要做的,應該沒有人會說, 要先吃飯不然別拉屎,還是先拉屎不然別吃飯。 改扣就是改扣,框個名字自稱叫重構, 是不是不知道,但即使是重構,本質還是改扣。 測試是為了改扣順利,不寫測試還是可以改扣。