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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 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年前

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