Blade到底该怎么用

Blade 已结 1 7806
Jjddppz
Jjddppz 剑童 2019-11-27 15:08

一、该问题的重现步骤是什么?

公司要重构目前的系统,要以Blade的框架实现(要有工作流),并让我给出可行性方案(技术评估、开发难度评估、业务模块拆分),并且以权限管理(多租户)的具体实现为切入点开始以Blade框架重构。

Blade是什么?

Blade怎么实现的微服务?

Blade的具体业务写在哪里?

我应该怎么实现权限管理?

等等。。

怀着诸多问题我登陆了gitBlade看到了12个子工程,虽然每个子工程是有简单注释的,但是看了简介之后还是很疑惑:

blade / BladeX-Doc

blade / BladeX-Notice

blade / Archer

blade / ArcherUI

blade / Sword

blade / Saber

blade / BladeX

blade / BladeX-Tool

blade / BladeX-Boot

blade / BladeX-Biz

blade / BladeX-Biz-Archetype

blade / Flowable-Design


怀着这些疑问我下载了网盘中的文档,看了《SpringBlade开发手册-2.2.1.RELEASE.pdf》。看完之后说实话还是比较懵。SpringBlade是开源版本,然后企业版是BladeX。然后BladeX有cloud和boot两个版本。官方建议将详细的业务实现代码写在Blade-biz里面。

文章一半在介绍SpringBlade的使用,代码示例很近人,可是和BladeX还是有区别的吧。本来SPringCloud用的不多也不深,文档中关于cloud组件对比用这个不用那个个的时候很懵逼,然后看了很多BladeX的特性。很多不懂的。


二、你期待的结果是什么?实际看到的又是什么?

    

其实我就想问问,我想用Blade构建一个系统(仓储物流的项目:分为仓储和物流量的业务(含工作流、多租户)),应该怎么构建。是怎么个调用关系?


12个子工程和我这次重构的功能额该怎么对应和实现?

我们这次重构应该以什么代码结构去展现,并开展开发工作?


        主要是所谓的cloud和boot版本体现在哪里??Tool怎么调用使用?这下面这三个什么关系?

        blade / BladeX

        blade / BladeX-Tool

        blade / BladeX-Boot

        

        下面这个图是我自己的demo最好能用这种图展示一下我该如何构架这个系统并且分为几大模块,调用关系如何?

QQ图片20191127145711.jpg


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

    SpringBoot , Linux




1条回答
  •  admin
    admin (最佳回答者)
    2019-11-27 16:28


    《SpringBlade开发手册》分两部分

    第一是开源版商业版相同功能或者相同使用逻辑的部分

    第二是专属于BladeX功能的部分,名为《BladeX特性》

    所以开源版、商业版都可以看这一份文档,两者不一样的部分,我都在文档上做了备注说明


    当你要开发项目的时候,首先要做项目选型。

    1.如果你前端用vue,那就选Saber;如果前端用react,那就选Sword

    2.如果你项目小,不需要那么大体量,就选BladeX-Boot;如果项目体量大,需要做微服务拆封模块,那就选BladeX;

    3.如果项目体量非常大,有好几个组需要并行开发,则以BladeX为基础服务,每个组对应每个子系统选择BladeX-Biz,业务代码都写在这个独立的工程里。而BladeX-Biz-Archetype是项目骨架,用于快速生成一个定制的基础框架

    4.后端架构有一个统一的核心封装,适用于boot和cloud,他就是BladeX-Tool,我已经将jar包依赖推送到了nexus私服,如果公司有自行拓展,那就可以定制拓展BladeX-Tool,然后传到自己的私服进行依赖

    5.用到独立的代码生成,则选Archer和ArcherUI

    6.看文档用BladeX-Doc

    7.看一些公告说明看BladeX-Notice

    8.独立工作流设计器看Flowable-Design



    关于微服务项目的构建,若没有足够的经验,推荐简单的方式:

    1.按照功能模块拆封,但是不要拆的特别细  

    2.比如一个商城系统,你可以把用户拆成一个大模块,把商品拆成一个大模块,他们都是独立的微服务。两个相互独立,但有可以通过远程调用(feign、rpc等方式)获取对应服务的数据

    3.对于物流系统我没有做过,不是特别熟悉,但是你可以按照大模块来进行微服务拆分、分类。


    具体的架构你可以看下面的图,倒数第二层便是拆分完的每个不同的微服务,互相直接可以通过远程调用获取所需数据。

    image.png


    25 讨论(1)
提交回复