自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

imwinlion && 我是胡文林

努力分享先进技术

  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 golang+websocket实现实战扫小程序码登陆网站,提供源代码

使用扫小程序码登陆网站网络上关于实现本本功能的文章很多,但是给出案列的几乎没有,今天笔者实现用小程序码实现网站登陆,体验地址如下https://idea.techidea8.com/本文采用restgo 框架,相关信息请查阅https://gitbook.cn/m/mazi/activity/5c77c109a1fc3527823d995d思路关键流程建立场景scene...

2019-08-08 14:41:57 2250 1

原创 java程序员10分钟可上手的golang框架golang实战使用gin+xorm搭建go语言web框架restgo

代码结构如下,是不是有点熟悉?1、首先上效果2、如何使用2.1、使用如下指令克隆cd $GOPATH/src git clone https://github.com/winlion/restgo-admin.git 你将得到restgo-admin 目录 进入目录 cd restgo-admin2.2、数据库新建数据库名称为restgo-admin,编码为utf-8将restgo-admin.s...

2018-03-04 08:19:33 2018

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解1.1 go语言的困境

2017年我们公司需要快速迭代一款产品,当时,我们团队的后端框架是spring mvc ,该框架结构清晰,上手快,但是由于我们的产品迭代速度快,底层数据库操作接口变动频繁,导致service层工作量巨大,不胜其烦。另外,随着项目的成长,代码量越来越大,项目启动越来越慢,严重影响了开发调试速度。在这种情况下,我们希望寻找一种新的框架或编程语言,我们期望他具备调试简单,上手快,启动速度快,保密性高,以...

2018-02-19 09:58:06 20456 8

原创 根据数据库表结构自动生成代码elementui框架golang代码偷懒神器restctl简介

工具简介elego简介这是一个基于restgo+element-admin的项目包地址https://github.com/techidea8/elego.gitrestgo简介一个轻量的golang开发框架restgo 框架 地址https://github.com/techidea8/restgo.gitrestctl一个根据表结构生成代码的工具,可以自定义模板地址https://github.com/techidea8/restctl.git使用方法下载elego项目 g

2021-07-28 10:08:36 760

原创 vue集成ideakefu组件

简介idea-kefu 号称是为vue用户接入客服提供快速、方便、稳定的解决方案。官网地址http://kefu.techidea8.com/开发文档地址http://kefu.techidea8.com/html/wiki主要功能说明本组件支持小程序、H5、和APP。坐席端支持app/微信公众号/windows系统,功能强大支持文字消息支持图片消息支持客户表单支持emoj斗图客服数目不受限制支持模板消息提醒支持短信提醒支持APP提醒支持关键字回复支持后台统计支持语

2020-10-07 12:04:40 935

原创 在线客服系统开发重点难点

背景公司决定将内部稳定运营支撑上10万商家的客服系统独立出来,独立成一个产品,对外提供服务。在此记录一下此系统对外提供服务遇到的问题及其解决方法。效果# 消息支持我们设置了消息体参数,核心参数如下|名称|类型|例子|说明||----|----|----|----||cmd|int|5|消息类型,5代表心跳||media|int|1|消息样式,如txt,pic,video,audio,articel||...|...|...|...|websocket掉线产品主打Uniapp业

2020-09-27 20:31:07 1897

原创 golang微服务框架go-zero系列-4:go-zero文件服务

golang微服务框架go-zero系列-4:go-zero文件服务go-zero本身支持文件服务,但是我们需要写相关的handler文件,本文目的在于不写任何一个和文件相关的handler如果有新的文件,直接把文件模板到某个特定目录就好,不要动任何go代码需求在这里,开撸吧在代码开始前,你可能需要阅读golang微服务框架go-zero系列-1:在go-zero中使用XormV2golang微服务框架go-zero系列-2:在go-zero中使用jwt-token鉴权实践golang微

2020-09-05 20:48:08 2929 1

