2021年2月11日
大家好,我是正在学习如何蒸鱼的知识铺。 在前面 Go1.16 特性介绍的文章中我们有提到,从 v1.16 起,Go 在 Linux 下的默认内存管理策略会从MADV_FREE 改回 MADV_DONTNEED 策略。 这时候可能至少分两拨小伙伴,分别是: 知道是什么,被这个问题 “折磨“ 过的,瞬间眼前一亮。 不知道是什么,出现了各种疑惑了,这说的都是些什么。……
阅读全文
2021年2月11日
在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同编译和打包。 结果往往一把二进制文件挪来挪去,就无法把应用程序运行起来了。因为无法读取到静态文件的资源。 无法将静态资源编译打包进二进制文件的话,通常会有两种解决方法……
阅读全文
2021年2月11日
大家好,我是正在努力学习的知识铺。 在前几天,Go1.16rc1 抢先发布了。结合常规的 28 发布规律,其将会在 2021.02 月份左右发布正式版本。 这次 Go1.16 也带来了一些新特性或变更。那么作为一个 Gopher,想必不能错过这次的更新。 今天这篇文章将会带大家了解一下 Go1.16 的几个需要关注的特性。 废弃 io/ioutil Go 官方认为……
阅读全文
2021年1月13日
经历九九八十一难,多年的不断探讨和 Go 语言爱好者们在社区中的强烈关注,且 Go 官方在 2020 年不断放出消息。 总算在 2021 年 1 月 12 日。官方正式提出将泛型特性加入 Go 语言的 proposal 了,且最新的草案设计已经更新。 基本语法如下: func Print[T any](s []T) { // same as above } 其大体的概述如下: 函数可以具有使用方括号的其他类型参数列表,但其……
阅读全文
2021年1月5日
相信我的读者中不少是 Go 语言的爱好者,又或是正在伺机而动。 今天要给大家所介绍的这个技术社区,就是由与 Go 语言有很浓厚的缘分的人所创办的。 他有如下几个业界标签: 早期的国内 Go 语言布道师。 早期在公司内大规模的推广和使用 Go 语言。 早期编写了一本 Go 语言图书:《Go 语言编程》。 现在是一家公司的 CE……
阅读全文
2020年12月22日
前几天,知识铺去了趟北京,参加了为期三天的全球软件案例研究峰会(TOP 100)。 同时记了一些笔记,整理后分享出来,希望对大家有所帮助,拓展眼界非常重要。 内容比较多(已经精简过),大家可以挑自己感兴趣的学习,建议三连。 一级目录如下: 百度内部业务 ServieMesh 实践。 云原生开发平台在腾讯游戏运营中……
阅读全文
2020年12月12日
前段时间我分享了文章 《先睹为快,Go2 Error 的挣扎之路》后,和一位朋友进行了一次深度交流,他给我分享了他们项目组对于 Go 错误处理的方式调整。 简单来讲,就是在业务代码中使用 panic 的方式来替代 “永无止境” 的 if err != nil。这就是今天本文的重点内容,我们一起来看看是怎么做,又有什么优缺点。 为什么想……
阅读全文
2020年12月10日
大家好,我是知识铺。 最近在看 Go 并发相关的内容,发现还是有不少细节容易让人迷迷糊糊的,一个不小心就踏入深坑里,且指不定要在上线跑了一些数据后才能发现,那可真是太人崩溃了。 今天来分享几个案例,希望大家在编码时能够避开这几个 “坑”。 案例一 演示代码 第一个案例来自 @鸟窝 大佬在极客时间的分享……
阅读全文
2020年12月3日
大家好,我是知识铺。 自从 Go 语言在国内火热以来,除去泛型,其次最具槽点的就是 Go 对错误的处理方式,一句经典的 if err != nil 暗号就能认出你是一个 Go 语言爱好者。 自然,大家对 Go error 的关注度更是高涨,Go team 也是,因此在 Go 2 Draft Designs 中正式提到了 error handling(错误处理)的相关草案,希望能够在未来正式的……
阅读全文
2020年11月14日
今天在 Gophercon2020 上,Go 1.13 错误提案的作者事后提及他对目前错误格式化的缺失表示遗憾,而且在未来很长的好几年内都不会有任何进一步改进计划。 对此他本人给出的原因之一是:对于错误处理这一领域特定的问题,在他的能力范围内实在是无法给出一个令所有人都满意的方案。 尽管如此,在他演讲的最后,还是给出了一……
阅读全文