首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API
前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳...阅读全文
go-sniffer使用
介绍抓取项目中如:mysql,redis,mongodb,http等,数据库请求或者网络请求,命令行展示。工作中一直用于抓取项目中的数据库sql语句\redis语句等,便于调试。个人推荐用它来抓mysql的请求,可以清晰地看到各种sql语句。支持协议:mysqlredismongodbhttpgithub地址https://github.com/40t/go-sniffer安装过程中遇到的问题1、下载go-sniffer时提示command not foundgo get -v -u githu...阅读全文
VSCode必装Go语言以下插件
VSCode必装Go语言以下插件 VSCode 必须安装以下插件: 首先你必须安装 Golang 插件,然后再给 Go 安装工具包。 在 VS Code 中,使用快捷键:command+shift+P,然后键入:go:install/update tools,将所有 16 个插件都勾选上,然后点击 OK 即开始安装。 Installing 16 tools at /Users/maiyang/develop/goworkspace//bin gocode gopkgs go-outline go...阅读全文
对称加密-DES的原理和实现(Golang源码)
模板引擎对LaTeX支持不太好,可以查看静态页面:链接 个人主页 DES算法 DES的基本构造元件 初始置换(Initial Permutation,IP) 初始置换为64位数组,Golang中采用的初始置换如下所示 // ctypto/des/const.go package des // Used to perform an initial permutation of a 64-bit input block. var initialPermutation = [64]byte{ 6, 1...阅读全文
Go Strings 源码
模板引擎对LaTeX支持不太好,可以查看静态页面:链接 个人主页 Join Join 方法在字符串拼接的时候使用Builder,通过计算出Builder的大小,只需要分配一次空间。 // Join concatenates the elements of its first argument to create a single string. The separator // string sep is placed between elements in the resulting stri...阅读全文
浅谈服务可观察性的三个指标
当论及可观察性时,不同的人往往会给予不同的反应。 更多的人会反问:什么是可观察性? 如何定义可观察性? 如果说服务的可观察性不容易定义,那么我们可以换个词来类比: 可视化, 即如何做到服务的可视化? 再讨论服务可视化之前,我们先来看看它的近亲:数据可视化。 每当论及数据可视化时,业界会有一些成熟的可视化模型来供我们落地使用。对这些模型进行抽象以后,我们可以发现,数据可视化的核心在于: 数据。 展现模型 数据,指的是大量的,具备有效业务含义的数据。 这些数据可以是固定的(例如一次请求所产生的数据)...阅读全文
C/C++符号隐藏与依赖管理(四):依赖管理
一个项目中,除了非常底层的软件模块外,大多数模块都需要其它的模块的协助才能完成功能,这需要借助模块之间的依赖管理能力。 依赖管理包含如何控制模块间的最小化依赖,如何发布自己的API,如何获取别人的API,以及如何对依赖关系进行追溯和控制,包括解决冲突。 依赖管理不仅决定了模块间的协作方式,还决定了单一模块能否高效的独立开发、构建和测试,以及能否独立的进行发布。 前文我们总结了每个模块如何做好自己的符号隐藏与头文件设计,那么模块之间的依赖又要如何管理和维护呢? 为了回答这个问题,我们先来审视下不同...阅读全文
(双语)Go语言的更新也将难逃疫情影响
Go语言经常被称为“Golang”,是一门高效、易学、受到广泛应用和开发者喜爱的计算机编程语言。一般情况下,Go语言维持着半年发布一次更新的节奏。但是,随着疫情在世界范围内的发展,Go语言的更新也将受到影响。下面,我们就从英语原文来理解一下所受影响的情况,顺便了解一下相关的科技英语词汇。 As we face this pandemic together and do our part to stay home and contain the spread, many of Google's v...阅读全文
从golang到goland:我踩过的坑
前言:因为一些需要,从昨天开始安装GO语言开发环境,以及相应的IDE。从golang到goland,就上手度而言,golang真的不算友好,与python相比,断断续续折腾了两天,期间几次达到j“被劝退的”边缘,不过好在最后还是搭建好了环境。具体情景(成功运行以下Robotgo演示代码) package main //演示Robotgo的部分用法 import ( "fmt" "github.com/go-vgo/robotgo" ) func main() { fmt.Println("hek...阅读全文
从0开始学架构: 1. 互联网架构演义
架构的终极目标是降本增效。是各方面折中的结果。 本文以互联网软件架构的演进之路为主线,结合案例分析每个阶段架构的适用场景、技术栈和优缺点。 0、架构的本质 架构是对业务场景抽象后,对各方面因素折中后的结果,这些因素包括: 业务复杂度 数据规模大小 团队技术栈/研发能力 时间成本 运维成本 只有对这些因素都妥善折中后,才能达到降本增效的目的。 场景驱动架构不断演进,脱离场景谈架构都是耍流氓。 1、架构演进概述 架构演进 从单体架构演进到微服务架构的精髓用一个字概括:拆。 2、单体架构设计与实践 单...阅读全文
首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API
前言 这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了一百万,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在千万级,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见:status.goproxy.cn),我们终于使得 goproxy.cn 达到了零错误率!现在的 goproxy.cn 可以说是很稳...阅读全文
Go语言入门(七)goroutine和channel
goroutine和channel goroutine 多线程 func hello() { //fmt.Printf("Hello Goroutine!!\n") for i:=0;i<100;i++ { fmt.Printf("hello:%d\n",i) time.Sleep(time.Millisecond) } } func main() { go hello() //启动了一个独立的线程,使其与下面的代码交替执行,使之成为一个多线程 //fmt.Printf("main functi...阅读全文
Go语言入门(七)goroutine和channel
goroutine和channel goroutine 多线程 func hello() { //fmt.Printf("Hello Goroutine!!\n") for i:=0;i<100;i++ { fmt.Printf("hello:%d\n",i) time.Sleep(time.Millisecond) } } func main() { go hello() //启动了一个独立的线程,使其与下面的代码交替执行,使之成为一个多线程 //fmt.Printf("main functi...阅读全文
Go的条件语句「遇到问题该怎么办?先假设、后执行」
IF 条件语句 package main import "fmt" func main() { var A, B int = 520, 1314 if A > B { fmt.Println("A > B") } if A < B { fmt.Println("B < A") } fmt.Println("程序到此运行结束......") } /* 输出: B < A 程序到此运行结束...... */ 复制代码上面我们声明两个 int 变量 A = 520 和 B = 1314 第一个 IF ...阅读全文
【教程】Gin框架的路由快在哪里? - 轩脉刃de刀光剑影
![封面.png](https://static.studygolang.com/200330/12d2270cd9283182c155303587e8ed18.png) https://www.bilibili.com/video/BV1q7411U7qf/ 【教程】Gin框架的路由快在哪里? - 轩脉刃de刀光剑影 轩脉刃de刀光剑影。 1 gin路由的源码解析 2 带你一步步分析 3 同步绘制流程图 流程图关注公众号xuanmairen,回复htt...阅读全文
Go语言中的fmt.Scan使用说明
在go语言中如果想获取用户输入,会用到Scan方法。scan在go语言中有很多中,今天介绍一下他们的使用方法和不同点。 和print类似,scan也分为三大类: Scan、Scanf和Scanln: 从标准输入os.Stdin读取文本(从终端获取数据) Fscan、Fscanf、Fscanln: 从指定的io.Reader接口读取文本(通用) Sscan、Sscanf、Sscanln: 从一个参数字符串读取文本(从字符串string获取数据) Scan: 语法: func Scan(a ...i...阅读全文
从零学习 Go 语言(06):数据类型之字典与布尔类型
**系列导读 ** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygolang.com/articles/27365) [从零学习 Go 语言(02):学习五种变量创建的方法](https://studygolang.com/articles/27432) [从零学习 Go 语言(03):数据类型之整型与浮点型](https://studygolang.com/articles/27440) [从零学习 Go 语言(04):byte、...阅读全文