这套Go语言开发框架组合真的非常高效

我尝试过很多框架,从Django/Flask和Laravel到NextJS和SvelteKit。到目前为止,这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈/框架。

我喜欢所有这些框架,但我只是不太适应它们的设计方式。实际上,我是一个弱鸡程序员,因为它们都非常高效,而且拥有强大的生态系统,但是,算了。

如果你还没有被Go同化,那么我将给出一些我为什么如此喜欢它的原因。

  • 快速编译成单一的二进制文件
  • 干净的语法最终产生易于阅读的代码库
  • 适合团队协作, 不用担心大家写出风格迥异的代码
  • 提供了go test/profile工具, 和vscode配合非常好

下面介绍一下我所使用的框架和工具。

Web框架

FiberAn Express-inspired web framework written in Go.gofiber.ioicon-default.png?t=N7T8https://gofiber.io

Fiber 是一个受到 Express 启发的 Web 框架,基于使用 Go 语言编写的最快的 HTTP 引擎 Fasthttp 构建。旨在通过零内存分配高性能服务,使快速开发更加简便。

从 Node.js 切换到 Go 的新 gopher 在开始构建 Web 应用程序或微服务之前需要经历学习过程。 Fiber 作为一个 Web 框架 ,是按照极简主义的思想并遵循 UNIX 方式创建的,因此新的 gopher 可以在热烈和可信赖的欢迎中迅速进入 Go 的世界。

HTML模版引擎

Jet

GitHub - CloudyKit/jet: Jet template engineJet template engine. Contribute to CloudyKit/jet development by creating an account on GitHub.github.comicon-default.png?t=N7T8https://github.com/CloudyKit/jet

go get github.com/gofiber/template/jet/v2

Fiber只提供了9种模板系统,而在所有这些系统中,Jet是我最喜欢的。如果你想选择其他的,你可以在这里找到它们的列表,但是我建议你要注意那些功能不是很多的模板引擎,特别是Django,因为你最终不得不将大量的逻辑移动到Go中,而不能直接在模板语言中完成。

HTMX

htmx - high power tools for htmlhtmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes…htmx.orgicon-default.png?t=N7T8https://htmx.org

Htmx是一个JavaScript库,用于执行AJAX请求,触发CSS转换,以及直接从HTML元素调用WebSocket和服务器发送的事件。Htmx可以让你用简单的标记建立现代和强大的用户界面。

这个库的重量为~10KB(min.gz’d),它是无依赖性的(也就是说,它不需要任何其他的JavaScript包来运行),而且它还与IE11兼容。

AlpineJS

Alpine.jsA rugged, minimal framework for composing behavior directly in your markup.alpinejs.devicon-default.png?t=N7T8https://alpinejs.dev

这个工具可以增加一些前端的交互性。你可以把它看成是新一代的jQuery。

DaisyUI & Tailwind

daisyUI - Tailwind CSS Components ( version 4 update is here )Best Tailwind Components Library - Free UI components for Tailwind CSSdaisyui.comicon-default.png?t=N7T8https://daisyui.com

如大多数后端开发者,你可能会同意我说的,我讨厌写CSS,但仅仅使用Tailwind就几乎无法忍受,因为你得面对一个元素有20个不同的class。这就是DaisyUI的用武之地,它提供了预先设计的类,同时还能使用Tailwind进行布局,比如’flex’。

数据库

Supabase

Supabase | The Open Source Firebase AlternativeBuild production-grade applications with a Postgres database, Authentication, instant APIs, Realtime, Functions…supabase.comicon-default.png?t=N7T8https://supabase.com

GitHub - nedpals/supabase-go: Unofficial Supabase client library for Go.Unofficial Supabase client library for Go. Contribute to nedpals/supabase-go development by creating an account on…github.comicon-default.png?t=N7T8https://github.com/nedpals/supabase-go

如果没有Supabase,这套组合拳真的就无法很好工作了,因为它依赖于身份验证,而且ORM也很好。如果你更喜欢使用不同的ORM或者只是SQL,那么这也是可以的,因为在底层,Supabase只是PostgreSQL,他们提供了连接到数据库的凭据。

此外,仅仅能够简单地设置一个API密钥来设置数据库,就能让我心里轻松很多,这在开始一个项目的初期非常重要,因为时间真的是非常重要的,热情会随着时间的推移而消退。编程是无聊的,就我个人而言,它真的只是一个心理游戏,要不断找到在开发项目时获取多巴胺的方法,以保持我对此的兴趣。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值