原创 golang微服务框架go-zero系列-3:扩展go-zero,使之支持html模板解析自动化

扩展go-zero,使之支持html模板解析自动化go-zero本身支持html模板解析,我们只需要添加url对应模板解hanlder,实现逻辑就可以了但是winlion太懒了,我甚至想不写任何一个和模板相关的handler如果有新的模板,直接把模板到某个特定目录就好,不要动任何go代码在开发环境下没有缓存,修改了模板文件无需重启需求在这里,开撸吧在代码开始前,你可能需要阅读金光灿灿的Gorm V2+适合创业的golang微服务框架go-zero实战如果对go-zero已经了解,直接跳

2020-09-03 23:11:11 1467

原创 golang微服务框架go-zero系列-2:在go-zero中使用jwt-token鉴权实践

阅读本文前你需要阅读金光灿灿的Gorm V2+适合创业的golang微服务框架go-zero实战创建项目生成go.mod文件以如下指令创建项目mkdir jwttokencd jwttokengo mod init jwttoken定义user.api本文设计API如下描述格式方法参数返回是否需要鉴权用户登录/open/authorizationpostmobile:手机号,passwd:密码,code:图片验证码id:用户ID,token:用户t

2020-09-03 12:02:57 2658

原创 golang微服务框架go-zero系列-1:适合创业的golang微服务框架go-zero + 金光灿灿的gorm V2实践

为什么使用go-zero可以有第三个选择golang圈子不大,微服务框架框架屈指可数:除了go-micro、go-kit,几乎没有其他选择。go-zero为此提供第三个可能。go-micro 对webapi支持并不友好,需要运行micro指令,难以定制创业产品需要一款支持业务成长的框架我们到底需要什么样的框架?我们需要一款可以支持业务成长的框架!产品运营初期,比如需求验证阶段,我们并不需要采取微服务架构,因为运营成本太高。一款单体应用足以应付。随着业务发展,微服务成为必要,此时我们希望不进行太

2020-09-02 15:38:10 6381 1

原创 golang微服务框架go-micro 入门笔记2.3 micro工具之消息接收和发布

本章节阐述micro消息订阅和发布相关内容阅读本文前你可能需要进行如下知识储备golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境,golang微服务框架go-micro 入门笔记2.1 micro工具之micro apigolang微服务框架go-micro 入门笔记2.2 micro工具之micro webbroker代理微服务之间需要通过...

2019-09-01 09:59:39 818

原创 golang微服务框架go-micro 入门笔记2.3 micro工具之消息接收和发布

本章节阐述micro消息订阅和发布相关内容阅读本文前你可能需要进行如下知识储备golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境,golang微服务框架go-micro 入门笔记2.1 micro工具之micro apigolang微服务框架go-micro 入门笔记2.2 micro工具之micro webbroker代理微服务之间需要通过...

2019-08-30 01:25:38 471

原创 golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架go-micro 入门笔记2.1 micro工具之micro api 本文应用环境 名称 描述 操作系统 ...

2019-08-25 16:38:52 760

原创 golang微服务框架go-micro 入门笔记2.1 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架go-micro 入门笔记2.1 micro工具之micro api 本文应用环境 名称 描述 操作系统 ...

2019-08-25 16:36:48 666

原创 golang微服务框架go-micro 入门笔记1.搭建 go-micro环境

微服务的本质是让专业的人做专业的事情,做出更好的东西。 golang具备高并发,静态编译等特性,在性能、安全等方面具备非常大的优势。go-micro是基于golang的微服务编程框架,go-micro操作简单、编码高效、功能强大。但是网络上资料偏少,本系列文章定位最简单最容易上手的go-micro入门教程,所有案列来自实操,而非网络上的复制粘贴。 本章节的目的是让大...

2019-08-25 10:49:05 1041

原创 golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techide...

2019-08-25 01:39:12 705

