架构高手进,系统架构请教一二

likeUbuntu 发布于 2013/01/30 22:47
阅读 560
收藏 2

     本人遇到系统架构问题,一个是B2B,另一个是B2C的网站。。现在功能模块都是相同,如:销售书籍到国外。。问题是现在B2C做出来这个功能后,要把这个功能复制到B2B的网站系统上面。都是java开发的。代码复制粘贴是可以做到。。

      不过,考虑到这种方式,复制的代码量非常大。

      因为用户角色有点区别,所以,现在不知道如何做。如果提取同一个功能出来,那么就要做用户角色的判断了。。

      请问有什么好的架构吗。

    

加载中
0
疯狂的艺术家
疯狂的艺术家

将相同的服务抽象出来,以独立的服务运行,

每个项目都调用公共的服务。

说白了就是拆分工程

疯狂的艺术家
疯狂的艺术家
回复 @likeUbuntu : 其他外部系统和这个是2个回事,可以使用其他协议进行,目前需要重构的是内部协议。
likeUbuntu
likeUbuntu
回复 @木叶飞舞 : 强耦合的确也是没有问题的,同时考虑到与其他外部系统对接,可能需要稍微扩展一下。呵呵。
疯狂的艺术家
疯狂的艺术家
回复 @likeUbuntu : 可以耦合深些,都是同一个语言的,用些简单的协议接口就可以了,比如:rmi,觉得soa大材小用。
likeUbuntu
likeUbuntu
是的,就是面向服务了。不知道SOA能不能解决。。
1
血战
血战

核心逻辑抽取,形成独立的领域层供应用调用,差异化逻辑抽象成为接口,在不同应用中分别实现各自特殊业务逻辑。

核心逻辑指的就是你的功能模块,差异化逻辑指的是用户角色.

血战
血战
回复 @血战 : 回答这个问题真没意义,
血战
血战
回复 @likeUbuntu : 方法1:把领域层单独打一个jar包,作为应用程序包的引用包,怎么样单独打一个jar包?easy, 请使用度娘,正常人应该都能在20分钟内能够学会 方法2: 把领域层作为应用的一部分拷贝到应用的代码里,合成一部分,比如你在应用的程序目录里建一个core目录,然后复制黏贴java文件. 这个方法正常人5分钟能够学会
likeUbuntu
likeUbuntu
回复 @血战 : 您的意思是抽出核心的业务逻辑出来是本质,确实。。只是抽出来后,如何存在,虽然是形式,但是如何构建这个形式可能也会影响到扩展方面的问题。
血战
血战
回复 @likeUbuntu : 我感觉你过于拘泥于形式,我想无论是单独独立出来一个jar包或者是整个整个复制黏贴都只是一个手段而已,采用哪种方案本质上又有何差别呢,你要解决这个问题的关键点是在于核心逻辑能否独立存在,而不依托具体的应用!
likeUbuntu
likeUbuntu
是的,您的这个意见很好。但是,具体抽出来是作为单独的服务项目还是怎么弄呢。
0
捏造的信仰
捏造的信仰
鉴于这两个网站都是已经存在了的,你又不太可能重新写一个同时支B2B和B2C的网站代替它们,所以。。。要么先这样坐着,要么把相同逻辑的模块独立出来开发,打包之后分别部署到里。
likeUbuntu
likeUbuntu
您的意思是把相同逻辑的模块提取出来作为一个单独的项目,然后直接部署到服务器。还是打包成jar。然后放到各个的工程里面呢?似乎第二种情况才是您的意思吧、、
0
Monkey
Monkey
复制完了楼主就有没完没了的bug
likeUbuntu
likeUbuntu
bug应该不会很多吧。。因为是同一个jar。jar会统一升级。。
0
逆风_云
逆风_云

说到抽取出来的功能模块,无非就是商品、会员、订单。

0
专业打酱油
专业打酱油

你要考虑的是,两个网站以后谁来研发维护,谁来负责业务,是用一批人,还是不同批人,然后找他们了解网站以后大致的发展方向,然后你就会选择了。

如果是两批人来负责,建议完全分开!!

如果是一批人来负责,让负责B2B的这个人来决定怎么做!

个人不建议抽取功能,无论是B2B,B2C,以后都是用户主导,以后可能会分歧越来越大!

如果你不幸,就是负责B2B的那个人。。。你看看B2C的代码能用么,如果能用直接用,不能用重写吧!

专业打酱油
专业打酱油
回复 @likeUbuntu : 既然是两个项目,两个队伍维护是正常的。关键点还是在于以后,目前两个项目业务差不多,以后呢?大方向要把握住,才好做细节。在搞不清楚公司方向的情况下,建议不要动。 既然业务差不多,维护量应该比较小,自身的业务,应该是产品根据公司的大方向来做,怎么会没有时间呢。
likeUbuntu
likeUbuntu
现在在两拨人负责两个项目。。感觉开发和维护成本翻倍了。。因为,两拨人都要维护差不多的代码。。自身的业务逻辑可能就没有精力来维护。系统冗余性和复杂性成倍增加。。
返回顶部
顶部