※ 引述《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, 表示需求根本就还没稳定到可以共同重构啊.