最近抽空把自己的网站 boxopened.com 用eggjs给重构了。整个重构大概用了一个礼拜。 总体用下来,我对eggjs是非常满意的,解决了开发中的很多痛点,使用起来也很方便。 我以前用的是koa,然后自己封装的框架。从koa转到eggjs的成本也是很低的。基本上立刻就能上手开发。 另外eggjs推荐的渐进式开发,也非常实用。我基于eggjs封装了一个boxopened framework供portal 和admin 公用。 关于业务逻辑,我用的是seneca微服务架构,配合eggjsd的service层,真的是好用到不行。 最后说下结论,强烈推荐大家使用eggjs。毕竟koajs作为一个框架还是太基础了。 最后再安利下自己的网站 boxopened.com ,希望大家多多支持!
“我基于eggjs封装了一个boxopened framework供portal 和admin 公用。 关于业务逻辑,我用的是seneca微服务架构,配合eggjsd的service层,真的是好用到不行。”
这里可以展开港一港?
@russj 我用senecajs封装了业务逻辑,并以http的形式对外提供服务。eggjs的设计有一个service层,在service层我可以通过http调用我的senecajs封装的底层服务。 同时我将用到的服务,插件,抽象出一个framework。这样在我的项目里面,管理端系统,和网站门户,公用一套服务。这样就实现了业务逻辑和网站的分离。 我这样不知道有没有说清楚。
@GGBond1989 业务逻辑的接口是http形式的? 为什么做成http的,外部需要使用吗?
@hezhongfeng 主要是我的两个项目,一个是门户,一个是后台管理端都用使用。后期还考虑给移动端使用。
@GGBond1989 那不就是api了吗? 我一般是api调用service的
@hezhongfeng 对,就是api,可能我没说清楚。
😇
@atian25 😀
egg不是提供了 Controller 和 Router 作为入口了么,用seneca有啥优势呢。
@hezhongfeng 到底懂不懂什麼是http?
简单的说,seneca 那层就是 bussiness service 层,以微服务的方式,通过 HTTP 的接口给内部系统提供 API 服务。 egg 这层作为 BFF 粘合层,去调用和聚合上面那一层,对外提供业务服务。
@atian25 还是你总结的比较到位。
Seneca 是一个能让您快速构建基于消息的微服务系统的工具集
我还以为是 Java 层的微服务框架,上面同学的疑问是为什么要用它吧。
@captainblue2013 不懂,老哥给我科普一下呗?
@atian25 BFF是啥
@mlyknown
Backends for Frontends
http://samnewman.io/patterns/architectural/bff/
其实就是个粘合层。
@ 我也刚好在看egg.js,重构后的代码可以开放出来看一下吗
后台数据库是mongodb吗?
@atian25 我想知道 http 形式的 BFF,会不会带来性能损失,有多少?另外,这层 BFF 要加验证之类的权限控制吧?
忘了说,lz 这个是个很棒的egg 实例,应该弄个大篇幅详细说说
@rwing BFF 对用户侧提供 HTTP,对内部服务不一定啊,内部你可以是 HTTP,GRPC,HSF 等等私有协议。 鉴权这块,以前怎么做现在还怎么做。其实 BFF 不是新东西,就像 ajax 一样,就是一直都有的,只是现在用一个名词来规划和定义它的边界和职责