核心代码,注释必读
// download:3w 52xueit com
vue 2.x 响应式
Object.defineProperty
爱学it学无止境
接下来又是我最常说的一句话,“好久都没写文章了”。确实是这样,自从实习之后每天就是连轴转,学习时间都很少,虽然工作的时候都会从中学到很多东西,只是闲暇之余的学习时间变少了。一到周末就只想续命,其他什么都不想干,所以更不可能学习。
最近组里没什么事,下周才会有需求,就去学习了一下组里的两个项目,一个是富文本编辑器还有一个就是bff。富文本太难了,看了1%都不到就看不懂了,直接开始怀疑人生。就跟你考英语的时候一样,每个字母和单词都能看得懂,但阅读理解就是写不对,愣是不知道它在干什么。所以我就去看bff了,bff还是要容易点,它其实就是一种node的用法,不过我自己也还没弄明白,等我弄明白再给你们介绍一下,到时候大家记得提醒我哈,提醒我回来补基础概念。
洋葱模型
洋葱模型(Onion Architecture)在构建后端服务(BFF, Backend for Frontend)时是一种常用的架构模式。它是由 Jeffrey Palermo 提出的一种分层架构设计模式,它将应用程序分为多个不同的层,每一层都有自己的职责和依赖关系。这种设计有助于提高应用程序的灵活性、可测试性和可维护性。在bff的场景中有比较广泛的使用,具体表现在以下几个方面:
关注点分离: 洋葱模型将应用程序划分为不同的层,如领域层、应用服务层、基础设施层等,有利于关注点的分离和关注点的管理。
依赖倒置: 内层模块不依赖外层模块,而是通过接口或抽象类进行依赖。这种依赖倒置有利于提高模块的灵活性和可测试性。
可重用性: 由于分层的设计,BFF 中的领域模型、应用服务等可以被其他应用服务复用,提高了代码的可复用性。
易测试: 由于各层之间通过接口或抽象类耦合,可以很容易地对每一层进行单元测试和集成测试。
demo展示
先来看一个洋葱模型的demo,这里我是用koa写的,koa本身就是支持洋葱模型的,后面会带大家手搓一个
const Koa = require('koa')
const app = new Koa()
// 中间件1
app.use((ctx, next) => {
console.log('我是你爹');
next()
console.log('我是你爹的爹');
})
// 中间件2
app.use((ctx, next) => {
console.log('你是我儿子')
next()
console.log('你是我儿子的儿子');
})
// 中间件3
app.use((ctx, next) => {
console.log('我是你爷爷');
next()
console.log('我是你爷爷的爷爷');
})
app.listen(2003, () => {
console.log('serve is listen');
})
领取专属 10元无门槛券
私享最新 技术干货