急!急!急!急!急!代码一致性怎么解决???

ヘ小女子 发布于 2017/07/25 16:39
阅读 489
收藏 1

    公司是卖产品的,有一个核心产品项目A;公司谈了浦发卡,招商银行,农商,然后从产品A,拉出了Ap(浦发卡项目)、Az(招商银行项目)、An(农商项目)三个分支,进行开发,因为客户会定制化一些需求,而A产品项目有的功能,保持不变。或略做改动。。。

    请问这种情况,怎样对代码进行管理。。比如如果产品项目A发现了BUG,就需要修改A、Ap、Az、An四个项目,有没有办法可以只修改一份代码,做好代码的一致性?

 

    目前公司都没有想到好的解决方案,必须在每个项目上都投入大量的人力。

加载中
0
AutoPlus
AutoPlus

只可意会不可言传


strcut All {
  a,
  b,
  c,
  d,
  e,
  f,
  g
}

enum A {
  A, B, C, D, E, F, G
}

enum Ap {
  A, B, C, D
}

enum Az {
  B, C, D, E, F
}

enum An {
  E, F, G
}

For Ap:
  while true {
    switch (kind) {
    case A:
      // TODO
    case B:
      // TODO
    case C:
      // TODO
    case D:
      // TODO
    default:
      break
    }
  }

For Az:
  while true {
    switch (kind) {
    case B:
      // TODO
    case C:
      // TODO
    case D:
      // TODO
    case E:
      // TODO
    case F:
      // TODO
    default:
      break
    }
  }

...

 

0
iGeek
iGeek

用Git钩子

0
DeMoNHaDeS
DeMoNHaDeS

如果还未开始开发,可以这样设计。分为A,p,z,n 4个项目。A产品作为一个产品,也作为一个核心模块提供服务,其他项目也作为模块与A模块一起提供服务。A与p组成Ap,以此类推。

如果已经分支了,那就做好管理吧。分为A产品组和项目组,项目发现产品的bug就提到产品,产品组的bug fix也提到所有项目上。

0
zzuqiang
zzuqiang
一楼说的解决方案已经不错了
0
zb1480825453428
zb1480825453428
把客户化的东西放到一个包中扩展不就得了。
0
开源春哥
开源春哥

这也算是一个很普遍的问题,技术架构不同,业务场景不同,可能的解决方案也不同。我建议题主目前的做法先做好源代码管理,代码不要乱掉。

比如每个客户的每个版本都要打标签,修复bug的话,从标签上打分支出来修复。修复的bug及时合并到主代码库中。

后面可以考虑在技术架构上做一些调整:
1. 比如是否可以将功能做成选项开关,不同的客户使用不同的配置文件。
2. 是否可以来打包的时候做文章,不同客户的打包选项不同。
3. 如果有可能,可以考虑扩展机制。我们的产品都是PHP的,php本身可以热加载,我们有自己的扩展机制,给客户做定制,其实是给客户的一个扩展代码。我们的代码结构上一套主干代码 + 若干扩展。没有分支。
不知道你们的开发语言是什么,供参考吧。

0
MockMan
MockMan

就目前来看,微服务貌似能满足你的需求

0
ヘ小女子
ヘ小女子

我把目前客户新增的功能,作为模块化功能项目开发?然后以jar包的形式导入可以吗?我不知道页面会不会有问题。

返回顶部
顶部