新手问题 Go 开发者进阶周刊(Dec 2nd)

astaxie · 2019年12月12日 · 290 次阅读

语言学习(Golang 编程知识与技巧)

1. 用图说话:Go 语言的协程,系统线程以及 CPU 管理

     

诀窍是不要将整个文件加载到内存中,并在继续移动文件指针时继续处理每个单词。这样,我们就可以用最少的内存资源轻松地处理整个文件。并且在文件的不同部分保留多个指针,每个线程同时读取文件的块。

2.GOMAXPROCS 和实时更新

3.Go 标准库 encoding/json 真的慢吗?

关于标准库 encoding/json 性能差的问题在很多地方被讨论过,也有很多第三方库在尝试解决这个问题,比如easyjsonjsoniterffjson。但是标准库 encoding/json 真的慢吗?它一直都这么慢吗?

4.译 | 并发不是并行

并发性是强大的,但它不是并行性的,但它支持并行性,而且它使并行性变得容易。

5.源码阅读 | 短小精悍的 Once 

   

Once 即保证某个动作只执行一次。这很好理解,延迟初始化、单例(懒汉式)就是这种场景。

6.go 中 defer 的一个隐藏功能

你可以使用 defer 在任何函数开始后和结束前执行配对的代码。

7.Go 动态作用域变量 

8.GoAdvent2019:使用标准库中的 flag 包

在本文中,我们将了解如何使用内置标志包编写命令行应用程序。

9.在 Go 中使用 Socket.IO

Websocket 是全双工的基于 TCP 层的通信协议,为浏览器及网站服务器提供处理流式推送消息的方式。它不同于 HTTP 协议,但仍依赖 HTTP 的 Upgrade 头部进行协议的转换。

10.Golang 在 runtime 中的一些骚东西

11.为什么 golang 没有 volatile 

从 java 转 golang 程序员可能会有一个疑问:为什么 golang 没有 volatile 关键字?这样的话如何保证可见性?

12.[译] Go:垃圾回收器是如何监控你的应用的?

Go 的垃圾回收器旨在帮助开发者自动清理应用程序的内存。然而每次跟踪内存并清理都会影响程序运行的性能。Go 的垃圾回收器旨在清理内存的同时也关注性能,主要是以下几个指标:

  • 当程序暂停的时的两阶段尽可能减少
  • 一次垃圾回收的周期少于 10ms
  • 一次垃圾回收操作不能占用超过 25% 的 CPU

工程实践(Go 的项目应用实践)

1.Go 生成数据库架构文档

2.Go 语言国际电子表格文档格式标准实践

   

3.使用 Go 解析 180 亿条 JSON 行

4.Go 项目结构最佳实践

提出一系列选项,可以从中选择如何在新的世界秩序中构建 Go 应用程序。

5.Go 性能测试惊奇 

6.使用 Go,QUIC 和 Micro 建立全球服务网络

分享具体的技术实现细节


7.Go 运行时调度程序处理系统调用的巧妙方法 

8.Bazel 构建 Golang 项目

Bazel 是一款谷歌开源的非常优秀的构建系统,速度极快、可伸缩、跨语言并且可扩展。使用 Bazel 构建 golang 项目,除了 Bazel 本身特性外,还需要了解针对 golang 的扩展包 rules_go。另外,可以使用 bazel gazelle 来进行一些自动生成的工作。

9.Go 项目的 GitlabCI 缓存

10.Go 程序中嵌入静态资源方案选择 

用 Go 编写的应用程序很容易部署,因为它们是静态编译的。如果您需要管理运行 web 应用程序所需的一组文件的位置和权限,那么这种优势就会消失。解决方案是将所有必需的文件编译到应用程序二进制文件本身。这可以在 Go 中通过使用一个包含文件中字节的字符串表示的字节片来实现。

生态拓展(云原生等 Go 生态体系)

1.Gotty 源码分析

GoTTY 是一个简单的基于 Go 语言的命令行工具,它可以将你的终端 (TTY) 作为 web 程序共享。它会将命令行工具转换为 web 程序。

2.一文详解微服务架构

从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。

3.把阿里巴巴的核心系统搬到云上,架构上的挑战与演进是什么?

阿里巴巴核心系统作为全球最大规模、峰值性能要求最高的电商交易系统,在 2018 年之前只通过混合云弹性上云方式,为 双 11 节约大量成本。直到 2019 年,阿里巴巴实现了核心交易系统全面上云并经历了 双 11 峰值的考验。

开源项目(社区新涌现的开源成果)

1.Slog:Go 的最小日志记录库

2.Cap’n Proto:Protobuf 作者新开发的多语言通用数据交换格式

3.JetStream:NATS 内置持久化方案进入 TP 阶段 

4.Pion:Go 实现不发出信号的情况下连接两个 WebRTC 服务

5.Fvm:Go 打造 Flutter 多版本管理工具:fvm 

 

彩蛋(活动与招聘)

12.24 Gopher Meetup 上海站活动 报名

  •    趣头条——长链接方面的实践
  •    讯联数据——Go 语言的抽象编程心得
  •    TutorABC——远程协同设计
  •    蚂蚁金服&携程——dubbogo 的现状与未来

01.04 Gopher Meetup Plus 深圳站活动 报名

  •    Asta——Go 在工业领域的应用实践
  •    腾讯——Go 性能优化之路
  •    广发证券——Go 与极限性能实践
  •    OPPO——云平台存储系统架构设计与容器化实践
  •    平安科技——从面试题目到 Golang 汇编
  •    腾讯——如何向 Go 官方提交代码
  •    华为云——KubeEdge:云原生边缘计算平台的 Golang 实践

【蚂蚁金服】蚂蚁金服研发效能团队招人啦! 详情

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册