golang go 包管理工具 go mod的详细介绍 --- 赶紧拥抱 go mod吧,go path的那套东西已经out了。

go mod go官方的module管理工具 原文:https://github.com/googege/blog 用法: 在一个非go path的路径中新建一个项目,然后使用go mod init 就可以初始化一个新的包(要开启这个 export GO111MODULE=on写入.bash_profile即可 win的同学自己找找设置 GO111MODULE的win版本设置方法哈),其实跟github(gitlab都行)用在一起更好 在github上新建一个项目,例如说 test 在本地将这个...阅读全文

k8s 中定时任务的实现

k8s 中有许多优秀的包都可以在平时的开发中借鉴与使用,比如,任务的定时轮询、高可用的实现、日志处理、缓存使用等都是独立的包,可以直接引用。本篇文章会介绍 k8s 中定时任务的实现,k8s 中定时任务都是通过 wait 包实现的,wait 包在 k8s 的多个组件中都有用到,以下是 wait 包在 kubelet 中的几处使用: func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies, stopCh <-chan str...阅读全文

简书 2019.02.16 21:31* 田飞雨

k8s调度算法源码跟读

简单来说,k8s中的调度算法就是给pod分配合适的node节点,具体分两步:预选、优选。其中预选是指k8s会默认注册一堆预选算法,只有某个节点通过所有预选算法成功运行pod,那么这个节点才能通过预选,进行下一步优选,这样经过预选之后会淘汰一大批节点。接下来的优选就是优中选优,首先让每个节点通过所有优选算法,得到一个加权分,最后取最高分,即为最优节点,也就是最终运行pod的节点。这里主要通读一下调度模块的代码逻辑。 scheduler的入口函数所在文件E:\dev\golang\k8s\src\k...阅读全文

Golang 特点

