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

2024-01-04

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

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

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

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

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

Web框架

FiberAn Express-inspired web framework written in Go.gofiber.io icon-default.png?t=N7T8 https://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.com icon-default.png?t=N7T8 https://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.org icon-default.png?t=N7T8 https://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.dev icon-default.png?t=N7T8 https://alpinejs.dev

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

DaisyUI & Tailwind

daisyUI - Tailwind CSS Components ( version 4 update is here )Best Tailwind Components Library - Free UI components for Tailwind CSSdaisyui.com icon-default.png?t=N7T8 https://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.com icon-default.png?t=N7T8 https://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.com icon-default.png?t=N7T8 https://github.com/nedpals/supabase-go

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Python写入csv乱码

    把encoding utf 8 改成 encoding utf 8 sig 代码 import os csv with open result file mode a encoding utf 8 sig newline as f writ
  • 漏洞和网络扫描的相关知识

    学习 计算机网络安全 这本书的一些记录 一 漏洞的威胁 1 通过漏洞获取远程管理员权限 通常以管理员身份执行有缺陷的远程系统守护进程来获得远程管理员权限 这些漏洞的绝大部分来源于缓冲区溢出 少部分来自守护进程本身的逻辑缺陷 典型漏洞 Win
  • windows对微信及小程序抓包:Burp+Fiddler+Proxifier

    本文由掌控安全学院 zbs 投稿 话不多说 直接先上个效果图 新新的版本哈 好好的抓包哈 然后直接说我如何配置的 准备好三个工具 bp fiddler proxifier 也可以用其他的进行代理 bp proxifier正式课件有 fidd
  • 题解 | #删除字符串中出现次数最少的字符# 利用map统计

    比预期的要低 HR打电话说是14级 不分ABC 说制造类供应链类工资和研发体系不一样 整体就要低一些 offer选择 大家帮忙看看 offer选择 大家帮忙看看 有奖活动 什么事是你实习了才知道的 春招会有好的国央企吗 招前端实习生 北京快
  • CH341StreamI2C参数解释

    总体思路 第一步 使用EEPROM写入相应的数据 第二步 使用EEPROM读取相应的数据 第三步 使用CH341StreamI2C函数还原读取过程 每一步需要逻辑分析仪进行对比 第一步 数据写入CH341WriteEEPROM 使用CH34
  • 【SpringBoot】Java MVC 集成 Swagger 生成 API 文档

    使用Swagger你只需要按照它的规范去定义接口及接口相关的信息 就可以做到生成接口文档 以及在线接口调试页面 官网 https swagger io Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案
  • 游戏策划:游戏开发中的关键环节

    在数字游戏的世界里 游戏策划是构建一个成功游戏的基石 游戏策划不仅仅是一个创意过程 它涉及从故事构建到技术实现的各个方面 以下是游戏策划中需要重点关注的几个重要内容 1 故事情节与世界观构建 一款游戏的魅力很大程度上取决于其故事情节和世界观
  • 内存取证volatility工具命令详解

    一 环境安装 1 kali下安装Volatility2 注意 一般Volatility2比Volatility3好用 wget https bootstrap pypa io pip 2 7 get pip py python2 get p
  • Qt undefined reference to `vtable for xxx‘

    一 问题背景 在编译QT代码时 出现 undefined reference to xxx entered 通过鼠标双击QtCreator 问题栏 中的该行 则会跳转到发送信号的代码所在行 与上述代码一同出现在 问题栏 的还有 undefi
  • 2023 全球网络黑客常用攻击方法 Top10_top10攻击

    近几年 借助互联网产业发展的东风 网络黑产也迎来更加巅峰的状态 不论是从攻击效率 组织规模 亦或是收益变现能力 都在一天天变的成熟完善 根据艾瑞咨询 2020 年发布的 现代网络诈骗分析报告 全国黑产从业者已经超过 40 万人 依托其从事网
  • prometheus grafana linux服务器监控

    文章目录 前传 node exporter安装 配置promethues监控node节点 grafana操作 查看监控 外传 前传 prometheus grafana的安装使用 https nanxiang blog csdn net a
  • 门店总数超9000家,手握大众茶饮“下沉市场牌”的古茗冲刺上市

    奶茶品牌上市潮来袭 1月2日 奶茶品牌古茗控股有限公司 下称 古茗 蜜雪冰城股份有限公司 下称 蜜雪冰城 一同递交招股书 计划在港交所主板上市 近年来 随着现制茶饮的爆火 赛道内主流玩家的资本化脚步也逐渐加快 2021年6月 奈雪的茶 HK
  • 【设计模式之美】理论一:怎么才算是单一原则、如何取舍单一原则

    文章目录 一 如何判断类的职责是否足够单一 二 类的职责是否设计得越单一越好 开始学习一些经典的设计原则 其中包括 SOLID KISS YAGNI DRY LOD 等 本文主要学习单一职责原则的相关内容 单一职责原则的定义 一个类只负责完
  • 3 分钟为英语学习神器 Anki 部署一个专属同步服务器

    Anki 介绍 Anki 是一款基于间隔重复 Spaced Repetition 原理的学习软件 想象一下 你的大脑就像是一个需要定期维护的精密仪器 间隔重复就好比是一种精准的维护计划 它通过在最佳时刻复习信息 来确保知识在你的脑海中牢固地
  • 视频转文字怎么弄?这几个方法让你事半功倍

    这个学期上网课上到人都傻了 谁能懂我的痛啊 你有没有试过一边听网课一边写笔记 结果手速跟不上 导致笔记记得不完整 而且手上写出来的字还跟狗爬一样 更郁闷的是 有时候一个短短十分钟的视频 要花上半个小时 甚至更久去记录下重点内容 这怎么行啊
  • prometheus基本介绍

    官网 https prometheus io docs introduction overview 中文 https www prometheus wang Prometheus 选择 Prometheus 并不是偶然 因为 Prometh
  • 国家信息安全水平等级考试NISP二级题目卷④(包含答案)

    国家信息安全水平等级考试NISP二级题目卷 四 国家信息安全水平等级考试NISP二级题目卷 四 需要报考咨询可以私信博主 前言 国家信息安全水平考试 NISP 二级 被称为校园版 CISP 由中国信息安全测评中心发证 NISP运营管理中心
  • 3 分钟为英语学习神器 Anki 部署一个专属同步服务器

    Anki 介绍 Anki 是一款基于间隔重复 Spaced Repetition 原理的学习软件 想象一下 你的大脑就像是一个需要定期维护的精密仪器 间隔重复就好比是一种精准的维护计划 它通过在最佳时刻复习信息 来确保知识在你的脑海中牢固地
  • SimGNN:A Neural Network Approach to Fast Graph Similarity Computation

    Part 1 论文阅读 论文链接 SimGNN A Neural Network Approachto Fast Graph Similarity Computation 1 摘要 图相似性搜索 是最重要的基于图的应用程序之一 例如查找与查
  • 这套Go语言开发框架组合真的非常高效

    我尝试过很多框架 从Django Flask和Laravel到NextJS和SvelteKit 到目前为止 这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈 框架 我喜欢所有这些框架 但我只是不太适应它们的设计方式 实际上 我是一个弱