原创 关于一致性hash,这可能是全网最形象生动最容易理解的文档,想做架构师的你来了解一下

问题提出一致性hash是什么?假设有4台缓存服务器N0,N1,N2,N3,现在有数据OBJECT1,OBJECT2,OBJECT3,OBJECT4,OBJECT5,OBJECT5,OBJECT7,OBJECT8,我们需要将这些数据缓存到这4台服务器上,相应的问题是如何设计数据存放策略?即ObjectX 应该存放在哪台服务器上?为了解决这个问题,我们有如下几个思路。1. 余数ha...

2019-08-24 00:19:03 363

原创 go-micro 入门教程1.搭建 go-micro环境

微服务的本质是让专业的人做专业的事情,做出更好的东西。 golang具备高并发,静态编译等特性,在性能、安全等方面具备非常大的优势。go-micro是基于golang的微服务编程框架,go-micro操作简单、编码高效、功能强大。但是网络上资料偏少,本系列文章定位最简单最容易上手的go-micro入门教程,所有案列来自实操,而非网络上的复制粘贴。 本章节的目的是让大...

2019-08-19 16:29:10 3362 1

原创 扫小程序码实现网站登陆,提供源代码

使用扫小程序码登陆网站网络上关于实现本本功能的文章很多,但是给出案列的几乎没有,今天笔者实现用小程序码实现网站登陆,体验地址如下https://idea.techidea8.com/open/login.shtml 思路 关键流程 建立场景sceneid和websocket的绑定关系 获得sceneid 场景ID可以前端生成,也可以后端生成,只需要保证sceneid的同...

2019-08-18 21:09:42 1023 1

原创 手把手教你封装一款适用自己的golang web编程框架

MVC 应用一般结构目录结构说明如下名称 内容 model 模型层目录,类比Java 中的entity view 视图层,存放所有templete模板 ctrl 控制器层, 存放全部控制器 service 服务层,类比Java里面的service html 一些静态资源页面 util 核心工具包,Md5加密,返回数...

2019-05-24 11:48:40 1365

原创 你必须了解的18个移动互联网模型-1.1统一登陆模型——场景描述

场景描述我们经常会碰到这样的需求,比如某企业需要做一个投诉报修的小系统,每个投诉报修的用户,如果他是第一次用微信登录我们的系统,那么需要输入手机号码,验证了这个手机号码后,才能进入我们的系统,提交报修信息。第一次报修后,以后用户再次提交报修信息,即可以自动识别该用户,免去登录的麻烦。我们的系统要能在微信里面运行,还要能在微博里面,浏览器里面运行,以后我们的系统还要做APP,用户同一帐号登录的A...

2018-12-29 14:28:14 930

原创 2018 创业者自我修炼必读经典书单(建议收藏)

本文推荐的书单和网上其他的书单大部分不一致,因为互联网上推荐的基本是畅销书,但是太形而上,不接地气,创业者看了后 觉得自己思想境界提高了,升华了,但是对企业或者团队实际存在的问题,仍然没有帮助。本文书单的目的在于帮助创业者修炼内功。一、《社会心理学》社会心理学(social psychology)研究个体和群体在社会相互作用中的心理和行为发生及变化规律。社会心理学在个体水平和社会群体水平上对人际关...

2018-04-05 15:04:08 2741

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解10 使用restgo搭建后台管理系统

1、首先上效果2、如何使用2.1、使用如下指令克隆cd $GOPATH/src git clone https://github.com/winlion/restgo-admin.git 你将得到restgo-admin 目录 进入目录 cd restgo-admin2.2、数据库新建数据库名称为restgo-admin,编码为utf-8将restgo-admin.sql导入到数据库中2.3、初始...

2018-03-04 08:13:01 2789

原创 go语言的困境

