• 互联网寒冬下,Go语言平均薪资高达29K,为什么?
    我们通过第三方网站职友集统计,目前Golang平均薪资在北京已达到惊人的28K,远远高于北京互联网的平均薪资此外,通过下图,我们可以看出,其实无论在哪个城市,Go语言的薪资都是非常可观的,熟悉Go语言的人都知道它的三大特性就是:开发速度快、并发性好、编程简单。下载地址:https://miek.nl/go/5.《Let's learn Go!》一本在线书,从Go的基础知识,如基本语法、如何声明变量、指针等,并使用这些原始数据类型来构建复合类型和函数,并将所学的知识用于实践等。阅读地址:https://go-book.readthedocs.io/en/latest/6. 《The Little Go Book》这本书已经出版很多年了,但仍然具有意义,Go的基本或外部主要内容都没有改变。
  • 图解Go语言内存分配
    Golang运行时的内存分配算法主要源自 Google 为 C 语言开发的TCMalloc算法,全称Thread-Caching Malloc。基础概念Go在程序启动的时候,会先向操作系统申请一块内存,切成小块后自己进行管理。arena区域就是我们所谓的堆区,Go动态分配的内存都是在这个区域,它把内存分割成8KB大小的页,一些页组合起来称为mspan。内存管理单元mspan:Go中内存管理的基本单元,是由一片连续的8KB的页组成的大块内存。并且会使用一个位图来标记其尚未使用的object。顺便提一句,类型Size Class为0表示大对象,它实际上直接由堆内存分配,而小对象都要通过mspan来分配。
  • 一款基于go语言的agent
    一 介绍在构建数据库自动化运维系统的时候,数据库服务器上必须要有一个agent来执行web服务器端发起的命令,我们研究了好几种技术Celery,Redis Queue 或者基于socket实现,当然还有自己写,因为之前有同事已经完成了一个agent---servant,在和同事沟通之后,我们决定复用servant,不用重复造轮子。servant是一款基于go语言编写的,通过http协议调用,提供权限认证和远程调用,支持异步执行命令的agent ,满足我们目前数据库备份任务,定时收集数据库元数据信息,定时校验备份的有效性的任务需求。本文是一篇how to 文档,相对比较详细的介绍如何安装和使用servant,希望对读者朋友有所帮助。
  • Go语言并发如何使用才更加高效
    很多刚开始使用 Go 语言开发的人都很喜欢使用并发特性,而没有考虑并发是否真正能解决他们的问题。了解goroutine的生命期时再创建goroutine在 Go 语言中,开发者习惯将并发内容与 goroutine 一一对应地创建 goroutine。该函数从其他 goroutine 中获取和接收数据或者指令,处理后返回结果。第 37 行,启动并发执行 consumer() 函数,并传入 ch 通道。第 40 行,每启动一个 goroutine,使用 runtime.NumGoroutine 检查进程创建的 goroutine 数量总数。为了保证两个 goroutine 并发访问的安全性,通道也需要做一些锁操作,因此通道其实并不比锁高效。对于 TCP 来说,一般是接收过程创建 goroutine 并发处理。当套接字结束时,就要正常退出这些 goroutine。
  • TutorABC 董海冰:Golang + WebRTC 搭建实时音视频云实践
    在 2019年第五届 Gopher China 大会上,TutorABC研发总监董海冰进行了题为《 用Golang搭建实时音视频云》的演讲。No.1什么是TutorMeet+大家好,非常高兴来到 Gopher China 分享一下我们用 Go 语言做的事情。主要还是跟大家讲一下我们实时交互的研发过程和为什么采用 Go 语言,还有关于我们采用了 WebRTC,以及两年多的研发过程中都遇到了什么问题,怎么处理的,最后是 SaaS 方面的东西。特别有小孩子,近些年大家对于在线教育越来越熟悉,实时的音视频教育已经基本走入千家万户。
  • Asta Xie: 玩转Go语言,从beego开始
    从beego谈起,畅聊Go的优雅与高效1.Go Web开源框架beego的设计初衷2. beego如何逐步演进3. beego从Go的设计中学习的精华4. Go为什么优雅和高效5.Go Hack介绍引言今天和大家一起分享的主要题目就是从beego开源谈起,然后畅聊Go里面的优雅和高效。如今 beego 已经逐步成为很受欢迎的一个框架,到今天达到了22.2K star。beego也在国内外很多公司中,被开始应用到实际场景及自己的业务中。基于此,beego做了一个微内核,把路由器做了。
  • Go语言出现后,Java还是最佳选择吗?
    4年前,阿里JVM团队开始自研Wisp2,将Go语言的协程能力带入到Java世界。既享受Java的丰富生态,又获得异步程序的性能,Wisp2让Java平台历久弥新。Java也因此被质疑是否不再适应最新的云场景了。下方一些名为java的线程是gc线程。为了满足上述两个条件,使用eventloop+异步callback的方式是一个极佳的选择。因此假如逻辑上要求在write后执行的代码,必须出现在回调里,write是函数的最后一行。
  • 一周 Go world 新鲜事
    针对只有一个源文件的情况讨论工程管理看起来会比较多余,因为这可以直接用go run和go build搞定。第二阶段,通过评估器 Evaluator 评估扫描出来的词素,并确定它字面值,生成最终的 Token。go的map底层实现方式是hash表。go map的数据被置入一个由桶组成的有序数组中,每个桶最多可以存放8个key/value对。所以go map是基本数据结构是hash数组+桶内的key-value数组+溢出的桶链表当hash表超过阈值需要扩容增长时,会分配一个新的数组,新数组的大小一般是旧数组的2倍。原文链接重磅活动预告Gopher Meetup 杭州站即将开启。
  • go语言golang实现区块链blockchain源代码
    对于存储+网络,golang具备天然的优势,而且区块链2.0的以太坊,区块链3.0的超级账本都是使用go语言实现的,所以圈里golang的朋友,可以高兴一下了。为了便于学习Golang区块链,从零入门,我分享几个Go语言实现的区块链项目,可以参考学习,理解区块、区块链、POW、钱包、交易、记账等这些术语。PS:阅读原文有直达链接naivechainhttps://github.com/kofj/naivechain比较简单的,建议先看这个,提供了区块、区块链,P2P节点链接,模拟挖矿等能力,300行代码,很容易看。gochainhttps://github.com/crisadamo/gochain稍微复杂一些的,基本的概念实现都有,多了POW,交易添加等。blockchainhttps://github.com/izqui/blockchain防的比较全的,连编码都是base58的,还实现了hash tree,也就是 MerkelRoot 。
  • Go 语言十年而立,Go2 蓄势待发
    2019年是CSDN的二十周年,也是Go语言面世十周年。Go语言诞生Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三位大牛于2007年开始设计发明的。Go语言十年奋进Go从2007年开始设计,在2009年正式对外公布,至今刚好十年。十年来Go语言以稳定著称,Go1.0的代码在2019年依然可以不用修改直接被编译运行。下面的是Go语言新的Logo:2019年是对Go语言发展极其重要的一年,今年8月将发布Go1.13,而这个版本将正式重启Go语言语法的进化,向着Go2前进。语法变化Go语言虽然从2009年诞生,但是到了2012年才发布第一个正式的版本Go1。
  • Go语言200行写区块链源代码分析
    Github上有一个Repo,是一个使用Go语言,不到200行代码写的区块链源代码,准确的说是174行。Go语言经典库使用分析(三)| Gorilla Handlers 详细介绍。关于Go工具包管理等知识可以参考我这篇Go语言实战笔记(一)| Go包管理阿里云2019双11,云服务器 86元/年,满减16000,还可以领600淘宝红包,只剩1天,诚信推荐,点击阅读原文买它既然要写一个区块链,那么肯定的有一个区块的实体,我们通过golang的struct来实现。区块链的构成关键在于Hash和PrevHash,通过他们一个个串联起来,就是一串Block,也就是区块链。
  • 深度解密Go语言之pprof
    Go 语言里,pprof 就是这样一个工具,帮助我们快速找到性能瓶颈,进而进行有针对性地优化。Go 语言自带的 pprof 库就可以分析程序的运行情况,并且提供可视化的功能。net/http/pprof对于在线服务,对于一个 HTTP Server,访问 pprof 提供的 HTTP 接口,获得性能数据。当然,实际上这里底层也是调用的 runtime/pprof 提供的函数,封装成接口对外提供网络访问。pprof 如何使用我们可以通过 报告生成、 Web可视化界面、 交互式终端 三种方式来使用 pprof。—— 煎鱼《Golang 大杀器之性能剖析 PProf》runtime/pprof拿 CPU profiling 举例,增加两行代码,调用 pprof.StartCPUProfile 启动 cpu profiling,调用 pprof.StopCPUProfile() 将数据刷到文件里:import "runtime/pprof"var cpuprofile = flag.Stringfunc main() { // …………pprof.StartCPUProfile defer pprof.StopCPUProfile() // …………
  • bbs-go 3.0.3 发布,基于 Go 语言的 BBS 系统
    功能预览:https://mlog.club 更新内容 支持 Docker 快速部署 ( 感谢热心用户 @athom 的 PR https://github.com/mlogclub/bbs-go/pull/25 ) 新增本地快速构建脚本 完善后台配置功能,导航菜单、侧边栏导航都能在后台配置 优化数据库索引和数据查询性能 Iris 升级至版本 12 ( 感谢 Iris 作者的 PR:https://github.com/mlogclub/bbs-go/pull/27 ) 重构代码,优化代码结构 完善配...
  • Go语言十周年 | Go精华资料整理
    十岁生日快乐,Go!这个月,是Go 语言正式发布 10 周年,这也是 Go 作为开源编程语言和构建现代网络软件生态系统的 10 周年。11月10日,Go语言的主要开发者之一Russ Cox,在 Go 官方博客中发表了庆祝 Go 十年的文章。庆祝 Go 十周年让我回想起了 2009 年 11 月上旬,那时我们正在准备与世界分享 Go。Go 语言最初由 Google 公司的 Robert Griesemer、Ken Thompson 和 Rob Pike 三位大牛于2007年开始设计发明的。Go 语言对并发的支持也是这门语言最重要的特性之一。2012 年 3 月 28 日,Go 1 正式发布。
  • Github标星10.5K,这本2019年才出版的Go新书,可以免费下载了
    开源最前线 猿妹综合整理2009年11月,Google发布了Go语言,纵观这几年来的发展趋势,Go语言已经成为云计算、云存储时代最重要的基础编程语言。Go语言很多时候被描述为“类C语言”,或者是“21世纪的C语言”。目前,国内出版的Go语言相关教程有15本之多,内容主要涵盖盖Go语言基础编程、Web编程、并发编程和内部源码剖析等诸多领域。目前,advanced-go-programming-book已经在Github上标星10.5K,1.6K个Fork不过呢,对于刚学习Go语言的读者,建议先从《Go语言圣经》开始系统学习Go语言的基础知识。如果希望了解Go2的最新动向,可以参考《Go2编程指南》。
公众号
关注公众号订阅更多技术干货!