如果你用Go,不要忘了vet

go tool vet是你的好朋友,不要忽视它。vet是一个优雅的工具,每个Go开发者都要知道并会使用它。它会做代码静态检查发现可能的bug或者可疑的构造。vet是Go tool套件的一部分,我们会在以后的文章中详细描述tool套件。它和go编译器一起发布,这意味着它不需要额外的依赖,可以很方便地通过以下的命令调用:$ go tool vet <directory|files>本文中所有的go代码段可以正常编译。这使得go vet有价值:它可以在编译阶段和运行阶段发现bug。同时也注意,本文中的...阅读全文

阅读:44673 评论:2

Golang map

前些天看了DAVE CHENEY大神的直播。里面讲到了go的map实现。做个笔记 (我用的是go1.13 貌似大神直播时候用的是还没发布的1.15 所以本文中的代码都是1.13中的。与1.15略有差异) compile time rewriting: 左边对map的操作实际上被编译成了右边的调用 v := m["key"] -> runtime.mapaccess1(m, "key", &v) v, ok := m["key"] -> runtime.mapaccess2(m, "key", &...阅读全文

2020-05-12 11:35:48 郭老汉
阅读:673 评论:0

golang学习--slice

切片定义 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。 数组与切片 切片的数据实际是通过数组来保存的,每个切片都有三个信息:底层数组的指针、切片的长度(len)和切片的容量(cap)。 举个栗子,底层数组a := [8]int{0, 1, 2, 3, 4, 5, 6, 7}; 切片s1 := a[:5],切片和数组对应关系: Go-sli...阅读全文

2020-05-12 19:32:47 玖零儛
阅读:571 评论:1

Dockerfile命令详解及最佳实践

1. Dockerfile 命令详解: FROM 指定基础镜像(必选) 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指定的。而FROM就是指定基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。 在Docker hub上有非常多的高质量的官方镜像,有可以直接拿来使用的服务类的镜像,如 nginx、redis、mongo、mysql、httpd、php、tomcat 等...阅读全文

2020-07-02 00:33:31 左舷的风
阅读:637 评论:0

面试官:换人!他连进程线程协程这些特点都说不出,

前言 很早之前就在构思这篇文章的主题,进程线程可以说是操作系统基础,看过很多关于这方面知识的文章都是纯理论讲述,编程新手有些难以下咽。 于是写下这篇文章,用图解的形式带你学习和掌握进程、线程、协程,文字力求简单明了,对于复杂概念做到一个概念一张图解,即使你是编程小白也能看的明明白白,妈妈再也不用担心你的学习。 image Go 基础教程系列教程更新已接近尾声,对 Go 语言学习感兴趣但还没看过的的同学,可以在公众号历史文章查看。Go 基础教程接下来会进入并发编程和 Go 协程部分,为了更好的理解...阅读全文

2020-07-05 14:33:00 柠檬橙1024
阅读:787 评论:1

选型必看:RabbitMQ 七战 Kafka,差异立现

作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?”。基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别,但是这两种技术在底层实现方面是有许多差异的。 不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。 这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,...阅读全文

2020-07-14 07:32:55 老罗带你玩Java
阅读:2022 评论:0

GoBatch简介 —— 一款基于go语言的企业级批处理框架(Golang下的SpringBatch)

GoBatch是一款用go语言实现的企业级批处理框架,其设计思想来源于SpringBatch,相当于golang下的SpringBatch框架。 项目仓库地址: Github: https://github.com/chararch/gobatch Gitee: https://gitee.com/chararch/gobatch ## 功能 GoBatch的主要功能包括: 1. 以模块化方式构建批处理应用程序。 1. 管理多个批处理任务的运行。 1. 任务被分为多...阅读全文

2022-05-22 17:42:39 chararch
阅读:2075 评论:0