最近有这么一个需求:本来有一套代码,给A公司部署好了,现在要给B公司部署一份,但是B公司会有一些不一样的东西。(下面称为A代码,B代码)
这个问题苦恼了我许久,毫无疑问最先想到的就是创建一个新的分支就好了。但是这样后面会有一个问题:如果我要修改一些公共的代码怎么去解决呢?
如果按照上面的拉取一个分支,其实和新建一个项目没啥区别,后面如果修改了代码基本上没办法去合并,因为你总会冲突,只要改过同一个文件就会冲突。
这个问题直到现在也没能有一个万全之策,目前我的解决办法是:前端加权限,后端新增文件。
前端定义一个全局变量(存到window里面,window.flag),定制化的位置判断这个变量等于什么,从而做出对应的操作。
后端定制化的内容全部在新的分支里面新增.java文件来实现。
后面又和同事讨论了一下,以后如果有这样的需求,最好的做法如下:
1、等到A代码完全上线结束,也就是bug没了,需求没了,这时候去定制化才能做到最少的冲突。(但这个好像不现实,毕竟打工人没什么话语权)
2、使用权限的方式来定制,前后端都使用变量来判断。但是这样有个问题,如果你只需要定制两份还好,如果很多的话,代码就会写的很恶心了。
3、等待A代码成熟了,直接复制一份,然后从此独立,其实这也算是不错的解决办法,但是前提是要等到A成熟,不然在走向成熟之前,每次都要修改两次。
其实这个没有完美的解决办法,最好的就是不要操之过急,把一份代码完善好后面改起来就简单一些。我们这个就是太着急了,A代码还不稳定,然后又要写B代码,人都傻了。