周报-Vol.16 20220313
周报总结
基础进阶
- gRPC 简介实践
对 gRPC 作了一个简单的介绍,定义、使用方式以及特性。
https://xie.infoq.cn/article/923fcbc49b72654e91919bc4c
- 构建 Go 应用 docker 镜像的十八种姿势
很简单的一个 docker 入门教学应用
https://xie.infoq.cn/article/ba31adec67f82c64afa27f068
- 一把梭:REST API 全用 POST
一把梭:REST API 全用 POST 这个观点是错的。
https://coolshell.cn/articles/22173.html
- QUIC协议详解
QUIC,发音同quick,是"Quick UDP Internet Connections"的简称,是一种通用的传输层网络协议。QUIC与TCP相同,是一种有连接的传输协议。但是与TCP不同的是QUIC是建立在UDP传输层协议之上的,实现了在两个端点之间的多路复用。QUIC的是在用户空间实现的,TCP/UDP则是在内核空间实现的。
https://www.cnblogs.com/harrypotterjackson/p/15977660.html
Gopher 提升
- Learn Go with tests
通过编写测试学习 Go 语言
为测试驱动开发打下基础。Go 是学习测试驱动开发的优秀语言,因为它简单易学而且内置测试功能
相信你很快就可以使用 Go 语言编写健壮的、经过良好测试的系统
https://studygolang.gitbook.io/learn-go-with-tests/
- Go by Example 中文版
这里就是很多使用的例子和场景,解决实际问题的小 demo,告诉我们官方的类库怎么用。
https://gobyexample-cn.github.io/
- Tutorial: Getting started with generics
Go 官方的新教程:泛型
https://go.dev/doc/tutorial/generics
- Tutorial: Getting started with fuzzing
Go 官方的新教程:fuzz test
https://go.dev/doc/tutorial/fuzz
- golang 使用总结(1)
在开发的过程中遇到了几处比较有趣的地方。做个笔记记录,同时方便其人查阅、快速解决类似的问题。
- 锁拷贝问题(Mutex Copy )
- 安全的 marshal/ unmarshal 含有锁的结构(Safe marshal/unmarshal structure with lock)
- 将 Proto 序列化的结构放入到 json 的字段中(Put the structure of the Proto serialization into the json field)
https://juejin.cn/post/7074515900740665374
- 用Go构建你专属的JA3指纹
在这篇文章中将会简单回顾https的握手流程,并基于读者的提问题解释什么是JA3指纹以及如何用Go定制专属的JA3指纹。
https://juejin.cn/post/7073264626506399751
- Go错误集锦 | nil通道及其使用场景
在Go中有时候忘记使用nil通道也是经常犯的一个错误。本节我们一起来看看什么是nil通道,为什么要使用nil通道。
https://juejin.cn/post/7072896652776292382
- golang常用库:配置文件解析库/管理工具-viper使用
viper是一个配置管理的解决方案,它能够从 json,toml,ini,yaml,hcl,env 等多种格式文件中,读取配置内容,它还能从一些远程配置中心读取配置文件,如consul,etcd等;它还能够监听文件的内容变化。
https://juejin.cn/post/7072630559595298852
- Go1.18 新特性:多 Module 工作区模式
Go 的依赖管理,也就是 Go Module。从推出到现在,也已经有了一定的年头了,吐槽一直很多,官方也不断地在进行完善。
Go1.18 将会推出一个新特性:Multi-Module Workspaces,用于支持 Module 多工作区,能解决以往的一系列问题。
https://eddycjy.com/posts/go/118-module/
小工具
- 我给公司用了这款工具,领导直接给我涨了两千工资
YApi 结合 Swagger 使用果然很强大!之前使用 Postman 结合 Swagger 使用时,文档查看、自动同步的问题都得到了解决,为了保证我们 API 文档访问的安全性还提供了权限管理功能。当 API 数据格式定义好后,Mock 功能让前端无需后台实现也可以调试接口。不过对于 JSON 格式支持有点偏弱,要是能对 JSON 数据进行折叠显示就更好了!
https://xie.infoq.cn/article/eebccd93533027feadfa1e8a5
- 百灵快传(B0Pass)
基于Go语言的高性能 “手机电脑超大文件传输神器”、“局域网共享文件服务器”。
只需一个文件(exe)双击开启。
https://github.com/bitepeng/b0pass
- Deskreen
一个屏幕分享软件,可以把桌面电脑的屏幕(Windows、MacOS、Linux)分享到局域网内的任意设备,只要对方有浏览器就可以接收。
- SingleFile
浏览器保存网页时,默认会生成一个 HTML 文件和一个文件夹。这个插件可以将网页的所有内容保存成单个 HTML 文件,把外部 JavaScript 和 CSS 文件变成页内脚本,并把图片都改成页内 Base64 字符串。
https://github.com/gildas-lormeau/SingleFile
算法题(每星期一道)
- \
认知升级
- 全链路压测(七):核心链路四问
这篇文章讲了核心链路的概念、原因、具体做法和目的。
https://xie.infoq.cn/article/915820fe4fc47d8e68aa59748
- 写给 20 几岁的程序员
这是一个大龄程序员的分享,希望对 20 几岁的后浪们有点帮助。 大龄程序员是男的,15 年工作经验,7 年大厂经历,3.5 年独角兽公司经历,目前瞎折腾当中。 好为人师是一种病,所以我尽量让病症表现得不那么明显,多分享经历和见解(主观),少表达情感。卖课割韭菜我于心不忍,所以尽量谈本质问题,而不告诉你该怎么学习 Javascript 或者 Go,也不鼓动你去做 SOLO 或副业,更不想贩卖焦虑。但是我会谈到这些问题。
https://xie.infoq.cn/article/60e3819ca651e32b0266e970c
- Go 设计哲学:少即是多,哪里来的?
之前在 Go 社区分享知识和经验时,经常会听见诸如:less is more、少即是多,大道至简、大道不停地至简等黑话。
甚至讨论 Go issues 和提案时,都会有人用 “less is more” 来反驳或做为论点支撑,非常的有意思。大家都会很好奇,出处是哪里,是什么意思?
https://juejin.cn/post/7073323749184897038#heading-15
- 我完成了10000小时开发3D引擎
这个博主从 2015年开始,到现在实现了 10000小时学习计划。
https://www.cnblogs.com/chaogex/p/15986803.html
- 平时的工作如何体现一个人的技术深度?
平时工作中很多时候需求细而碎的,如何在工作中积累技术深度?又如何体现一个人的技术深度?
https://www.cnblogs.com/xxcanghai/p/ping-shi-de-gong-zuo-ru-he-ti-xian-yi-ge-ren-de-ji.html