GOSUMDB 设置私库

GOSUMDB(go checksum database)是Go官方为了go modules安全考虑,设定的module校验数据库,服务器地址为:sum.golang.org 你在本地对依赖进行变动(更新/添加)操作时,Go 会自动去这个服务器进行数据校验,保证你下的这个代码库和世界上其他人下的代码库是一样的。 和go.mod一样,Go 会帮我们维护一个名为go.sum的文件,它包含了对依赖包进行计算得到的校验值 环境变量GOSUMDB可以用来配置你使用哪个校验服务器和公钥来做依赖包的校验 Go...阅读全文

简书 2021-03-27 16:32:39 如水网

当红开发语言Go,真的是未来的技术主流吗?

摘要:文将详细介绍 Golang 的语言特点以及它的优缺点和适用场景,带着上述几个疑问,为读者分析 Go 语言的各个方面,以帮助初入 IT 行业的程序员以及对 Go 感兴趣的开发者进一步了解这个热门语言。本文分享自华为云社区《大红大紫的 Golang 真的是后端开发中的万能药吗?》,原文作者:Marvin Zhang 。前言城外的人想进去,城里的人想出来。-- 钱钟书《围城》随着容器编排(Container Orchestration)、微服务(Micro Services)、云技术(Cloud...阅读全文

简书 2021-03-27 12:32:40 华为云开发者社区

Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题

背景2020 年 4 月,我们开始尝试实现 go 语言的分布式事务框架 Seata-Golang。众所周知,Seata AT 模式以无业务代码侵入的特点,被广大开发者推崇。Java 版 Seata AT 模式通过对 DataSource 数据源进行代理,在 sql 语句执行时,对 sql 拦截解析,获取数据库对应数据在 sql 语句执行前后的副本,序列化后保存起来,在 TC 协调回滚时用来回滚对应数据。实现 go 版本 client 的 AT 模式时,怎样对业务开发者更友好,***更少,成了首要...阅读全文

51CTO博客 2021-03-27 11:28:53 mob604756e46771

deepin下配置protobuf(含Go语言protoc-gen-go插件安装)

deepin下安装protobuf 首先安装依赖 sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y 然后进入GOPATH下合适的目录,如果没有目录就自己创建,获取protobuf源码 cd $GOPATH/src/github.com/golang/git clone https://github.com/protocolbuffers/protobuf.git 再进入protobuf...阅读全文

51CTO博客 2021-03-26 09:22:59 ShixuanLiu

用GoLand写Go语言时怎么对同一个包、不同包下的文件中的方法进行调用?

用GoLand写Go语言时怎么对同一个包、不同包下的文件中的方法进行调用?1 同包裹不同文件下的方法调用 方法1目录结构:main.go:package main import ( "fmt" ) /** 测试同包裹不同文件下的方法调用 方法1 设置所有文件中的package都为main才可以运行 */ func main(){ fmt.Println("我是main方法,将要测试相同包裹不同文件下的方法调用:") function1() function2() }function1.go:pa...阅读全文

51CTO博客 2021-03-27 10:06:21 mob604756e54876

当红开发语言Go,真的是未来的技术主流吗?

摘要:文将详细介绍 Golang 的语言特点以及它的优缺点和适用场景,带着上述几个疑问,为读者分析 Go 语言的各个方面,以帮助初入 IT 行业的程序员以及对 Go 感兴趣的开发者进一步了解这个热门语言。本文分享自华为云社区《大红大紫的 Golang 真的是后端开发中的万能药吗?》,原文作者:Marvin Zhang 。前言城外的人想进去,城里的人想出来。-- 钱钟书《围城》随着容器编排(Container Orchestration)、微服务(Micro Services)、云技术(Cloud...阅读全文

Segmentfault 2021-03-29 09:32:35 华为云开发者社区

Go 语言数据类型

在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:序号类型和描述1布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。2数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。3字符串类型: 字符串就是一串...阅读全文

Segmentfault 2021-03-29 09:32:34 爱吃肉的猪小屁

2021-03-26:给定一个正整数N,表示有N份青草统一堆放在仓库里。有一只牛和一只羊,牛先吃,羊后吃,它俩轮流吃草。不管是牛还是羊,每一轮能吃的草量必须是:1,4,16,64…(4的某次方)...

2021-03-26:给定一个正整数N,表示有N份青草统一堆放在仓库里。有一只牛和一只羊,牛先吃,羊后吃,它俩轮流吃草。不管是牛还是羊,每一轮能吃的草量必须是:1,4,16,64…(4的某次方)。谁最先把草吃完,谁获胜。假设牛和羊都绝顶聪明,都想赢,都会做出理性的决定。根据唯一的参数N,返回谁会赢。 福大大 答案2021-03-26: 1.自然智慧即可。 递归。 2.根据结果反推,找规律。 N被5整除,余0或者余5,后手赢。 代码用golang编写,代码如下: package main impo...阅读全文

简书 2021-03-27 05:32:38 福大大架构师每日一题

Go 项目开发过程中的管理规范

平台项目管理规范(Go语言版本) 1 编码规范 go版本 go1.13.4 开发环境 linux/mac/windows git版本 2.7.3+ 是否需要go fmt 需要 是否需要代码检查 需要 是否需要golint 需要 是否需要本地自测 需要 是否需要go mod tidy && go mod vendor 需要 平台目录结构: apis api接口文档(goSwagger) APP-META 前端页面入口 bin 项目编译生成的二进制文件存放目录 configs 平台支持的模板配置模板...阅读全文

简书 2021-03-26 19:32:45 流雨声

Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题

背景 2020 年 4 月,我们开始尝试实现 go 语言的分布式事务框架 Seata-Golang。众所周知,Seata AT 模式以无业务代码侵入的特点,被广大开发者推崇。Java 版 Seata AT 模式通过对 DataSource 数据源进行代理,在 sql 语句执行时,对 sql 拦截解析,获取数据库对应数据在 sql 语句执行前后的副本,序列化后保存起来,在 TC 协调回滚时用来回滚对应数据。实现 go 版本 client 的 AT 模式时,怎样对业务开发者更友好,入侵更少,成了首要...阅读全文

简书 2021-03-26 19:32:45 阿里云云栖号

用 golang 1.11 module 做项目版本管理

go 1.11 有了对模块的实验性支持,大部分的子命令都知道如何处理一个模块,比如 run build install get list mod 子命令,第三方工具可能会支持的晚一些。到 go 1.12 会删除对 GOPATH 的支持,go get 命令也会变成只能获取模块,不能像现在这样直接获取一个裸包。 可以用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。 GO111MODULE=off 无模块支持,go 会从 GOPATH...阅读全文

简书 2021-03-26 19:32:43 72d89184c236

最简单的 gRPC 教程— 1 初识 gRPC

gRPC 是 Google 开源的一个高性能的 RPC(Remote Procedure Call) 框架,它具有如下的优点: 提供高效的进程间通信。gRPC 没有使用 XML 或者 JSON 这种文本格式,而是采用了基于 protocol buffers 的二进制协议;同时,gRPC 采用了 HTTP/2 做为通信协议,从而能够快速的处理进程间通信。 简单且良好的服务接口和模式。gRPC 为程序开发提供了一种契约优先的方式,必须首先定义服务接口,才能处理实现细节。 支持多语言。gRPC 是语言...阅读全文

简书 2021-03-26 19:32:43 roseduan

抓包工具在调试服务时候的应用

开发多年的服务器高手们,无论你是PHP,NodeJS,Java,Python,Golang。都会遇到一个问题。 当客户端测试一个api接口出错时。 你在心里嘀咕? 他访问地址是不是拼写对了? 他的服务有没有到我的controller(route)里面? 他的参数对不对? 我返回的对吗? 。。。。。 当这一系列发生时,大家一顿暂停服务器,加一系列printf。 多次增加printf后,可能找到了问题。有需要把printf再次删除,但是这会非常耗时,非常的麻烦。 所以,我实在忍无可忍,写了一个抓包解...阅读全文

简书 2021-03-26 19:32:40 asmcos

Golang过滤特殊隐藏字符 - json.Unmarshal报错处理

遇到的问题: 在处理接口数据时,json.Unmarshal 报错提示:invalid character '\x0f' after top-level value { 0} 。原因是json字符串末尾有隐藏的制表符。 网上搜索到的方案有正则匹配替换、json.Compact 压缩,都不生效。 示例代码如下: package main import ( "encoding/json" "fmt" ) type User struct { Name string Age int64 } func ...阅读全文

简书 2021-03-26 19:32:40 Avery_up

Debounce function(防抖函数) for golang

防抖的作用 业务如下: 假如我们是一个CDN服务商, 向用户提供了刷新某url缓存的功能, 假如有用户一直刷新某一个url的缓存, 而缓存是一个耗时操作(需要通知很多异地节点更新), 这可能会导致系统卡顿. 如何解决这个问题? 你可能会说, 这不就是简单的限流问题吗, 使用Nginx limit_req_zone指令即可实现. 但熟悉"节流"和"防抖"的人就能发现问题: 节流可能导致用户最后一次请求被丢弃, 在CDN刷新缓存业务中就会导致用户刷新了缓存, 可url没有被更新为最新文件. 而防抖保...阅读全文

简书 2021-03-26 19:32:38 bysir

15 Golang结构体详解(一)

Golang中没有“类”的概念,Golang中的结构体struct和其他语言中的类有点相似。和其他面向对象语言中的类相比,Golang中的结构体具有更高的扩展性和灵活性。 结构体的定义 type 类型名 struct { 字段名 字段类型 字段名 字段类型 } 字段名:表示结构体字段名,必须唯一 类型名:表示结构体字段名,在同一个包内不能重复 结构体的实例化 方式一 var 结构体实例 结构体类型 type Person struct { name string age int sex stri...阅读全文

简书 2021-03-26 19:32:38 learninginto

16 Golang结构体详解(二)

结构体方法和接受者 在go中,没有类的概念但是可以给类型(结构体、自定义类型)定义方法。所谓方法就是定义了接受者的函数。接受者的概念类似于其他语言中的this或self。 方法的定义格式 func (接受者变量 接受者类型) 方法名(参数列表) (返回参数) { 函数体 } 结构体是值类型 type Person struct { name string age int sex string } func main(){ var p1 = Person { name:"哈哈", age:20, ...阅读全文

简书 2021-03-26 19:32:38 learninginto

手撸golang GO与微服务 grpc

手撸golang GO与微服务 grpc 缘起 最近阅读 [Go微服务实战] (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 gitee: https://gitee.com/ioly/learning.gooop GRPC gRPC是跨平台、跨语言并且效率非常高的RPC方式。 gRPC默认使用protobuf。 可以用proto files创建gRPC服务, 用protobuf消息类型来定义方法参数和返回类型。 建议在gRPC里使用proto3, 因为这样可以使用gRPC支持的...阅读全文

简书 2021-03-26 19:32:37 老罗话编程

手撸golang GO与微服务 grpc

手撸golang GO与微服务 grpc缘起最近阅读 [Go微服务实战] (刘金亮, 2021.1)本系列笔记拟采用golang练习之gitee: https://gitee.com/ioly/learning.gooopGRPCgRPC是跨平台、跨语言并且效率非常高的RPC方式。 gRPC默认使用protobuf。 可以用proto files创建gRPC服务, 用protobuf消息类型来定义方法参数和返回类型。 建议在gRPC里使用proto3, 因为这样可以使用gRPC支持的全部语言, ...阅读全文

Segmentfault 2021-03-29 09:32:34 ioly

在 Go 中使用控制流

简介在上一模块中,你已了解 Go 的基础知识。 你探索了数据类型、变量、常量、函数和包。 你知道如何构建程序的逻辑,以及 Go 如何首选对代码进行组织。 因此,现在你已准备好学习如何使用 if/else、switches、for 之类的基本控制流和另一组关键字以 Go 方式编写程序。如果你以前有过遵循大多数 C 语法的编程语言(例如 C# 或 Java)的经验,则此模块中的几个部分会非常简单。 但在其他部分,你会看到 Go 中存在的细微差别。在本模块快要结束的时候,你会发现一个需要应用你目前已学...阅读全文

Segmentfault 2021-03-29 09:32:34 聚合数据