Golang和java区别和特点: 主要优点:代码简洁(get、set、换行符都省了)、更好的支持高并发微线程、更多的基本类型对内存占用更精准(int8 uint8)、依赖更少更轻 共同点:都支持垃圾自动回收、静态类型(go支持自动推导类型)、反射 区别:Go支持接口,但是不支持继承,一般通过成员变量的方式实现类似的效果 其他:GQuery、Beego等框架,非常适合爬虫类项目,和后端高并发项目,有成熟的类库支持。 Golang核心: go 关键字、channel(类似于阻塞队列)、锁(互斥锁、...阅读全文

简书 2019.02.16 16:48* 黄靠谱

Golang.org/x目录被Blocked的解决方案

在Go开发中,经常有大量项目依赖golang.org/x包,但这个源码包被储放在万恶的国外资本势力的服务器上,国内开发人员想要使用需要一翻动作。 golang团队将他们的代码镜像在Github上,因此,我们可以将golang.org/x使用到的包,统统下载在我们开发环境的 $GOPATH/src/golang.org/x 目录,编译项目时就可以直接使用本地依赖。 首先,在 $GOPATH 目录中创建 golang.org/x 目录: $ mkdir -p $GOPATH/src/golang.o...阅读全文

简书 2019.02.16 15:11 陈哈哈GO

智能电网中基于分布式管理请求相应程序的区块链的应用

Title:智能电网中基于分布式管理请求相应程序的区块链的应用 Abstract:在本文中,我们研究了使用分布式区块链机制,以适应能源生产商的能源需求为形式,向所有涉及弹性市场的利益相关者(主要是配电系统运营商,零售商,集成商等),提供透明、安全、可靠、和及时的能源灵活性。在我们的解决方案中, 一个防篡改的基于区块链的分布式分类账,存储从物联网设备收集的能源消耗信息,同时自我执行的智能合约以编程的方式在每个生产商的水平上定义预期的能源灵活性、相关的奖励或惩罚,以及在电网水平上平衡能源需求和能源...阅读全文

Go语言中文网 2019-02-16 14:28:33 1500250103

ZT.COM布局全球生态建设,新年新起点

ZT.COM布局全球生态建设,新年新起点随着数字货币的火爆,虽然整个区块链行业还处在早期发展阶段,但是区块链技术的发展前景也逐渐被大众认可并看好,不仅是各国产业界,甚至是学术界的也对其高度关注,可以说,区块链资产与具有良好应用前景的项目开始受到资本市场的追捧。 在此背景之下,ZT.COM充分认识到了区块链及数字资产交易的前景,深知国际化是平台走向海外发展的重要一步,也是一直以来交易所海外用户的诉求。为此核心技术部门以及市场部门双管齐下,在品牌推广的同时强化战略布局,在产品研发的同时升级语言系统。...阅读全文

Go语言学习六:RPC 协议

什么是RPC远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。 该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。 如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。维基百科:远程过程调用用通俗易懂的语言描述就是:RPC允许跨机器、跨语言调用计算机程序方法。打个比方,我用go语言写了个获取用户信息的方法getUserInfo,并把go程序部署在阿里云服务器上面,现在我有一个部...阅读全文

简书 2019.02.16 11:19 孙小兵

ByteEdu 每日新闻(2019-02-16)

ByteEdu 每日新闻(2019-02-16) Golang资料集Go最新资料汇总链接更改 http://www.byteedu.com/forum.php?mod=viewthread&tid=25 零基础怎么入门学习原画?正在自学的你知道多少 http://www.byteedu.com/portal.php?mod=view&aid=10 iPhone降价促成5G前夜昙花一现,翻身要看任正非脸色 http://www.byteedu.com/portal.php?mod=view&aid...阅读全文

简书 2019.02.16 08:56 Golang语言社区

golang channel通讯

基于channel的通讯,对于无缓存的channel 发送的成功之时,接收者已经收到了。 接收,发生在发送者成功之前。 为什么会这样呢,如果我们靠记忆,就会怎么样,终究没有忘记快。可是如果我们能够从原理上来理解,也许就不容易忘记了。Golang的协程是协作式的,所以呢,如果发送者发送,那接收者存在一个何时运行的问题,如果发送成功之后,接收者才运行,不是说不可以,总少了那么一点点的协同的味道了。所以,如果换你来实现,一定也是发送者发送,送到接收者,唤起接收者运行(这时,发送者挂起了),然后到发送者...阅读全文

(六) ZigZag Convert

题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入: s = "LEETCOD...阅读全文

简书 2019.02.15 21:03 L白水飘萍

Golang之轻松化解defer的温柔陷阱

什么是defer? defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。 defer语句通常用于一些成对操作的场景:打开连接/关闭连接;加锁/释放锁;打开文件/关闭文件等。 defer在一些需要回收资源的场景非常有用,可以很方便地在函数结束前做一些清理操作。在打开资源语句的下一行,直接一句defer就可以在函数返回前关闭资源,可谓相当优雅。 f, _ := os.Open("defer.txt...阅读全文

简书 2019.02.15 22:32 饶全成

Go语言的主要特征

Go语言的主要特征: 1.自动立即回收。 2.更丰富的内置类型。 3.函数多返回值。 4.错误处理。 5.匿名函数和闭包。 6.类型和接口。 7.并发编程。 8.反射。 9.语言交互性。 Golang文件名: 所有的go源码都是以 ".go" 结尾。 Go语言命名: 1.Go的函数、变量、常量、自定义类型、包(package)的命名方式遵循以下规则: 1.首字符可以是任意的Unicode字符或者下划线 2.剩余字符可以是Unicode字符、下划线、数字 3.字符长度不限 2.Go只有25个关键字...阅读全文

简书 2019.02.15 23:50 weifansym

golang内置类型和函数

内置类型 值类型: bool int(32 or 64), int8, int16, int32, int64 uint(32 or 64), uint8(byte), uint16, uint32, uint64 float32, float64 string complex64, complex128 array -- 固定长度的数组 引用类型:(指针类型) slice -- 序列数组(最常用) map -- 映射 chan -- 管道 内置函数 Go 语言拥有一些不需要进行导入操作就可以使...阅读全文

简书 2019.02.15 23:58 weifansym

Golang 用interface{} map 给struct赋值

在有些场景下,我们需要用一个map[string]interface{}, map的key是struct中的一个tag的值, value是需要赋值的值,我们可以使用reflect包来进行操作。 我们需要struct的指针,只有指针我们才能在函数中改变struct的值 根据指针获取struct的实例,Type 依次遍历struct的域,取出域中的tag和map中的key进行比较,然后比较域的Type和map中value的Type,如果相等就可以进行赋值了 贴代码: func SetValueByT...阅读全文

简书 2019.02.16 00:00 siskinc

包相关

工作空间 Golang 工作空间 :编译工具对源码目录有严格要求,每个工作空间 (workspace) 必须由 bin、pkg、src 三个目录组成。 workspace | +--- bin // go install 安装目录。 | | | +--- learn | +--- pkg。 // go build 生成静态库 (.a) 存放目录。 | | | +--- darwin_amd64 | | | +--- mylib.a | | | +--- mylib | | | +--- subl...阅读全文

简书 2019.02.16 01:36* weifansym

工作5年的Java程序员,才学会阅读源码,可悲吗?

最近一位5年开发经验的群友与我聊天他说:最近慢慢的尝试去看spring的源码,学习spring,以前都只是会用就行了,但是越是到后面,发现只懂怎么用还不够,在面试的时候经常被问到一些开源框架的源码问题,即使在网上各种百度,当时回答出来也会是很皮毛,不痛不痒的解答。对于目前碰到的瓶颈,他不知道怎么办。​我相信,绝不仅仅只有他一个人遇到这样的瓶颈,中国上百万的Java程序员中,大部分Java程序员都卡在这个苦恼中,或者还有更多的程序员们不知道自己不知道,因为他们看不到冰山下是什么。​回到为什么工作五...阅读全文

Go语言中文网 2019-02-15 21:04:56 person_limit

nginx(一、概念篇)

为什么要用nginx? 在网上搜索负载均衡的时候,总会跳出nginx这个字眼,对于我这样只关注开发功能却从未关心过架构的人来说,还是比较陌生的,印象中用了nginx好像可以扛更多的访问量。 过完年后开发工作告一段落,正好有时间,就决定从一个初学者的角度来描述一下,为什么要用nginx。 经查阅各种资料,nginx的主要功能和使用方式包括 nginx反向代理 nginx负载均衡 nginx配置https nginx静态资源服务器 整合keepalive、lvs等 以上5点主要作为后续实践内容的大纲...阅读全文

简书 2019.02.15 17:58 我已不是少年郎