沉浸在 Laravel 四年多之后,我已经非常熟悉 MVC(模型-视图-控制器)架构。它的简单性和结构使其使用起来很愉快,Laravel 精心组织的文件夹可帮助开发人员保持正轨。您始终知道将代码放在哪里,并且广泛的内置工具(数据库连接、Redis、队列、迁移、ORM 等)使设置变得无缝。只需对您的环境进行一些调整,您的应用程序就可以运行了。
对我来说,Laravel 的 MVC 方法仍然是最强大的方法之一。 模型 定义您的数据,视图 确定用户看到的内容,控制器 管理您的业务逻辑。它简单而结构化,Laravel 默认提供此设置,使其成为一个出色的开发框架。
但是随着我职业生涯的进步以及我跨行业和企业的工作,我意识到 Laravel 的 MVC 方法并不总是足够的,特别是对于复杂的应用程序。
MVC 在简单的应用程序中表现出色,但当逻辑变得更加复杂时可能会出现不足。例如,当使用 Laravel 作为 API 时,View 层经常未被使用。同时,将所有逻辑放入控制器中很快会导致文件臃肿且难以维护。
为了解决这个问题,我通过引入 Service 和 Repository 层来扩展 Laravel 的 MVC 结构,创建如下所示的流程:
控制器 → 服务 → 存储库 → 模型
这种分层方法使代码更易于维护和扩展。随着时间的推移,我已经习惯了这种结构,因此在其他项目中采用它感觉很自然。
当我开始使用 Go(Golang)时,感觉就像踏入了未知的领域。 Go 与 PHP 有很大不同,缺乏固有的文件夹结构。它也不是面向对象的语言,所以我不能简单地复制我从 Laravel 中学到的东西。
经过一番尝试和错误,我决定坚持使用我熟悉的内容:CSRM 概念(控制器、服务、存储库、模型)。我将这种结构改编为 Go,尽管它需要一些创造性思维。此外,我还探索了可以简化开发的框架。我尝试了 Gin 和 Fiber,最终选择 Fiber 是因为它的速度、现代功能和活跃的社区。
使用 Go 和 Fiber 工作两年多后,我决定创建一个样板来简化 API 开发。这不仅仅适合我——我也想帮助其他人快速建立他们的项目。
结果:Fiber API 样板。
此样板文件专门用于 API,因此它不包含视图渲染或模板引擎等功能。文件夹结构的灵感来自:
我还借鉴了Laravel的很多思想,比如ORM、数据库连接、Redis、队列和身份验证。虽然它不如 Laravel 那么全面,但对于构建通用 API 来说已经足够了。
以下是样板当前提供的内容:
存储库还包括示例代码和详细的自述文件,以指导您完成每个文件夹和功能。
虽然样板已经可以使用,但我计划通过添加迁移、事件侦听器和命令等工具来进一步扩展它。这是一个不断发展的项目,旨在与用户一起成长。
欢迎您探索和使用样板文件。您可以随意自定义它——添加您喜欢的工具或删除您不需要的工具。如果您有建议或功能请求,请创建问题或提交拉取请求。
查看 Fiber API 样板 并试用一下。我希望它能像我一样帮助简化您的 Go API 开发之旅。让我们一起创造一些令人惊奇的东西!
以上是Laravel to Go:我的旅程和 Fiber API 样板的创建的详细内容。更多信息请关注PHP中文网其他相关文章!