让你的Golang项目在IDE里跑起来(Goland使用入门-GOROOT、GOPATH、src、

前言每次新建项目,不熟悉go的项目结构,一般跑都跑不起来,每次都要重新搞一遍,好几回跑项目都会报类似File is invalid的错误有时候报其他奇怪的错误,今天就下决心整理一下,理一理概念 GOROOT、GOPATH、src、 pkg、bin,希望以后不要再出现这样的问题了,同时给看到文章的你一些帮助。熟悉golang项目目录结构要想让你的程序跑起来,要按照这样的目录结构,正常情况下有三个目录:|--bin|--pkg|--src其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;...阅读全文

51CTO博客 2021-01-27 14:06:16 mb5ff40ceab21c4

golang 指针讨论

好几天没有更新了,因为小熊给老板打了包票,要把 10 天的工作,压缩在 5 天,怎么压缩,靠加班咯。今天回家以后连不上那几台服务器,加班不成,写写文章。这两天特别惨,我的眼镜还丢了,上班只能靠很近才能看清。本来申请的显示器,被配送员送到其他同事那里了,结果那同事明知道箱子上的名字不是自己的还拆开用,要等明天才有的用了。我怎么这么倒霉??go 语言的教程拖拖拉拉写了好久了,本身比较简单,按部就班的写影响到了我的学习进度,所以我要加速度了,从这一篇开始。话不多说现在开始。指针c 中有指针的概念,在 ...阅读全文

51CTO博客 2021-01-27 11:52:26 mb5ff40ceab21c4

golang 结构体的思考

小熊工作做不完了,周末又要加班了, c++ 项目好不容易在不同的指令集编译出来,结果一跑就挂,连日志都没有,难受!go 语言中的结构体和 c++ 的结构体类似,如下定义一个结构体类型。type Body struct { name string age int}像这样就可以使用var body Bodybody.name = "coding3min"body.age = 12fmt.Println(body)输出{coding3min 12}go 中的类结构体在 go 中是最常用的一种语法,有没...阅读全文

51CTO博客 2021-01-27 11:51:06 mb5ff40ceab21c4

golang异常处理详解

小熊今天有意外收获,忍不住给大家分享我愉快的心情!昨天中午下楼取外卖的时候被一个同事认出来了,他问我:“是不是【编程三分钟】的作者,文章写的不错”。你知道吗!我当时就是一愣,然后差点感动到哭出来,虽然小熊的号比不上大牛的号,不能随便发一篇文章都有成千上万的阅读量;但是非常开心的是,我还有你们,默默的关注我,爱你们~!今天想和大家聊聊 golang 的异常处理异常处理思想在 go 语言里是没有 try catch 的概念的,因为 try catch 会消耗更多资源,而且不管从 try 里面哪个地方...阅读全文

51CTO博客 2021-01-27 11:48:50 mb5ff40ceab21c4

golang 架构设计原则 接口隔离原则

golang 架构设计原则 接口隔离原则 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 该书以java语言演绎了常见设计模式 本系列笔记拟采用golang练习之 接口隔离原则 接口隔离原则(Interface Segregation Principle, ISP)指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。设计接口时,应当注意以下几点: (1)一个类对另一个类的依赖应该建立在最小接口上。 (2)建立单一接口,不要建立庞大臃肿的接口。 (3)尽量细化...阅读全文

分布式架构:限流算法的分析与实现

推荐阅读: 我总结了72份面试题,累计3170页,斩获了30+互联网公司offer(含BATJM) 2020首战告捷,这份Java面试神技Plus版,让我成功拿到了阿里、京东、字节跳动等大厂offer 膜拜!阿里内部都在强推的K8S(kubernetes)学习指南,不能再详细了 一、限流的关键作用 对于大型互联网架构中,限流的设计是必不可少的一个环节。在给定的时间内, 客户端请求次数过多, 服务器就会拦截掉部分请求,避免请求流量过大造成数据库负载高的问题。 二、常见限流算法利弊分析 计数器限流 ...阅读全文

简书 2021-01-27 18:32:52 Java入门到入坟

golang 架构设计原则 迪米特法则

golang 架构设计原则 迪米特法则 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 该书以java语言演绎了常见设计模式 本系列笔记拟采用golang练习之 迪米特法则 迪米特法则(Law of Demeter, LoD)又叫作最少知道原则(Least KnowledgePrinciple, LKP),指一个对象应该对其他对象保持最少的了解,尽量降低类与类之间的耦合。 _ 场景 TeamLeader每天需要查看未完成的项目任务数 TeamLeader指派TeamMember进...阅读全文

死磕hyperledger fabric源码|Order节点概述

死磕hyperledger fabric源码|Order节点概述 文章及代码:https://github.com/blockchainGuide/ 分支:v1.1.0 bcc633a6c26528720cf16ed170f6a141 前言及源码目录 Orderer排序节点这块内容主要包括了节点启动流程、Broadcast广播交易服务、Orderer共识排序服务以及Deliver区块分发服务。其相关源码目录文件如下: /orderer |-common ​ |-blockcutter:交易切割打...阅读全文

简书 2021-01-27 18:32:47 mindcarver

GO 微服务GO-Micro(13)-串联我们的整个微服务(前篇-环境和服务准备)

说明 从前面的流程看,我们似乎已经差不多把一个微服务的开发流程给实施了,一遍,当然真正的微服务开发中还会涉及自身业务处理,上面只是简单的一些请求示例的处理,而且复杂的微服务的开发等更多业务逻辑处理,而且还缺少对微服务的包含微服务组件网关、配置中心、熔断器以及具体服务如何融合起来。 基于上述的说明,我重头开始梳理一次我的开发过程,也方便自己后续回头看看。比较我是一个小白,容易忘事! 参考资料 参考:https://github.com/xbox1994/go-micro-example 此示例是m...阅读全文

简书 2021-01-27 18:32:42 小钟钟同学

中国身份证号验证库

> [id-validator](https://github.com/guanguans/id-validator) - 中国身份证号验证库。 ## 功能 * 中国身份证号验证 * 获取身份证号信息 * 升级 15 位身份证号为 18 位 * 伪造符合校验的身份证号 ## 安装 ``` shell script $ go get -u github.com/guanguans/id-validator ``` ## 使用 这只是一个快速介绍, 请查...阅读全文

Go语言中文网 2021-01-27 14:55:00 guanguans

64位平台下,指针自身的大小为什么是8字节?

系列导读本系列基于64位平台、1Page=8KB今天我们开始拉开《Go语言轻松系列》第二章「内存与垃圾回收」的序幕。关于「内存与垃圾回收」章节,大体从如下三大部分展开:知识预备:为后续的内容做一些知识储备,知识预备包括指针的大小Tcmalloc内存分配原理Go内存设计与实现Go的垃圾回收原理本篇前言第一部分知识预备的第一个知识点指针的大小。为什么指针的大小会作为一个知识点呢?因为后续内存管理的内容会涉及一些数据结构,这些数据结构使用到了指针,同时存储指针的值是需要内存空间的,所以我们需要了解指针...阅读全文

Segmentfault 2021-01-28 02:32:37 .container .car 等

由浅到深,入门Go语言Map实现原理

导读Go源码版本1.13.8今天要分享的是主要内容是Go语言Map底层实现,目的让大家快速了解Go语言Map底层大致的实现原理。读完本篇文章你可以获得收益、以及我所期望你能获取的收益如下:收益序号收益描述掌握程度收益1大致对Go语言Map底层实现有一个了解必须掌握收益2大致知道Go语言Map是如何读取数据的必须掌握收益3熟悉Go语言Map底层核心结构体hmap可选收益4熟悉Go语言Map底层核心结构体bmap可选收益5熟悉Go语言Map底层里的溢出桶可选收益6熟悉Go语言Map是如何读取数据的可...阅读全文

Segmentfault 2021-01-28 02:32:36 .container .car 等

Go遍历struct,map,slice

遍历结构体如何实现遍历结构体字段? 好吧,言归正传!举个例子:demo1:package main import ( "fmt" "reflect") type Student struct { name string age int} func main() { v := reflect.ValueOf(Student{"乔峰", 29}) count := v.NumField() for i := 0; i < count; i++ { f := v.Field(i) //字段值 swit...阅读全文

51CTO博客 2021-01-27 09:34:16 mb600beb5e8f23b

go-carbon 1.2.6 版本发布,优化错误处理机制,弃用出错直接panic的粗暴处理方式

carbon 是一个轻量级、语义化、对开发者友好的Golang时间处理库,支持链式调用、农历和gorm、xorm等主流orm 如果您觉得不错,请给个star吧 github:[github.com/golang-module/carbon](https://github.com/golang-module/carbon "github.com/golang-module/carbon") gitee:[gitee.com/go-package/carbon](https://g...阅读全文

Go语言中文网 2021-01-27 09:39:40 gouguoyin

go-carbon 1.2.4 版本发布,新增系列时间比较方法

carbon 是一个轻量级、语义化、对开发者友好的Golang时间处理库,支持链式调用、农历和gorm、xorm等主流orm 如果您觉得不错,请给个star吧 github:[github.com/golang-module/carbon](https://github.com/golang-module/carbon "github.com/golang-module/carbon") gitee:[gitee.com/go-package/carbon](https://g...阅读全文

Go语言中文网 2021-01-27 09:37:52 gouguoyin