在同一个项目 后台管理使用 Laravel ,Api 使用 Golang, 如何防止业务逻辑的冗余 ?

在项目中 ,我可能 C 端调用的是 Golang 的 Api。但是后台我可能用的 Laravel-Admin,Dcat-Admin 这种管理后台。但是我不可能 LaravelModel+Service 层和 Golang 的分别写一套。 大家是否遇到过这种问题?一般又是怎么处理的。
还有个问题就是,Golang 在操作数据库一块大家用的是 gorm 还是写的 sql 语句,或者有什么更好的方法。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

这个问题还真没那么简单。既然存在这个问题,说明目前的架构并不是微服务化的,比如你调用一个删除用户的功能,要在php和go环境里都能用,还真得分别实现一套,这也是服务化存在的一个意义。

这个是一个根据具体情况取舍的问题我觉得。分3种情况吧:

1.如果图架构简单,最方便的方法是用同一套框架来做后台,舍弃php。

2.如果后台很轻,以后也没什么大计划,那就php里再写一套需要的model 方法。

3.如果想好了今后这个系统就是要搞扩展,搞大搞复杂的,那就可以借着这个机会着手微服务化了。这个选择工程量最大,见效最慢,不过搞完了一劳永逸。

3年前 评论
讨论数量: 5

我是用laravel写后台管理系统,也就是php为后台管理系统提供api,因为后台只需要给管理员curd就可以了,golang微服务为前端提供api,支撑并发量。go一般用gorm,gorm也可以执行原生sql

3年前 评论
Cooper

rpc 撒

3年前 评论

可以考虑用grpc,这样Service层就统一了

3年前 评论

这个问题还真没那么简单。既然存在这个问题,说明目前的架构并不是微服务化的,比如你调用一个删除用户的功能,要在php和go环境里都能用,还真得分别实现一套,这也是服务化存在的一个意义。

这个是一个根据具体情况取舍的问题我觉得。分3种情况吧:

1.如果图架构简单,最方便的方法是用同一套框架来做后台,舍弃php。

2.如果后台很轻,以后也没什么大计划,那就php里再写一套需要的model 方法。

3.如果想好了今后这个系统就是要搞扩展,搞大搞复杂的,那就可以借着这个机会着手微服务化了。这个选择工程量最大,见效最慢,不过搞完了一劳永逸。

3年前 评论

golang 提供一套内部api给laravel admin调用是不是就可以了?

3年前 评论
Imuyu 3年前
黑将军 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!