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