两个类似的项目如何更好的做复用(团队) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
louieliu
V2EX    程序员

两个类似的项目如何更好的做复用(团队)

  •  
  •   louieliu 2020-08-04 10:10:48 +08:00 3286 次点击
    这是一个创建于 1947 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.两个项目有大量雷同的代码 怎么能更好的复用? 比如把公共部分拎出来打个包? 2.如果需要合并到一个仓库里?怎么操作比较好呢?看到有使用 monorepos 来解决的 ?还有什么其他方法 或者各自优点是什么

    14 条回复    2020-08-05 10:38:38 +08:00
    dcalsky
        1
    dcalsky  
       2020-08-04 10:12:28 +08:00 via Android
    个人复制粘贴。团队抽象成库
    louieliu
        2
    louieliu  
    OP
       2020-08-04 10:18:27 +08:00 via iPhone
    @dcalsky 团队抽象成库当然是一种办法 但是我觉得合并为一个仓库然后去管理是更好的处理方式 这样可以复用的程度更大
    wangxiaoaer
        3
    wangxiaoaer  
       2020-08-04 10:37:14 +08:00   1
    作为一个过来人,我不得不说复制粘贴大法真香。

    曾几何时,我也想过做抽象,甚至考虑用一个库,通过不同分支或者不同的打包策略实现定制。

    可是现实很骨感,上面那种方式非常考验你的前期架构和设计抽象能力,因为需求是奇葩的,时间是紧迫的,这意味着有的时候不得不在原本应该属于核心共用的地方做定制,所以就出现了各种 ifelse,长久下来,你已经忘了这个抽象的玩意儿到底是干什么的。

    后来还是回归复制粘贴大法。

    当然,作为技术人员,追求高层次的抽象,实现软件层面的高度复用是我们的追求,但是面向工资编程,妥协是不可避免的。
    prolic
        4
    prolic  
       2020-08-04 10:50:19 +08:00
    copy 成 utils 文件解决,最灵活,需求满足不了还能改改
    dcalsky
        5
    dcalsky  
       2020-08-04 11:29:05 +08:00
    @louieliu 不矛盾,库的源代码本来也就是通过仓库来管理的。
    xuanbg
        6
    xuanbg  
       2020-08-04 11:37:52 +08:00
    公共库+复制粘贴才是王道。

    另外一个小技巧是参数名尽可能中性,譬如 data 、obj 、dto 这种,这样复制过去根本不用改。
    zqx
        7
    zqx  
       2020-08-04 12:03:50 +08:00 via Android
    楼上的做法会出现,一个抽象函数形式参数是 data ,value,list,map,调用的人一脸懵
    keepcleargas
        8
    keepcleargas  
       2020-08-04 14:55:51 +08:00
    @wangxiaoaer 你是对的
    hitaoguo
        9
    hitaoguo  
       2020-08-04 15:14:06 +08:00
    如果这两个项目后期迭代还是同时新增相同功能的话,把相同部分抽出来吧。
    比如你公共部分写好逻辑,进入页面就获取一个列表,具体怎么获取列表就在项目里实现。
    dagouziwangwang
        10
    dagouziwangwang  
       2020-08-04 15:26:41 +08:00
    webpack5 module federation
    wzzzx
        11
    wzzzx  
       2020-08-04 18:35:03 +08:00
    我就说一点,命名一定要中性!我们也有俩类似的,不过在上传文件的阶段,一个上传 pdf,一个上传 png 。就因为名字不中性,根本没法 cherry-pick
    luckyrayyy
        12
    luckyrayyy  
       2020-08-04 18:40:42 +08:00
    中台了解一下,kpi 在向你招手
    Kirsk
        13
    Kirsk  
       2020-08-04 18:41:42 +08:00 via Android
    如果是业务逻辑不要复用 基础组件一定要复用 其实这个问题属于工程管理问题
    BlackZhu
        14
    BlackZhu  
       2020-08-05 10:38:38 +08:00
    正好 我们老板叫我们把所有系统统合在一起,数据库随便换,表字段随便换 我估计我在来个 100 年就能开发完成吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4504 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 04:00 PVG 12:00 LAX 20:00 JFK 23:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86