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

2020-08-04 10:10:48 +08:00
 louieliu

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

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

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

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

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

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

另外一个小技巧是参数名尽可能中性,譬如 data 、obj 、dto 这种,这样复制过去根本不用改。
zqx
2020-08-04 12:03:50 +08:00
楼上的做法会出现,一个抽象函数形式参数是 data ,value,list,map,调用的人一脸懵
keepcleargas
2020-08-04 14:55:51 +08:00
@wangxiaoaer 你是对的
hitaoguo
2020-08-04 15:14:06 +08:00
如果这两个项目后期迭代还是同时新增相同功能的话,把相同部分抽出来吧。
比如你公共部分写好逻辑,进入页面就获取一个列表,具体怎么获取列表就在项目里实现。
dagouziwangwang
2020-08-04 15:26:41 +08:00
webpack5 module federation
wzzzx
2020-08-04 18:35:03 +08:00
我就说一点,命名一定要中性!我们也有俩类似的,不过在上传文件的阶段,一个上传 pdf,一个上传 png 。就因为名字不中性,根本没法 cherry-pick
luckyrayyy
2020-08-04 18:40:42 +08:00
中台了解一下,kpi 在向你招手
Kirsk
2020-08-04 18:41:42 +08:00
如果是业务逻辑不要复用 基础组件一定要复用 其实这个问题属于工程管理问题
BlackZhu
2020-08-05 10:38:38 +08:00
正好 我们老板叫我们把所有系统统合在一起,数据库随便换,表字段随便换 我估计我在来个 100 年就能开发完成吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/695429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX