Golang-02 gin-json-logrus学习笔记

今日份学习笔记 gin学习知识点: GET/POST接口编写方法 解析JSON参数,并绑定到对象 解析Header参数,并绑定到对象 logrus日志的基本使用 0x01 完整代码 完整代码 先上完整代码 , 有用到第三方依赖的地方, 请自行 go get -u XXX即可. package main import ( "net/http" "os" "time" "github.com/gin-gonic/gin" "github.com/sirupsen/logrus" ) var log ...阅读全文

简书 2019.08.24 17:09 国服最坑开发

go 学习笔记之环境搭建

千里之行始于足下,开始 `Go` 语言学习之旅前,首先要搭建好本地开发环境,然后就可以放心大胆瞎折腾了. `Go` 的环境安装和其他语言安装没什么特别注意之处,下载安装包下一步下一步直到完成,可能唯一需要注意的就是 `$GOPATH` 环境变量的设置问题. 不过,简单起见,目前采用默认配置,等到比较熟悉 `Go` 语言时候再自定义设置也不迟,因此采用喜闻乐见的傻瓜式安装方式吧! ![go-base-setup-index.png](https://upload-images.j...阅读全文

Go语言中文网 2019-08-24 17:19:52 snowdreams1006

go 学习笔记之走进Goland编辑器

工欲善其事必先利其器,命令行工具虽然能够在一定程度上满足基本操作的需求,但实际工作中总不能一直使用命令行工具进行编码操作吧? 学习 `Go` 语言同样如此,为此需要寻找一个强大的 `IDE` 集成环境帮助我们快速开发,据我所知,市面上比较流行的可能有三个选择: - `LiteIDE X` : [`LiteIDE`](http://liteide.org/cn/) 是一款简单,开源,跨平台的 `Go IDE`. - `GoLand` : [`GoLand`](https://www....阅读全文

Go语言中文网 2019-08-24 17:16:39 snowdreams1006

go 学习笔记之有意思的变量和不安分的常量

首先希望学习 `Go` 语言的爱好者至少拥有其他语言的编程经验,如果是完全零基础的小白用户,本教程可能并不适合阅读或尝试阅读看看,系列笔记的目标是站在其他语言的角度学习新的语言,理解 `Go` 语言,进而写出真正的 `Go` 程序. 编程语言中一般都有变量和常量的概念,对于学习新语言也是一样,变量指的是不同编程语言的特殊之处,而常量就是编程语言的共同点. 学习 `Go` 语言时尽可能站在宏观角度上分析变量,而常量可能一笑而过或者编程语言不够丰富,所谓的常量其实也是变量,不管怎么样现在...阅读全文

Go语言中文网 2019-08-24 17:14:11 snowdreams1006

go 学习笔记之值得特别关注的基础语法有哪些

在上篇文章中,我们动手亲自编写了第一个 `Go` 语言版本的 `Hello World`,并且认识了 `Go` 语言中有意思的变量和不安分的常量. 相信通过上篇文章的斐波那契数列,你已经初步掌握了 `Go` 语言的变量和常量与其他主要的编程语言的异同,为了接下来更好的学习和掌握 `Go` 的基础语法,下面先简单回顾一下变量和常量相关知识. ## 有意思的变量和不安分的常量 - 变量默认初始化有零值 ```go func TestVariableZeroValue(t *...阅读全文

Go语言中文网 2019-08-24 17:12:58 snowdreams1006

go 学习笔记之值得特别关注的基础语法有哪些

在上篇文章中,我们动手亲自编写了第一个 `Go` 语言版本的 `Hello World`,并且认识了 `Go` 语言中有意思的变量和不安分的常量. 相信通过上篇文章的斐波那契数列,你已经初步掌握了 `Go` 语言的变量和常量与其他主要的编程语言的异同,为了接下来更好的学习和掌握 `Go` 的基础语法,下面先简单回顾一下变量和常量相关知识. ## 有意思的变量和不安分的常量 - 变量默认初始化有零值 ```go func TestVariableZeroValue(t *...阅读全文

Go语言中文网 2019-08-24 17:12:39 snowdreams1006

Golang中使用断路器

本文学习参考自:Circuit Breaker pattern 和 cep21/circuit 业务问题场景 在业务系统中,通常存在服务之间的相互调用,例如服务A调用服务B,当出现如下情形: 服务A与服务B之间的网络出现异常 服务B过载 服务B出现异常 服务A应该减少对服务B的调用量,甚至服务A应该停止调用服务B,有必要的话,还可以采取相应的降级措施`。当服务B恢复正常后,才开始继续调用服务B。 断路器模式 在家庭电路中有一个叫断路器的安全设备,当出现电路过载、短路、漏电等情况时,就会发生跳闸,...阅读全文

yangxikun.com 2019-08-24 17:04 yangxikun.com

Golang如何才能写出值得阅读的代码

不忘初心,砥砺前行 作者 | 陌无崖转载请联系授权 导语什么样的代码,才算优雅的代码,身为程序员,写代码就像写文章,写出好的文章不仅自己读着赏心悦目,同时也会让读者受到启发。然而事实上,大多数我们去回顾或者维护我们之前的代码,浮现在你眼前的是对自己代码的厌恶,会严重怀疑当时写这些代码时,大概是脑子进了水。那么该如何写好的优雅的代码?Hello World我们仍然从最简单的开始,编写一个hello函数func Hello(name string) string { return "Hello," ...阅读全文

微信公众平台 2019-08-24 16:15:56 陌无崖

go语言iris+gorm API项目模板restful

最近在学习Go语言的iris框架和gorm,发现资料还是挺少的。自己写了一个管理图书的增删改查项目。 希望能给想入门go语言的朋友一个参考。 项目地址 https://github.com/pppercyWan... 项目结构 conf 配置文件 controllers 控制器 接受参数 api的入口 datasource 数据库配置 models 结构体模型 repo 数据库的操作 route 注册路由 service 业务逻辑代码 utils 工具类 config.json 配置文件的映射 ...阅读全文

Segmentfault 2019-08-25 17:02:38 pppercyWang

go 学习笔记之数组还是切片都没什么不一样

上篇文章中详细介绍了 `Go` 的基础语言,指出了 `Go` 和其他主流的编程语言的差异性,比较侧重于语法细节,相信只要稍加记忆就能轻松从已有的编程语言切换到 `Go` 语言的编程习惯中,尽管这种切换可能并不是特别顺畅,但多加练习尤其是多多试错,总是可以慢慢感受 `Go` 语言之美! 在学习 `Go` 的内建容器前,同样的,我们先简单回顾一下 `Go` 的基本语言,温度而知新可以为师矣! ## 上节知识回顾 > 如需了解详情,请于微信公众号[雪之梦技术驿站]内查看 [go 学习...阅读全文

Go语言中文网 2019-08-24 12:00:38 snowdreams1006

go 学习笔记之数组还是切片都没什么不一样

上篇文章中详细介绍了 `Go` 的基础语言,指出了 `Go` 和其他主流的编程语言的差异性,比较侧重于语法细节,相信只要稍加记忆就能轻松从已有的编程语言切换到 `Go` 语言的编程习惯中,尽管这种切换可能并不是特别顺畅,但多加练习尤其是多多试错,总是可以慢慢感受 `Go` 语言之美! 在学习 `Go` 的内建容器前,同样的,我们先简单回顾一下 `Go` 的基本语言,温度而知新可以为师矣! ## 上节知识回顾 > 如需了解详情,请于微信公众号[雪之梦技术驿站]内查看 [go 学习...阅读全文

Go语言中文网 2019-08-24 11:59:25 snowdreams1006

go 学习笔记之go是不是面向对象语言是否支持面对对象编程?

![go-oop-about-oop-elephant.jpg](https://upload-images.jianshu.io/upload_images/16648241-278df750df5691ca.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 面向对象编程风格深受广大开发者喜欢,尤其是以 `C++`, `Java` 为典型代表的编程语言大行其道,十分流行! 有意思的是这两中语言几乎毫无意外都来源于 `...阅读全文

Go语言中文网 2019-08-24 11:49:47 snowdreams1006

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

问题提出 一致性hash是什么?假设有4台缓存服务器N0,N1,N2,N3,现在需要存储数据OBJECT1,OBJECT2,OBJECT3,OBJECT4,OBJECT5,OBJECT5,OBJECT7,OBJECT8, 我们需要将这些数据缓存到这4台服务器上,相应的问题是 如何设计数据存放策略?即ObjectX 应该存放在哪台服务器上? 为了解决这个问题,我们有如下几个思路。 1. 余数hash方案 采用hash(Objectx)%4来确定服务器节点 假设 hash(OBJECT1)=2,由 ...阅读全文

简书 2019.08.24 00:20* 非正式解决方案

[Skill]程序员画图参考——流程图、时序图、算法原理图和系统架构图

前言 在简单学习Golang和C++基础语法后,我需要阅读系统源码,为了更好理解系统架构、系统内部模块交互和不同业务场景下的数据流,绘制一些简单流程图、时序图和系统架构图是有必要的。 主要工具: process on ppt 系统架构图 最原始的系统架构图,简单分层展示不同层次的模块,加上基础服务、公共服务和监控服务: image 加上数据流的系统架构图: image 流程图 简单业务流程图: image 加上接口的流程交互图: image 接口交互图 简单的多个接口交互逻辑图: image 模...阅读全文

go 学习笔记之详细说一说封装是怎么回事

关注公众号[雪之梦技术驿站]查看上篇文章 猜猜看go是不是面向对象语言?能不能面向对象编程? 虽然在上篇文章中,我们通过尝试性学习探索了 Go 语言中关于面向对象的相关概念,更确切的说是关于封装的基本概念以及相关实现. 但那还远远不够,不能满足于一条路,而是应该尽可能地多走几条路,只有这样才能为以后可能遇到的问题积攒下来经验,所以这一节我们将继续探索封装. 何为探索性学习 通过现有知识加上思想规则指导不断猜想假设逐步验证的学习过程是探索性学习,这样既有利于我们思考又能加深我们对新知识的理解,何乐...阅读全文

Segmentfault 2019-08-25 17:02:37 雪之梦技术驿站

深入理解Go之generate

概述 开发中经常有定义错误码这样的需求,错误码唯一标识具体的错误信息。另外还需要设置每个错误的具体描述。在 HTTP 协议中,200 表示 "OK",404 表示"Not Found"。在 Linux 系统中,ENOENT 的值为 2,表示"No such file or directory"。syscall包中定义了Errno类型表示系统错误码,非常易用使用,建议去看看。 每次定义错误码的时候,同时需要添加描述信息。而且描述信息经常会忘。本文介绍go generate + stringer工具...阅读全文

掘金 2019年08月23日 darjun

深入理解Go之==

概述 相信==判等操作,大家每天都在用。之前在论坛上看到不少人在问 golang ==比较的结果。看到很多人对 golang 中==的结果不太了解。确实,golang 中对==的处理有一些细节的地方需要特别注意。虽然平时可能不太会遇到,但是碰到了就是大坑。本文将对 golang 中==操作做一个系统的介绍。希望能对大家有所帮助。 类型 golang 中的数据类型可以分为以下 4 大类: 基本类型:整型(int/uint/int8/uint8/int16/uint16/int32/uint32/i...阅读全文

掘金 2019年08月23日 darjun