楼主:
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, 表示需求根本就还没稳定到可以共同重构啊.
作者:
allenxxx (fufuxxx)
2020-06-27 01:25:00当我极菜时,曾经有两个前辈一个很不喜欢用oo,另一个极喜欢,结果那位oo派的不知发什么神经私自去大改另一位程式被火掉,因为原作者不肯继续维护除非老板给交代真的别随便动人家东西,没有开发者或上级授权的话
这代表本来A,B间就有良好的沟通吧 不然会有lib, build,design pattern使用不一样的问题 正常来说都是更花时间的就是因为完成再重构 更花时间 才会需要先MERGE 弄出common lib吧等等 你要说的是 先重构再完成吧?先完成A,B再重构的时间>先重构A部分逻辑给B引用的时间两者应该都可以算是重构 第一个是重构A的comm lib部分第二个是重构AB 两者功能上都没太大的异动不太能理解 以时间作为重构的定义基准你的先完成指的是啥 先各自完成?还是先完成A COMM LIB?