前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang+Vue快速构建Web应用(字节跳动ArcoDesign)

Golang+Vue快速构建Web应用(字节跳动ArcoDesign)

作者头像
用户2848031
发布2023-09-12 01:21:58
3.4K1
发布2023-09-12 01:21:58
举报
文章被收录于专栏:Go开发框架

随着golang越来越火,很多大厂小厂正在转go,特别是市面上有大型平台在使用go,如字节跳动,滴滴,知乎等这些大流量项目,证明了golang性能,使得go也受到甲方的欢迎,很多外包开发者或者外包公司开始用Go。这样Go也需要一个比较友好web用于开发基础框架,方便快速搭建应用。把通用功能预制好,项目来直接开发项目业务。

快速预览 Demo, 在GithubGitee上开源, 官方社区源码下载开发文档。框架配有完整开发文档和技术支持保证项目能快速开发,提高了开发者开发效率。

介绍

GoFly是一个基于Go+Vue实现的Web应用模板,支持前后端,拥有完整的认证、限流、JWT,Restful API,Auth权限管理等功能。

后端基于Golang开发,主要特性如下:

  • Restful API,通过gin实现
  • 后台有API文档管理和在线测试接口
  • MVC架构
  • MySQL存储,可换sqlite3、postgres、oracle、mssql、clickhouse。
  • 基于JWT认证
  • 服务优雅终止
  • 请求限速
  • 一键CRUD生成前后端代码
  • RBAC认证,由Casbin提供
  • 格式化日志
  • 自动化路由

前端基于Vue开发,使用ArcoDesign 组件库

  • Vue3开发,使用组合式API
  • 使用vite快速编译
  • 图表功能,基于echarts
  • 支持less,减少CSS编写
  • 集成附件管理器
  • 封装可常用弹框组件

主要界面如下:

Dashboard界面
Dashboard界面
登录页
登录页
角色管理
角色管理
附件管理
附件管理
附件选择器
附件选择器
好用的文本编辑器
好用的文本编辑器

项目结构前端目录

后端结构

后端按照MC架构实现,参考了社区一些最佳实践和php主流框架相似,具体如下:

代码语言:javascript
复制
GoGly 后端项目目录
├── app                     //应用目录
│   ├── admin               //后台管理应用模块
│   ├── business            //业务端应用模块
│   ├── common              //通用应用模块
│   ├── model               //数据操作
│   ├── wxapp               //微信小程序模块
│   ├── wxoffi              //微信公众号模块
├── bootstrap                //工具方法
├── config                   //配置文件
├── global                   //全局变量
├── resource                 //静态资源
├── route                    //路由
├── runtime                  //运行日志文件
├── tmp                      //开发是使用fresh热编译 产生临时文件
├── utils                    //工具包
├── go.mod                   //依赖包管理工具
├── go.sum                 
├── gofly_single.sql          //数据库文件
├── main.go                   //main函数
└── README.md                 //项目介绍

前端结构

前端实现Vue3实现,与一般Vue项目类似

代码语言:javascript
复制
GoGly 后端项目目录
├── config                               //配置
│   ├── plugin                          //工具
│   ├── utils                           //公共函数
│   ├── vite.config.base.ts              //配置基础文件
│   ├── vite.config.dev.ts               //开发配置文件
│   ├── vite.config.prod.ts               //打包配置文件
├── public                                 //静态资源目录
│   ├── config.js                         //动态配置文件-打包好可以修改
├── src                                    // 源文件目录,编写的代码基本都在这个目录下
│   ├── api          //请求api
│   ├── assets       //公共静态资源
│   ├── components   //公共组件
│   ├── config       //pro 配置
│   ├── directive      //自定义指令
│   ├── hooks         //钩子函数
│   ├── layout       //框架布局
│   ├── locale       //多语言包
│   ├── router       //路由
│   ├── store        //pinia 共享状态存储库
│   ├── types        //ts 声明文件
│   ├── utils        //公共方法
│   └── views        //多页面文件夹
├── types                                   //ts 声明文件
├── .env                                    //生产环境
├── .env.development                        //开发环境-环境变量
├── .env.production                         //生产环境-环境变量
├── .gitignore                              //git过滤文件
├── babel.config.js                         //工具包
├── commitlint.config.js                    //依赖包管理工具
├── components.d.ts                          //依赖包管理工具
├── index.html                               //入口的html文件
├── package.json                             //命令配置和包管理文件
├── README.md                                //项目介绍
└──tsconfig.json                              //ts 配置

请求限流

限流使用了golang.org/x/time/rate提供的令牌桶算法,以应对突发流量,可以对单个IP以及Server层面实现请求控制。

需要特别注意的是限流应当区别长连接与短连接,比如Weave中实现了容器exec接口,通过Websocket登录到容器,不应该影响其他正常请求。

开发前端

前端而言只要有点基础就行,选用Vue3,主要是文档比较全面适合新手。UI基于了Arco,主要是UI页面体验感好,毕竟字节跳动团队前端水平可以相信的,目前Vue3比较成熟,且arco的UI库丰富,没有的自己加点就够用。

安装运行

1.数据库

mysql建议安装8及以上的版本。

2.后端

安装fresh 热更新-边开发边编译

代码语言:javascript
复制
go install github.com/pilu/fresh@latest

运行Go服务

代码语言:javascript
复制
fresh 

3.前端

第一次用Arco 初始一下命令:

代码语言:javascript
复制
npm i -g arco-cli 或者 yarn i -g arco-cli

初始化项目

代码语言:javascript
复制
npm run install 或者 yarn install

#运行项目

代码语言:javascript
复制
npm run serve 或者 yarn serve

总结

框架我们已经在多个项目使用,最典型是在我们3年前开发的医疗项目中使用,扛住了疫情是疫苗接种排队预约留观的并发。还有安全和稳定都经得住时间考验。今天就分享到这里,希望对大家有帮助。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 项目结构前端目录
    • 后端结构
      • 前端结构
        • 请求限流
          • 开发前端
          • 安装运行
          • 总结
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档