这套Go语言开发框架组合真的非常高效
我尝试过很多框架,从Django/Flask和Laravel到NextJS和SvelteKit。到目前为止,这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈/框架。
我尝试过很多框架,从Django/Flask和Laravel到NextJS和SvelteKit。到目前为止,这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈/框架。
我喜欢所有这些框架,但我只是不太适应它们的设计方式。实际上,我是一个弱鸡程序员,因为它们都非常高效,而且拥有强大的生态系统,但是,算了。
如果你还没有被Go同化,那么我将给出一些我为什么如此喜欢它的原因。
- 快速编译成单一的二进制文件
- 干净的语法最终产生易于阅读的代码库
- 适合团队协作, 不用担心大家写出风格迥异的代码
- 提供了go test/profile工具, 和vscode配合非常好
下面介绍一下我所使用的框架和工具。
Web框架
Fiber 是一个受到 Express 启发的 Web 框架,基于使用 Go 语言编写的最快的 HTTP 引擎 Fasthttp 构建。旨在通过零内存分配和高性能服务,使快速开发更加简便。
从 Node.js 切换到 Go 的新 gopher 在开始构建 Web 应用程序或微服务之前需要经历学习过程。 Fiber 作为一个 Web 框架 ,是按照极简主义的思想并遵循 UNIX 方式创建的,因此新的 gopher 可以在热烈和可信赖的欢迎中迅速进入 Go 的世界。
HTML模版引擎
Jet
go get github.com/gofiber/template/jet/v2
Fiber只提供了9种模板系统,而在所有这些系统中,Jet是我最喜欢的。如果你想选择其他的,你可以在这里找到它们的列表,但是我建议你要注意那些功能不是很多的模板引擎,特别是Django,因为你最终不得不将大量的逻辑移动到Go中,而不能直接在模板语言中完成。
HTMX
Htmx是一个JavaScript库,用于执行AJAX请求,触发CSS转换,以及直接从HTML元素调用WebSocket和服务器发送的事件。Htmx可以让你用简单的标记建立现代和强大的用户界面。
这个库的重量为~10KB(min.gz’d),它是无依赖性的(也就是说,它不需要任何其他的JavaScript包来运行),而且它还与IE11兼容。
AlpineJS
这个工具可以增加一些前端的交互性。你可以把它看成是新一代的jQuery。
DaisyUI & Tailwind
如大多数后端开发者,你可能会同意我说的,我讨厌写CSS,但仅仅使用Tailwind就几乎无法忍受,因为你得面对一个元素有20个不同的class。这就是DaisyUI的用武之地,它提供了预先设计的类,同时还能使用Tailwind进行布局,比如’flex’。
数据库
Supabase
如果没有Supabase,这套组合拳真的就无法很好工作了,因为它依赖于身份验证,而且ORM也很好。如果你更喜欢使用不同的ORM或者只是SQL,那么这也是可以的,因为在底层,Supabase只是PostgreSQL,他们提供了连接到数据库的凭据。
此外,仅仅能够简单地设置一个API密钥来设置数据库,就能让我心里轻松很多,这在开始一个项目的初期非常重要,因为时间真的是非常重要的,热情会随着时间的推移而消退。编程是无聊的,就我个人而言,它真的只是一个心理游戏,要不断找到在开发项目时获取多巴胺的方法,以保持我对此的兴趣。