• 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编程指南》。
  • 深度解密Go语言之Slice

    在底层数组不进行扩容的情况下,容量也是 slice 可以扩张的最大限度。注意,底层数组是可以被多个 slice 同时指向的,因此对一个 slice 的元素进行操作是有可能影响到其他 slice 的。空切片和nil比较的结果为false。关于nil slice和empty slice的探索可以参考公众号“码洞”作者老钱写的一篇文章《深度解析 Go 语言中「切片」的三种特殊状态》,地址附在了参考资料部分。上篇文章《走进Go的底层》中,我们学到了汇编这个工具,这次我们再次请出汇编来更深入地看看slice。
  • Go语言上下文Context包源码分析和实践

    Context的实现Context接口的实现总共有四种,先从结构体定义看一下这几个的关系,这四个实现结构体彼此通过组合的关系可以实现功能的复用。timerCtx中包含了cancelCtx,所以timerCtx具备了取消的功能,cancelCtx以及valueCtx包含了Context,这个Context一般是根Context。var 如下代码,就context包中提供的两个方法,用来返回background,todofunc Background() Context { return background}func TODO() Context { return todo}cancelCtx分析cancelCtx的创建方法主要是WithCancel(),这个方法创建出一个子的上下文,并返回一个能够取消该上下文的函数,主要是方便开发人员手动在未来想要的某一时刻执行取消,从而达到信号通知,让其它协程能够给做一些例如资源清理或者中断的工作。
  • Go语言国际电子表格文档格式标准实践

    在 Gopher Meetup 北京站上,阿里巴巴高级开发工程师、前百度 Go 语言编程委员会成员续日进行了主题为《Go语言国际电子表格文档格式标准实践》的演讲。Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376, ISO/IEC 29500 国际电子表格文档格式标准。本次演讲将探究国际文档格式标准,解读使用 Go 语言从 0 到 1 打造 Excelize 背后的故事,分享 Go 语言在国际电子表格文档格式标准方面的实践。今天的分享包含两个部分,第一部分介绍国际电子表格文档格式标准的内容,第二部分向大家分享在使用 Go 语言实现标准过程当中的一些经验。
  • Go 开发者进阶周刊(Dec 2nd)

    本期含Go 量1语言学习 x132工程实践 x103生态拓展 x34开源项目 x5阅读说明本周刊每周五发布,同步国内外 Go 开发者在一周内的最新鲜成果和最前沿方向,作为订阅者提升和进阶的学习手册。Go的垃圾回收器旨在帮助开发者自动清理应用程序的内存。这可以在Go中通过使用一个包含文件中字节的字符串表示的字节片来实现。它会将命令行工具转换为 web 程序。
  • 【速领】 | Go精华资料,只此一份

    十岁生日快乐,Go!领取资料前我们先来了解一下什么是Go?上个月是Go 语言正式发布 10 周年,这也是 Go 作为开源编程语言和构建现代网络软件生态系统的 10 周年。11月10日,Go语言的主要开发者之一Russ Cox,在 Go 官方博客中发表了庆祝 Go 十年的文章。Go 语言对并发的支持也是这门语言最重要的特性之一。原生的并发支持一直到今天都是 Go 语言吸引开发者的最大优势。但是在它所能解决的问题上,十年之后的Go语言,依然是最佳选择。2012 年 3 月 28 日,Go 1 正式发布。如今,Russ 希望在社区的帮助下共同实现 Go 2。
  • Go语言爱好者周刊:第 22 期

    详细信息可以参考:12 月 15 日 Go 语言中文网深圳 Meetup 总结暨有偿自愿者招募。文章 1、用 70 行 Go 代码击败 C 语言Chris Penner 最近发布的一篇文章 Beating C with 80 Lines of Haskell 引发了 Internet 领域内广泛的论战,进而引发了一场用不同语言实现 wc 的圣战。订阅 这个周刊每周日发布,同步更新在Go 语言中文网[24]、微信公众号[25] 和 今日头条[26]。微信搜索"Go 语言中文网"或者扫描二维码,即可订阅。
  • 【福利】Go精华资料,只此一份!

    上个月是Go 语言正式发布 10 周年,这也是 Go 作为开源编程语言和构建现代网络软件生态系统的 10 周年。11月10日,Go语言的主要开发者之一Russ Cox,在 Go 官方博客中发表了庆祝 Go 十年的文章。Go 语言对并发的支持也是这门语言最重要的特性之一。原生的并发支持一直到今天都是 Go 语言吸引开发者的最大优势。但是在它所能解决的问题上,十年之后的Go语言,依然是最佳选择。2012 年 3 月 28 日,Go 1 正式发布。Go语言以及它的社区,在十年中积累了大量实践经验和资料,通过学习这些资料,可以在最快的时间内从编码的工人提升为有自己设计思考的工程师。
  • Java程序员的Go语言快速入门指南

    我认为对于一个程序员来说,学习另外一种新的编程语言,可以将你所熟悉的编程语言中的概念带入新的编程语言中,这对你学习新的编程语言有很大的帮助和参考意义。本文的目的是快速帮助 Java 开发人员快速的了解和入门 Go语言开发。Packages 与 Java 类似,Go语言将其代码组织到package中。类型、常量、函数的的作用域 Go语言中没有类似Java中private、protected、public关键字,Go语言是通过命名的首字母大小写来定义struct/type/function/variable的作用域。类,结构,方法 在Java中我们有class,Go语言中是没有class的,但是有和class概念、作用相似的东西:结构体。这点是和Java不同的,Java中是允许将更具体的子类型作为参数的。
  • 基于Go语言的社区系统 bbs-go 3.0.8 版本发布

    项目地址 Github 地址:https://github.com/mlogclub/bbs-go[1]发布地址:https://github.com/mlogclub/bbs-go/releases/tag/v3.0.8[2]更新内容 新增论坛公告功能用户注册时支持图片验证码用户登录时支持图片验证码后台登录支持图片验证码新增后台手动退出功能文档地址 官方交流演示站:https://mlog.club[3]帮助文档:http://docs.bbs-go.com/[4]问题反馈:https://mlog.cl
  • Go语言爱好者周刊:第 25 期

    资讯1、Go 1.13.6 和 Go 1.12.15 发布[3]小 bug 修复。订阅这个周刊每周日发布,同步更新在Go 语言中文网[28]、微信公众号[29]和今日头条[30]。微信搜索"Go 语言中文网"或者扫描二维码,即可订阅。
公众号
码农俱乐部
关注公众号订阅更多技术干货!