2017年我们公司需要快速迭代一款产品,当时,我们团队的后端框架是spring mvc ,该框架结构清晰,上手快,但是由于我们的产品迭代速度快,底层数据库操作接口变动频繁,导致service层工作量巨大,不胜其烦。另外,随着项目的成长,代码量越来越大,项目启动越来越慢,严重影响了开发调试速度。在这种情况下,我们希望寻找一种新的框架或编程语言,我们期望他具备调试简单,上手快,启动速度快,保密性高,以...

2018-02-19 17:58:45 19028 2

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解9 session、日志、鉴权、验证码等

9.1 sessionSession模块可选择很多,我们集成了github.com/tommy351/gin-sessions,在main函数中,我们使用如下方法开启sessionstore := sessions.NewCookieStore([]byte(cfg.Session["name"]))router.Use(sessions.Middleware(cfg.Session["name"...

2018-02-19 11:05:44 5840 4

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解8 关于模板

8.1 模板基础语法模板基本语法不是本文的重点,本章节只阐述常用基本语法,其他语法请自行网络查阅相关知识。8.2 在模板中使用自定义函数我们需要将自动以函数统一管理起来,这个管理模块在restgo/Func.go中,该模块已经内置了ctxpath、version等常用方法,那么如果需要定制一个新的方法,该怎么做呢?以hello方法为例要使用自定义hello函数,首先需要在restgo/Func.g...

2018-02-19 11:03:03 2177

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解7 视图层V

当前web3.0时代,前后端分离已经成为主流。后端方面,restful风格api大行其道;在前端上,各种js框架如vue,reactjs,anglarjs百花齐放。但是golang的视图层却是由后端渲染的,这和java类似,正因为这个原因,golang适合做一些安全性要求较高的工作。本章节主要阐述golang框架视图相关的配置.7.1 视图配置视图主要有三个配置参数#视图存放路径restgo.vi...

2018-02-19 11:01:15 1989

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解6.4 推荐编程方式

6.4 高级查询对于部分比较特殊的服务,比如根据关键字、创建时间等查询获取用户信息,我们需要设计便于维护的数据结构,我们建议将查询条件封装到一个结构体中,具体操作如下1、在model目录下定义用户信息查询条件结构体UserArg.gopackage modeltype UserArg struct {   PageArg   ttype string `form:"ttype" json:"tty...

2018-02-19 10:58:58 2812

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解6.1 模型M和Orm

熟悉java中ssm框架的应该清楚,和数据库操作相关的有entity、dao、以及service层,entity将数据库表结构和java对象关联起来,而dao专门用来处理对数据库的基本操作,service层封装了具体的业务逻辑。他们结构清晰,作用明确。我们借鉴java框架,可以将entity、dao、service封装到一层,这一层,我们称之为模型层。另一方面,对于数据库处理方面,我们希望用一个对...

2018-02-19 10:55:55 8937

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5.9 控制器controller编程示例

该章节我们以用户管理这一需求为例,阐述如何进行控制器编程。首先我们分析用户管理需要的接口如下用户管理模块api描述编号请求格式接口描述请求数据响应数据1/user/query根据姓名、电话等注册时间等最后登陆时间、角色等搜索和统计用户  2/user/findOne根据用户编号获取基础信息  3/user/login根据用户名、密码等进行登录操作  4/user/register用户注册操作  5...

2018-02-19 10:45:00 1866

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5.7 控制器数据响应

数据响应包含俩个方面的内容,一是数据格式的封装,一是数据响应类型.先说数据响格式封装,为了别于运维,一般我们需要将响应结果封装到函数里面,这样前端获取的数据结构统一。对于api来说,响应到前端的数据包含如下几个参数l code:用于指示数据请求状态,200表示成功l data:后端服务返回的基础数据,一般是对象l msg:后端调用返回的操作提示,如恭喜你操作成功或者失败则提示失败原因l rows:...

2018-02-19 10:42:25 1395

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5.6 控制器参数校验

参数校验主要用于校验前端提交参数的合法性和合理性,当前有很多开源校验框架,事实上gin集成了go-playground/validator.vx 作为校验插件,当前最新版本是v9,详细文档见https://godoc.org/gopkg.in/go-playground/validator.v9go-playground/validator.vx 功能非常强大,不但内置了丰富的校验方法如email...

2018-02-19 10:39:57 2763

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5.5 控制器模型绑定

我们采用gin框架内置绑定操作进行模型绑定,常见方法分为俩类,一类是MustBind类,像Bind,BindJSON,BindQuery都是这一类,这一类绑定主要特征是一旦绑定失败则直接返回400错误;另一类绑定是ShouldBind类,像函数ShouldBind,ShouldBindJSON,ShouldBindQuery都是这一类,这一类绑定一旦失败,并不会立即响应400错误,而是将错误信息返...

2018-02-19 10:35:38 2777

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5.4 控制器参数绑定

controller绑定参数常用如下方法1、 获取path中的参数// this one will match /user/john/ and also /user/john/send// If no other routers match /user/john, it will redirect to /user/john/router.GET("/user/:name/*action", fu...

2018-02-19 10:29:55 1586

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5.3 资源控制器

一般来说我们实现api服务器无需资源控制器,因为api一般只需要响应json/xml,但有部分应用比如cms,需要考虑到静态资源服务,这里我们需要使用资源控制器。资源控制器设计需要考虑几个方面l 资源需要实现缓存,这样可以加快系统访问速度。l 资源管理器需要支持灵活配置,因为很多资源服务是和nginx服务器反向代理相互整合的,需要考虑易整合性。l 资源管理需要统一规划。资源有静态的如css、js文...

2018-02-19 10:26:19 1782

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5.2 跳转和重定向

跳转重定向实现非常简单,我们调用gin框架内置的即可func (ctrl *PageController)Redirect(ctx *gin.Context){   ctx.Redirect(302,"/")}   本文源代码源代码获取地址 https://github.com/winlion/restgo待提供源代码清单10.1 restgo后台管理框架https://github.com/wi...

2018-02-19 10:22:46 2039

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解5 控制器C

无论多么先进的框架,mvc思想都是值得借鉴的, mvc是模型(model)-视图(view)-控制器(controller)的缩写,他是一种软件设计典范,他用业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,这样做有巨大的好处,他在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。本章节重点阐述controller层.5.1 控制器定义控制器文件通常放在cont...

2018-02-19 10:20:35 4677

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解4 路由配置

4.1 路由统一管理路由的本质是将用户请求的requesturi与后端实现的业务函数进行绑定,比如用户访问http://localhot/user/register  , requesturi 为/user/register ,代表用户需要调用注册业务,后端需要提供一个函数,或者展示注册页面,或者提供注册账号服务。另外,随着系统的日益复杂,路由配置参数越来越多,如果不统一管理将会导致前短接口混乱,...

2018-02-19 10:17:26 3751

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解3 系统常用配置参数

3.1 系统常用配置参数对于一个web应用,我们需要关注的参数很多,如下代码展示了常用的参数配置#应用运行模式,我们采用了gin框架,目前支持debug/release/test三种restgo.app.mode=debug#应用的名称,以后扩展,用做应用标识,便于分布式计算restgo.app.name=restgo演示#应用部署的访问协议,支持http/https两种restgo.app.pr...

2018-02-19 10:08:44 4437

原创 golang实战使用gin+xorm搭建go语言web框架restgo详解2 框架基本架构

2、框架基本结构一个典型的项目框架,文件夹目录如下,下面我们来逐一说明这些文件夹或文件的作用.2.1 控制器文件夹controller该目录主要存储控制器文件,特别地,我们做如下约定1、 文件名称首字母一律大写,后面必须添加Controller结尾,用做标识这是控制器文件,如UserCtrl,我们就能一目了然地看到这是一个控制器文件2、 我们约定控制器文件名必须和业务强相关,比如用户相关的控制器,...

2018-02-19 10:03:27 9198 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除