使用 Golang 实现一个 JSON 命令行工具

首先先提一个问题,"abc" 、123 或者 [1, 2, 3] 是不是一个合法的 json ? 之前一直有在使用一个 json 的命令行工具 jq,这个工具是基于 flex 和 bison 来实现的(去了解这些是基于当年学习 php 的经历)。后来有段时间我又发现一个不错的词法和语法分析工具 antlr,它支持多种语言的生成,并且本身也提供了多种语言的基本语法文件。所以我就想能不用基于它实现一个 go 语言版的 json 命令行工具。 下面就开始一步一步行动吧(如果想直接看代码可以直接拉到底部...阅读全文

Segmentfault 2020-07-07 22:32:41 Scholer

golang time相关总结

前言 我们在php中对于时间操作主要是用时间戳和时间格式相互转换来计算,一般都是用时间戳进行计算,用时间格式进行展示,相对来说还是比较方便的。在golang中是有些区别的,主要是多了一个time对象,接下来我们来看一看 获取当前时间对象 在golang中,我们常用time.Now()来获取当前的时间 now := time.Now() //时间对象 fmt.Println(now) ****************** 打印结果 2020-07-07 11:12:48.795021 +0800 ...阅读全文

简书 2020-07-07 20:32:47 饭米粒_0ec3

Gox语言发送阿里云验证码短信的实例-GX42

下面是用Gox语言(1.05版本以上)内置的阿里云发送短消息服务包(github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi)来进行验证码短信发送的实例,是经过实际生产环境检验的实例。由于Gox语言与Go语言(Golang)的紧密关系,代码改为Go语言代码也是很容易的。 话不多少,直接看代码,代码中有详细的注释,非常好懂。 // 设置阿里云短信发送包的简称 alisms = github_aliyun_alibabacloudsdkgo_s...阅读全文

简书 2020-07-07 17:47:50 陆满庭

五年前一位“Java首席架构师”的自述

“在平台,有幸结识了一帮趣味相投资深码农,离开以后很难再有这么一个团队来成长了……想想都是幸运,成天跟一群这么优秀的人在一起,想变差都不容易。”现在负责熊猫 TV 整体基础架构工作,是一个快 9 年工龄的码农。在 2007 年毕业,和很多同行一样,也是从小公司起步,曾做过 ERP,信息安全,互联网社交平台、游戏平台等,现在工作是直播娱乐平台。写过几年的语言有 Java、C/C++、PHP、Golang,偶尔写点 Python、Lua、NodeJS 等。花在开源上的时间不多,但也开源一些个人代码,...阅读全文

简书 2020-07-07 17:47:50 Java斗帝之路

编程入门

编程入门 什么是编程 我们通过有固定格式和固定词汇的“语言”来控制他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然他们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去控制他人。 同样,我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。 编程语言也有固定的格式和词汇,我们必须经过学习才会使用,才能控制计算机。 总结:编程语言是用来控制计算机的一系列指令(Instructi...阅读全文

简书 2020-07-07 17:45:24 无心文先森

K8S集群部署Fabric笔记

1,安装docker 64 位版本的 CentOS 7 CentOS 系统的内核版本高于 3.10(uname -r命令可查看系统内核版本) 安装 Docker CE 设置 Docker 的镜像仓库并从中进行安装 下载 RPM 软件包并手动进行安装(例如,在不能访问互联网的隔离系统中安装 Docker) 1.从镜像仓库安装 确保 yum 包更新到最新: sudo yum update 安装一些必要的系统工具: yum-utils 提供了 yum-config-manager 实用程序,用于设置y...阅读全文

简书 2020-07-07 17:45:23 rectinajh

粗读web框架之go gin和python django

为什么引入web框架 web应用的本质 浏览器发送一个HTTP请求; 服务器收到请求,生成一个HTML文档; 服务器把HTML文档作为HTTP响应的Body发送给浏览器; 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示; 涉及的问题 解析http请求 找到对应的处理函数 生成并发送http响应 web框架工作流程 image image.gif ​ 中间件 中间件是请求或者应用开始和结束时注入代码的机制 常见的web中间件: 鉴权、打印log、session、统计信息、处理数...阅读全文

简书 2020-07-07 17:34:42 燕小乙1875

open-falcon-alarm 代码分析

总结:alarm消费由judge产生的redis报警事件,根据优先级高低是否做合并,发往不同的报警通道 高优先级报警比如p0: judge产生报警事件-->写入redis event:p0队列 -->alarm消费-->获取发送对象并处理调用回调函数(如果有)-->根据策略不同生成不同通道的报警(im,sms,mail,phone)等-->写入redis各个通道的发送队列 /im /sms /mail /phone -->发送报警的worker取出报警发送 低优先级报警比如p4: judge产生...阅读全文

Segmentfault 2020-07-07 22:32:41 ning1875

Go 使用validator进行后端数据校验

包下载:go get github.com/go-playground/validator/v10 一、概述 在接口开发经常会遇到一个问题是后端需要写大量的繁琐代码进行数据校验,所以就想着有没有像前端校验一样写规则进行匹配校验,然后就发现了validator包,一个比较强大的校验工具包下面是一些学习总结,详细内容可以查看validator 二、操作符说明 标记 标记说明 , 多操作符分割 | 或操作 - 跳过字段验证 三、常用标记说明 标记 标记说明 例 required 必填 Field或St...阅读全文

Go 语言操作 MySQL 之 SQLX 包

友情提示:此篇文章大约需要阅读 14分钟5秒,不足之处请多指教,感谢你的阅读。 订阅本站 SQLX 库 sqlx是 Go 的软件包,它在出色的内置database/sql软件包的基础上提供了一组扩展。 该库兼容sql原生包,同时又提供了更为强大的、优雅的查询、插入函数。 该库提供四个处理类型,分别是: sqlx.DB – 类似原生的 sql.DB; sqlx.Tx – 类似原生的 sql.Tx; sqlx.Stmt – 类似原生的 sql.Stmt, 准备 SQL 语句操作; sqlx.Name...阅读全文

Segmentfault 2020-07-07 22:32:40 Meng小羽

golang之类型解析

type T struct {} func (*T) foo(){ fmt.Println("foo,") } func (T) bar() { } type S struct { *T } s := S{} _ = s.T.foo s.T.foo() var t *T t.foo() _ = s.bar s.bar将被展开为(s.T).bar,而 s.T 是个空指针,解引用会 panic。而s.foo没有panic是因为T的方法集有foo(),而没有bar() 方法集规则如下: Values ...阅读全文

简书 2020-07-07 09:33:00 stevenyeahnet

golang面试题三

var k int = 1 var s = []int{1,2} 多重赋值分为两个步骤,有先后顺序, 算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式;赋值运算等同于 k, s[1] = 0, 3。 k, s[k] = 0, 3 fmt.Println(s[0] + s[1]) 输出是4 defer func() { //这是捕获panic(2)的地方 fmt.Print(recover()) }() defer func() { //recover只在第一层defer函数中对外层的...阅读全文

简书 2020-07-07 09:32:59 stevenyeahnet

golang入门到放弃:3.数组、切片、map

数组 func main(){ //数组定义 var arr =[3]int{} fmt.Println(arr) //[0 0 0] //指定数组元素 var arr1=[3]int{1,2,3} fmt.Println(arr1) //[1 2 3] //自动推导数组长度 var arr2=[...]int{1,2,3} fmt.Println(arr2) //[1 2 3] } 切片 //不写元素个数叫切片 必须写元素个数的叫数组 c := []int{1, 2, 3} fmt.Print...阅读全文

简书 2020-07-07 09:32:59 不留余白

betterbridge 脚本构思

BetterBridge 脚本构思 最近在构思一个可以帮助开发者集成 iOS, Android 插件的项目. 其中自动化集成部分, 一直在思考用什么比较好. Python 好像是个不错的选择. 我做过的其它项目有使用到 Python , 实际中, 很多开发者没有 Python , 也分不清 Python 2.7 , Python 3.x 。 Golang 可以不分平台, 打出来的包, 也不需要依赖环境. 缺点也有,打出来的包大, Golang 主要是做网络服务, 用来做本地命令, 不确定合不合适...阅读全文

简书 2020-07-07 09:32:48 火锅Hugo

利用Go优越的性能 设计与实现高性能企业级微服务网关 完整无密云盘分享

(毕设项目)Vue+Go前端后端一体化 企业级微服务网关项目 (毕设项目)Vue+Go前端后端一体化 企业级微服务网关项目完整无密云盘 【点击下载】 不管是基于Java、Python、PHP,还是基于Go的网站,网站流量越高,对网关性能要求越高,尤其是亿级流量网站中,网关更是核心,它作为接入层承载了流量转发、负载均衡、服务限流、熔断降级等功能。作为后端开发者,掌握网关技术,是后端架构能力的分水岭,懂得设计网关才能知道架构精妙所在,本课程带你手把手设计并实现一个通用型前端+后端一体的微服务网关项目...阅读全文

简书 2020-07-07 09:32:47 卡巴斯基_65ab