![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 64
韩亚军
为成为全栈工程师而努力
https://github.com/Han-Ya-Jun
展开
-
go每日新闻(2022-06-13)——Redis 知识总结
一、Go语言中文网Go 1.19 Beta1 发布了:一些改动挺好的Go 网络库 Gnet 解析二、腾讯技术工程三、云加社区四、亚军进化史五、幽鬼六、Go招聘七、云原生社区动态八、微服务实践1.Watermill 用go构建简易事件驱动程序2.分层web应用http的测试库 3.事件分发的库observe 4.Sqlc-connect 根据SQL生成连接go server代码 5.kratos 下一代身份认证server go中文网每日资讯: https://studygolang.com/go/godai原创 2022-06-14 20:16:05 · 430 阅读 · 0 评论 -
go每日新闻(2022-02-22)——细数 Context 使用场景
每日一谚:Write an example test rather than writing how to use API in a doc comment.go中文网每日资讯--2022-02-22 一、Go语言中文网带你十天轻松搞定 Go 微服务系列(六)二、Go招聘百度-HCG中台部门招聘Gopher这几个土拨鼠你都认识吗?三、亚军进化史Go技术日报(2022-02-21)——你应该如何选择笔记软件?四、Golang技术分享这 Go 的边界检查,简直让人抓狂~五、G.原创 2022-02-24 23:20:54 · 378 阅读 · 0 评论 -
2020年度技术文章盘点之Channel篇
Channel篇小米大佬走进Golang之Channel的数据结构走进 Golang 之 Channel 的数据结构面试官让我用channel实现sync包里的同步锁,是不是故意为难我?Go 基于 channel 实现连接池Channel 源码阅读Go goroutine 和 channel 详解Go channels 与并发channel 实现 sync 包里的同步锁Go 中的 Goroutine + Channel 真的能减少并发 Bug 吗?经典旧文:Go channel教程Go原创 2021-01-05 21:54:24 · 347 阅读 · 2 评论 -
go技术文章精选(2019)
gocn_news_set_2019gocn_news_2019-12-31Go 系列教程:https://dev.to/digitalocean/how-to-code-in-go-32p0Go modules:最小版本选择 https://tonybai.com/2019/12/21/go-modules-minimal-version-selection/部署服...原创 2020-01-03 00:52:06 · 103666 阅读 · 1 评论 -
go test和benchmark如何对指定方法进行测试?
go testdemo_test.gofunc TestDemo1(t *testing.T) { t.Log("test1")}func TestDemo2(t *testing.T) { t.Log("test2")}func BenchmarkDemo3(b *testing.B) { b.Log("benchmark1")}func BenchmarkDemo4...原创 2019-10-19 09:25:37 · 3005 阅读 · 0 评论 -
github 上Go项目使用Travis CI和Docker Hub实现持续集成
介绍在本文中,我们将介绍如何使用Github,Travis-CI和Docker Hub创建一个简单的持续集成过程。项目这次使用的一个项目是自己写的一个爬虫小程序(https://github.com/Han-Ya-Jun/news_watch_notice)项目目录news_watch_notice├── cmd //main├── conf├── dis├── Dock...原创 2019-05-16 00:50:10 · 1006 阅读 · 0 评论 -
Go里面如何实现广播?
在Go里面,channel是一种非常关键、方便的通信机制,但是通常我们想要将消息传递给多个消费者可能需要建立多个通道。只要channel的某个消息被某个消费者读取了,那么该值就会被移除,而其他消费者将不会再消费这个消息。如果我们想实现广播方式我们可能需要将消息写入N个channel。例如:func main() { ch := make(chan int) var wg sync.WaitG...翻译 2019-05-31 15:54:09 · 1646 阅读 · 1 评论 -
go程序如何利用docker image 编译多平台二进制程序
前言最近写一个小程序由于自己的电脑是windows,不过要编译成linux系统的二进制程序(该场景用镜像不合适),于是直接在阿里云的ECS(没有go环境)利用基础镜像进行了编译。代码目录ci_tools├── ci.sh├── mail.go├── main.gobuild.shdocker run --rm -i -v `pwd`:/go/src/ci -w /go/src/...原创 2019-05-30 00:05:50 · 604 阅读 · 0 评论 -
使用go mod的go程序如何写Dockerfile
代码目录结构gin_demo├── app│ └── app.go├── conf│ └── app.ini├── Dockerfile├── docs│ └── sql│ └── mjs.sql├── go.mod├── go.sum├── main.go├── middleware│ ├── jwt│ │ └── jwt.go...原创 2019-05-30 00:13:09 · 3593 阅读 · 1 评论 -
go程序基于阿里云CodePipeline的一次devops实践
背景最近朋友有个项目代码托管用的码云,测试服务器(阿里云ECS)只有一台,三四个人开发,于是想基于阿里云的CodePipeline快速打造一套自动化cicd的流程,使用docker来进行多套环境部署。CodePipeline 介绍阿里云CodePipeline是兼容Jenkins标准的、提供快速可靠的持续集成与持续交付服务。基于容器技术和阿里云基础服务架构,提供稳定和安全的代码/Docker...原创 2019-05-30 01:37:32 · 387 阅读 · 0 评论 -
go string和int互相转换的几种方式
总结了下golang中字符串和各种int类型之间的相互转换方式:string转成int:int, err := strconv.Atoi(string)string转成int64:int64, err := strconv.ParseInt(string, 10, 64)int转成string:string := strconv.Itoa(int)int64转成s...原创 2019-06-17 00:25:15 · 30448 阅读 · 0 评论 -
go技术文章梳理(2017)
gocn_news_2017-12-31分布式系统下的Go channels https://medium.com/@matryer/introducing-vice-go-channels-across-many-machines-bcac1147d7e2Go Socket编程之teleport框架是怎样炼成的 https://www.jianshu.com/p/7120...原创 2019-06-22 12:26:17 · 48123 阅读 · 0 评论 -
go技术文章梳理(2018)
gocn_news_2018-12-31Go 入门简介:http://t.cn/EbjzeStGo GraphQL 新手指南: https://tutorialedge.net/golang/go-graphql-beginners-tutorial/你需要 Go web 框架吗:https://medium.com/@tusharsoni/do-you-need-a-...原创 2019-06-22 12:28:41 · 76693 阅读 · 0 评论 -
go里面如何将[]int json序列化为[]string?
对于单一的int 序列化为stringtype Demo struct { ID int64 `json:"id,string"`}注意json tag以下的用法:"json"标签的用法:1、json:"-":编码的时候会忽略这个字段。2、json:"newName":指定字段在JSON字符串的key名字。3、json:"newName,omitempty":如果这个字段是空值,...原创 2019-08-06 15:07:57 · 2643 阅读 · 2 评论 -
go读取环境变量参数
方式package mainimport ( "fmt" "os")/** @Author:15815* @Date:2019/5/8 8:49* @Name:env* @Function:获取环境变量的值 */func main(){ environ := os.Environ() for i := range environ { fmt.Println(...原创 2019-05-08 08:55:01 · 7613 阅读 · 0 评论 -
如何将链接生成二维码或者二维码图片输出到console?
qrcode2console github地址链接生成二维码输出到console或者是二维码图片输出到console安装go get -u github.com/Han-Ya-Jun/qrcode2console示例func TestNewQRCode2ConsoleWithUrl(t *testing.T) { qr := NewQRCode2ConsoleWithUrl("h...原创 2019-05-08 00:04:12 · 2352 阅读 · 0 评论 -
爬取GoCn每日新闻并推送到微信/邮箱
爬取GoCn每日新闻并推送到微信/邮箱github: https://github.com/Han-Ya-Jun/news_watch_notice使用方法通过微信通知docker run -v /etc/localtime:/etc/localtime:ro \-e NOTICE_WECHAT_USERS=特鲁尼克 hanyajun/news_watch_noticeNOTIC...原创 2019-05-10 01:46:19 · 1533 阅读 · 0 评论 -
beego框架之orm的使用
最近想项目接触到了用go语言来操作数据库msyql,用到了beego的orm,beego ORM(Object Relational Mapping) 是一个强大的 Go 语言 ORM 框架。它的灵感主要来自 Django ORM 和 SQLAlchemy。功能还是比较强大的。原创 2017-10-28 18:50:56 · 20567 阅读 · 0 评论 -
go开发遇到的坑--range
先看下下面的代码package mainimport "fmt"type coder struct { Name string Age int}func main() { m := make(map[string]*coder) coders := []coder{ {Name: "han", Age: 24}, {Name:原创 2018-03-14 01:12:00 · 1121 阅读 · 0 评论 -
leedcode_最长连续数列
描述输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 O(n) 。输入54,55,300,12,56输出3。输入样例100,4,200,1,3,254,55,300,1215,4,3,2,11,2,3,4,5,6输出样例42156go实现思路将所有数都加入集合中,然后再遍历这些数,因为...原创 2018-09-30 21:03:30 · 895 阅读 · 0 评论 -
leedcode_大数相减
描述两个长度超出常规整形变量上限的大数相减,请避免使用各语言内置大数处理库,如 Java.math.BigInteger 等。输入有 N 行测试数据,每一行有两个代表整数的字符串 a 和 b,长度超过百位。规定 a>=b,a, b > 0。测试结果可以用 linux 小工具 bc进行测试是否正确。输出返回表示结果整数的字符串输入样例1231231...原创 2018-10-04 10:55:13 · 492 阅读 · 2 评论 -
leedcode_找出旋转有序数列的中间值
描述给出一个有序数列随机旋转之后的数列,如原有序数列为:[0,1,2,4,5,6,7] ,旋转之后为[4,5,6,7,0,1,2]。假定数列中无重复元素,且数列长度为奇数。求出旋转数列的中间值。如数列[4,5,6,7,0,1,2]的中间值为4。输入4,5,6,7,0,1,2输出4。输入样例11,2,34,5,6,7,0,1,212,13,14,...原创 2018-10-07 15:01:08 · 971 阅读 · 0 评论 -
leedcod-two sum
leedcode-two sum描述示例go实现时间复杂度分析描述给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]go实现...原创 2018-09-30 09:21:56 · 325 阅读 · 0 评论 -
leedcode_零钱兑换
情景一描述给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例1输入: coins = [1,2,5], amount = 3输出: 3解释: 11=5+5+1示例2输入: coins = [ 2], amount = 3输出: -1 解释: 不存在...原创 2018-11-13 18:04:14 · 358 阅读 · 0 评论 -
leedcode_合并有序数组
描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。注意:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。输入样例nums1 = [1,2,3,0,0,0], m = 3nums2...原创 2018-11-08 20:44:10 · 277 阅读 · 0 评论 -
圆环回原点问题
问题描述一个环上有10个点,编号为0-9,从0点出发,每步可以顺时针到下一个点,也可以逆时针到上一个点,求:经过n步又回到0点有多少种不同的走法举例:如果n=1,则从0出发只能到1或者9,不可能回到0,共0种走法如果n=2,则从0出发有4条路径:0->1->2, 0->1->0, 0->9->8, 0->9->0,其中有原创 2018-11-21 14:39:15 · 4730 阅读 · 0 评论 -
36进制加法
问题描述36进制由0-9,a-z,共36个字符表示,最小为’0’, ‘0’、'9’对应十进制的09,‘a’、'z’对应十进制的1035例如:'1b' 换算成10进制等于 1 * 36^1 + 11 * 36^0 = 36 + 11 = 47要求按照加法规则计算出任意两个36进制正整数的和如:按照加法规则,计算'1b' + '2x' = '48'要求:不允许把36进制数字整体转...原创 2018-11-22 17:18:41 · 3911 阅读 · 0 评论 -
k8s从入门到放弃--使用kubeadm快速安装kubernetes
kubeadm是Kubernetes官方提供的用于快速安装 Kubernetes集群的工具,通过将集群的各个组件进行容器化安装管理,通过kubeadm的方式安装集群比二进制的方式安装要方便不少,但是目录kubeadm还处于beta状态,还不能用于生产环境,Using kubeadm to Create a Cluster文档中已经说明kubeadm将会很快能够用于生产环境了。准备三台cento...原创 2019-04-19 11:53:11 · 2055 阅读 · 0 评论 -
go复盘笔记--再识Go语言
什么是Go?Go是一门 并发支持 、垃圾回收 的 编译型 系统编程语言,旨在创造一门具有在静态编译语言的 高性能 和动态语言的 高效开发 之间拥有良好平衡点的一门编程语言Go语言发展历史Go,全称golang,是Google开发的一种静态强类型、编译型、并发型并具有垃圾回收功能的编程语言。 Go从2007年末由Robert Griesemer、Rob Pike、Ken Thompson(...原创 2019-05-14 01:20:49 · 381 阅读 · 0 评论 -
go switch 默认值的坑
package mainimport "fmt"/** @Author:hanyajun* @Date:2019/5/14 9:49* @Name:_switch* @Function: switch */func ff() bool { return false}func main() { // switch 默认为true switch { case tr...原创 2019-05-14 11:45:27 · 1606 阅读 · 0 评论