[GF] 与 Laravel 设计相近的 Golang 框架 GoFrame
在 GoFrame (gogf/gf) 框架中有明确的代码分层设计,分别是 api, service, dao, model.
model (结构模型)一般由工具自动生成,用于定义数据结构,只可被 model 内部访问。
dao (数据访问)层的代码只包含通用的数据操作方法,代码往往通过工具生成,很少自定义。往往只能被 service 调用,不能被 api 调用。
service (逻辑)层可以调用 dao 里对象,用于特定业务逻辑的实现、封装。
api (接口定义) 对外提供服务,访问 service 层的对象。路由注册时访问 api 对象。
model,dao 这两部分在 Laravel 中就是 Model (自带ORM)的涵盖范围。
service 在 Laravel 中并不存在这样的目录,一般自建叫 Repository 或者叫 Logic 的目录用于封装业务逻辑来访问 Model。
api 在 Laravel 中就是控制器的概念,路由中注册对外提供服务。
GoFrame 同样惯例约定大于强制,便于写出统一、安全、可维护的业务代码。
代码分层设计:https://goframe.org/pages/viewpage.action?pageId=3672442
对象封装设计:https://goframe.org/pages/viewpage.action?pageId=3672526