go iris框架和vue框架前后端分离开发实战总结

DuBoisMark 发布于1年前

近期,我们在一个新的项目中使用了go和vue开发了一个前后端分离的web系统,让线下机构通过h5进行排课,管理机构老师和学生等,本人用于项目总结时,让参加的朋友了解一些有关的前置知识。

何为前后端分离?

随着近几年移动互联网的兴起,特别是前端领域的html5,CSS3,ECMAScript5和6(也就是javaScript语言的规范)的制定并被业界支持,前后端 分离这种技术架构越来越流行,笔者近3年 参与的实际项目,基本上都是 采用前后端分离的开发模式。

那么,什么是前后端分离呢?去网上一搜,答案挺多的,都没有绝对的对错,只是站在不同的角度去定义而已。我比较认可的定义如下:在技术架构上,前后端只通过Restful风格(最佳实践)的API以JSON 数据格式(使用最多)进行交互,而不是组织或岗位的分离。

关于go

Go(又称 Golang)是一个 Google 于2007年9月开始设计,并于2009年开源的编程语言,静态强类型、编译型、并发型,并具有垃圾回收功能。

语法与 C 相近,但对于变量的声明有所不同,它简洁、清晰而高效。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。

关于iris框架

Iris是社区驱动的Go语言开源Web 框架,提供的api都是极简风格,很容易上手,支持中间件扩展,并有丰富的中间件生态库。

整个iris框架共三层结构:

  • 应用的配置和注册信息:如路由、中间件、日志。
  • 中间的服务端实例:从iris实例拿配置信息进行配置。
  • 底层net/http包:负责TCP连接建立、监听接受,请求收取并解析,缓冲区管理,写入响应。

关于vuejs

Vuejs是一套用于构建用户界面的渐进式JavaScript框架,Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

参与已有vue项目的开发

体验应用

下载代码

git clone http://gitlab.weilaicheng.com/Front-end/xxx.git

安装nodejs

brew install node

安装依赖

npm install

启动项目

  • 连接测试服务器接口
npm run test
  • 连接线上服务器接口
npm run prod

部署到测试环境

  • 本地打包并提交代码到gitlab
npm run td
  • 使用pm2本地一键部署(需要配置ssh本地免密登录云服务器)
npm run pm2

参与已有 go iris项目开发

安装环境(参考)

  • 下载Mac系统的安装包
    https://studygolang.com/dl 选择所用操作系统对应最新的安装包
  • 安装go
    Mac 可以通过 brew install go 直接安装,也可通过上一步下载的安装包点击一步步安装
  • 配置环境变量
vi ~/.zshrc // 若用的的是bash则编辑 .bashrc文件
 // 打开配置文件后输入如下内容
export GO111MODULE=auto // 启用mod依赖管理 
export GOPROXY=https://goproxy.io // 配置代理提高下载速度
export PATH=$PATH:/Users/xian2/go/bin  // 配置GOPATH
// 提交生效
source ~/.zshrc
  • 安装mysql 和 redis

    brew install 即可,或者去对应官网下载安装。

参与开发

  • 下载源码
git clone git@gitlab.weilaicheng.com:kpl/yd_user_zeus.git
  • 新增配置
cd yd_user_zeus
mkdir conf
cp confs/dev.ini conf/config.ini

把 config.ini 的mysql密码等配置改成你本地的

  • 找后端研发导入数据库

    一般 通过 sequelpro 这个mysql数据管理工具导入

-安装 iris 热更新工具

go get github.com/kataras/rizla
  • 启动项目
rizla main.go

更多内容请参与我们的现场的技术分享,没有加入我们公司的,请把简历砸过来: 1007344228@qq.com

查看原文: go iris框架和vue框架前后端分离开发实战总结

  • tinybird
  • heavybutterfly
  • organicduck
  • crazygoose
  • browncat
  • whitecat
  • tinybear