字节笔记本
2026年4月24日
这个 Go + React 的权限管理系统,让我省了不少时间
这个 Go + React 的权限管理系统,让我省了不少时间
事情是这样的。
我之前不是一直想做个内部管理系统吗,什么用户管理、角色权限、数据看板,这些东西每个项目都要用到。
但每次都从零开始写,累得半死。
直到我发现了 shadmin 这个开源项目。
这是什么
简单说,就是一个企业级的 RBAC 权限管理系统。
Go 后端 + React 前端,技术栈很主流:Gin + Ent ORM + Casbin + Shadcn UI + TanStack Router + Tailwind CSS。
你要是想快速搭一个后台管理系统,直接拿这个改就行。
几个亮点
RBAC 细粒度权限控制,基于 Casbin,做到了 API 级别和菜单级别的权限控制。用户、角色、权限,这些概念都给你配好了。
多数据库支持,默认 SQLite,开箱即用。想换 PostgreSQL 或 MySQL?配置一下就行。
动态菜单,菜单从后端 API 返回,前端根据用户权限自动渲染。不用在前端硬编码菜单配置。
主题切换,亮色暗色主题支持,还能跟随系统自动切换。
响应式设计,桌面、平板、手机都能看。
怎么跑
git clone https://github.com/ahaodev/shadmin.git
cd shadmin
# 安装并构建前端
cd web && pnpm install && pnpm build
# 启动后端
cd ..
go generate ./ent
go run .默认账号:admin / 123
后端默认监听 55667 端口,前端构建后会被嵌入到二进制里。
我的感受
对于快速启动内部管理系统来说,这个项目很实在。
技术栈选的都是主流且稳定的,代码结构清晰(Controller → Usecase → Repository),想改哪里都方便。
如果你是 Go 开发者,想给自己团队省点做后台的时间,值得一试。
本文介绍 shadmin 开源 RBAC 权限管理系统,Go + React 技术栈,支持多数据库、动态菜单、细粒度权限控制。
在 AI 技术快速迭代的今天,保持持续学习的能力比掌握任何特定的技术都更重要。理解底层原理可以帮助你在遇到新技术时更快地上手,可以在不同的技术方案之间做出更明智的选择。建议开发者建立自己的技术框架,而不是追逐每一个新的工具和框架。实践是最好的学习方式,在真实项目中应用新学到的技术,遇到问题并解决,这种经历比任何教程都更有价值。定期整理和复盘也是很好的习惯。将学到的知识归档整理,形成自己的知识库。当需要用到某个技术时,可以直接从自己的知识库中找到相关的参考,而不是从零开始搜索。
技术的价值不在于它有多前沿,而在于它能在多大程度上解决实际问题。AI 技术的快速迭代不是用来追赶的潮流,而是用来解决业务痛点的工具箱。在实际应用中,有时候简单的方案反而最有效。一个 RAG 系统用了最复杂的检索策略但文档处理没做好,效果不如一个文档处理完善但检索策略简单的系统。一个 Agent 系统用了最贵的模型但 prompt 设计粗糙,效果不如一个精心设计 prompt 的普通模型。建议在追求技术先进性之前,先把基础工作做扎实。文档清洗、数据标注、评测体系、监控告警,这些看似基础的工作,往往是决定 AI 项目成败的关键。
在软件开发领域,有一条经验法则:任何在开发阶段看起来很聪明但让调试变得困难的做法,最终都不是好主意。这条法则在 AI 应用开发中尤其适用。AI 应用的不确定性比传统软件高得多,这意味着调试和排查问题的难度也大得多。因此 AI 应用的设计应该追求简单、透明、可追踪。简单意味着每个组件的职责清晰,组件之间的依赖关系明确。透明意味着系统的每个决策过程都可以被追溯和理解。可追踪意味着每次模型调用、每步推理过程都被记录在案。只有做到了这三条,你才能在系统出现问题时快速定位根因。
AI 项目的技术栈选择决定了开发效率和后期维护的成本。Python 是目前 AI 开发的主流语言,拥有最丰富的生态。TypeScript 在 AI 应用开发中也越来越流行,特别是在需要前后端一体化的场景中。选择技术栈时的核心原则是优先考虑团队熟悉的技术,减少学习成本。框架选择同理,LangChain 功能丰富但复杂度也高,直接调用 API 可能更可控。建议从最简单的方案开始,随着需求复杂度的增加逐步引入框架。过早的框架选择会让系统复杂度不必要地增加。