服务端项目结构与模块化架构设计的构建思路

为何要模块化

我(皱眉):这么多需求不得做一年,客户等的了么

领导(微笑):我们现在还没有客户

我(黑人问号):???没客户哪儿来的需求

领导(微笑):产品自己想的

我(沉默):。。。

领导(微笑):我们先搞个平台出来,这样比较好拉客户,balabala

痛,太痛了,搁这自娱自乐呢,这种情况要怎么设计啊

  • 如果一开始设计的太完善太庞大,结果却体量不大并且只需要其中的一小部分功能,不但花费了大量的时间开发,同时可能由于需要部署大量无用但高耦合的服务而浪费服务器资源

  • 如果一开始设计的比较小巧精简,结果需要支持非常庞大的体量和非常多的功能,那就需要额外的开发工作甚至重构需求和逻辑,说不定还要推到重来

于是我就在想有没有一种方式能够做到 模块化:可以根据项目的功能需求和体量进行任意模块的组合或扩展

通过以下几块内容来搭建一个模块化高扩展的后端服务

那就设计一个服务端吧

为了让大家理解起来更方便,我就用几个功能模块(用户,沸点,消息)来作为示例

PS:示例基于IDEA + Spring Cloud

构建工具

首先是构建工具的选择

现在主流的构建工具基本上就是GradleMaven

一般最早开始学后端的同学都是习惯用Maven

而像我这种从Android转后端的还是Gradle比较好上手

构建工具的话其实两者都可以,大家可以根据自己的习惯来选择

不过我还是建议大家可以尝试一下Gradle

我后面的示例也是基于Gradle来构建

项目结构

那我们现在就开始创建项目吧

我们要创建的项目叫juejin,包含三个模块:juejin-user(用户)juejin-pin(沸点)juejin-message(消息)

结构1(不推荐)

Long long ago,这个世界上存在这样一种项目结构

每个模块是一个单独的项目,然后当时有10多个模块,而且还是我负责搭建的

现在想想,我真的是。。。想立马穿越回去,给自己来一个大嘴巴子

我给大家说说这种方式的优劣

缺点:

  • 多模块同时打开很卡

    • 每一个模块都是一个项目,模块多的情况下没办法同时打开,以一般公司的电脑配置,会很卡

    • 只能要改哪个模块开哪个模块项目,有新的要开就把已经打开的关掉一个

    • 有的时候刚关掉一个模块,突然想到有个地方漏改了,又把之前关掉的再打开,效率直接-50%

  • 版本管理麻烦

    • git管理也是多个项目,拉分支切分支也很麻烦

    • 有的时候一个模块需要修改就单独拉了一个分支,最后有部分模块有某个分支,有部分模块没有

    • 如果没有人专门做整理记录,这些分支大概率最后直接乱成好几副耳机线,就算有记录管理起来也是极其麻烦

优点:

  1. 无!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值