这样的架构。。。请各抒己见

__loong 发布于 2015/06/02 22:29
阅读 1K+
收藏 0

换了一个图。这个图可能更清晰一些。

对于这三个应用。每一个都要写service、serviceImpl、Controller、Dao、DaoImpl。

加载中
0
0x0001
0x0001
这个图应该是不完整的,如果说只有一个cms的话,有点过度设计的嫌疑,如果还有其他系统,就合理了
如果还有其他项目也使用了操作数据库这个模块, 那么他们只需要使用restful的api就行. 操作数据库那里分库/分表等操作对使用api的人来说都是透明的,这样方便几拨人一起干活,你改你的项目,我优化我的数据库
cms前端和后端分离也是可以的,因为这样做的话,前端可以使用更方便,快速的技术来实现,也是方便几波人一起干活,比如使用nodejs,前端就可以直接使用后端暴露的接口,两拨人可以分别干活,做后端的不需要管前端怎么显示,做前端的只需要组合使用后端restful的接口就行
__loong
__loong
回复 @0x0001 : 我们是每天早上6点自动部署提交到svn的代码。。所以具体情况可能要具体分析了。。
0x0001
0x0001
@大大菠萝 我们现在的方式就是共享jar包,其实不麻烦,开发的时候使用关联工程的方式开发,发布的时候一个ant脚本就打包了
__loong
__loong
回复 @0x0001 : 恩。明白了。如果打成jar包的话。pojo是随时添加或者更改的。到时候重新打包也挺麻烦的。。
0x0001
0x0001
回复 @大大菠萝 : 如果是一拨人干这个事情,我觉得这样设计有点多余,没提升效率. 如果一定要设计成这样,你也改变不了的情况下,你可以使用第三个工程, 将pojo放里面,打包成jar后两个工程依赖,这样可以少些一些
__loong
__loong
恩。cms只是比喻。 好的。。谢谢 了解了。 只是现在我在添加功能的时候。要在cms前端跟数据库层都添加pojo,还有service,controller。觉得有点不对劲。可能这种代码冗余是允许的吧。我少见多怪了。
1
岁月无痕
岁月无痕

换个说法,叫做合理的代码冗余。

各个系统分开,解耦和,互相之间不影响,即使有代码重复也是值得的,总比几个系统都混在一起的好

__loong
__loong
回复 @岁月无痕 : 对于后面接手的是不太友好哈。。呵呵。。了解了。多谢
岁月无痕
岁月无痕
回复 @大大菠萝 : 既然是谈架构,就不要局限于编程语言,就目前我接触到的项目,一整个架构里面,编程语言不止一种的。php做业务逻辑,消息服务单独抽出去用Go语言写的,支付系统用Java写的,数据统计、分析用Hadoop、storm架构,数据挖掘用 spark等。。。想想,如果这些东西都放在一起,后面接手的只有去shi了。。 架构,不要局限于某一语言
__loong
__loong
你觉得 java 还有更优雅些的实现方式么?或者其他语言有类似的可以借鉴的么?还是说大型点的应用都需要这样呢?没怎么做过大型的应用。所以想多聊聊。。谢谢哈
1
hantsy
hantsy

可以考虑使用 RESTful 架构,中间的 SpringMVC 输出 REST API。

底下的前端,后端界面(底下两个 Spring MVC)全部可以用 NodeJS 或者 Apache 运行 SPA 程序(AngularJS, ReactJS 等)代替。

这种对现多种设备(PC,Mobile)支持,应该是最基础的。我之前几个项目,比这个复杂的得多,相当这个图中间的 Spring MVC 背后还包含有几个应用(与界面应用程序完全隔离),通过消息通讯。

看看现在的 MicroService 模式吧。



__loong
__loong
好的。我去看看~谢谢
0
小新1
小新1
比较流行的是Struts,spring,hibernate或者mybatis三大框架来做吧    springmvc也是可以的
__loong
__loong
也就是代码重复率就是这么高?cms后台跟访问数据库的cms都需要pojo
0
seandu
seandu

我也很好奇,我们公司就一个spring mvc就做完了,用3个肯定会有大量重复的代码呀

__loong
__loong
说是为了分散压力。你们公司项目平时多少人在线?
0
qieren
qieren
哪些代码重复?....我理解是不是一个完善应用的action(前端显示), server(服务层), dao(数据库操作)这三层分开了?中间用服务(REST)打通...而图中的springmvc就是暴露服务的工具(配置即可)
__loong
__loong
不知道是不是我没搞明白。现在这个应用。比如 cms后台。跟数据库曾。都有service。dao。pojo。
0
谭恒杰
谭恒杰
前面评论都说的很明白,有一点就是按楼主图示来看,数据访问层应该是用restful做的专有的api,我是不提倡这点的,通用性太差不好做迁移。
__loong
__loong
所以在想有没有另一种实现方法。
0
戴的天
戴的天
合理,单个节点不至于影响到整体
0
如比如比
如比如比
编码是否重复不是设计者所考虑的问题。服务全挂才是头疼的事。
0
louis99
louis99

一般做restful这种架构的多数为了,前后端分离. 还有能够支持多种前端架构.  其实这种架构为了容错也就是拍脑袋想出来的吧. 数据库一挂全部无用.

返回顶部
顶部