从0开始做saas - 应用架构和基础架构的设计思路

(技术兄弟们帮忙给个关注,大家一起讨论)

当我们选择了用微服务架构去设计一个 SAAS 系统时,我们从一开始就应该考虑项目的架构,当划清了业务边界后,技术边界会变得清晰。接下来就可以考虑整体项目架构的设计了

原则一:边界不可能绝对清晰,对不同的意见应持吸取态度,是否采纳受当前阶段影响

原则二:公共部分的代码抽象类型要细分:业务类、基础类

原则三:少数派不构成公共,多数派不决定所有少数派

下面是一张参考项目架构描述了一个项目的内部细节:

以上主要描述了如何抽象公共包的思路,粒度还是比较粗糙的, 仅供参考。

内容主要分业务代码、业务公共代码、基础框架代码、基础框架服务治理依赖、基础框架平台级公共业务依赖。

其细节大致涵盖了日常工作中的大部分场景,并解决关于 dto\vo\feignclient \基础框架等如何管理的问题,及相关争执。

不成熟的架构设计,往往会深入自己的世界中,与外界不同意见唯一的交流是争执,例如有人说 共享feignclient 应该抽象成 jar 包, 也有反对意见说,对feignclient 的依赖过重,影响其他服务迭代。于是就争论了:

正方:feignclient 应该取消因为耦合严重影响其他服务迭代

反方:如果不耦合那么当改了接口的时候其他所有代码都要改

其实这个问题应该细化:什么样的 feignclient 会因为耦合而影响其他服务?有没有一些 feignclient 是允许被抽象成公共包的?

这个问题是有很大的争议的。 A little copying is better than a little dependency。对于依赖范围小的应该坚持复制为方向, 依赖大的才抽象成公共,最忌讳的就是不加思考一股脑全给抽象成公共,就两个系统间的业务常量也要抽象到 framework 里面自然是不适合的。

欢迎探讨。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爬上树顶

打赏可验证我能否靠此文财务自由

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值