周报-Vol.15 20220303
上周全网中出现的优秀文章
本周热点
- 开源项目因支持乌克兰遭issue刷屏,网友:别用Nginx,别用元素周期表
俄罗斯与乌克兰打仗,各种国家开始站队就罢了。各种开源工具也开始区分国界了。GitHub发文封锁俄罗斯、Oracle暂停俄罗斯所有业务等等各种新闻。果然,技术无国界、但技术开发者有国界,打铁还需自身硬啊。
https://juejin.cn/post/7071137159377322015
基础进阶
- 在 TIME_WAIT 状态的 TCP 连接,收到 SYN 后会发生什么?
不仅在理论层面进行了解释,同时在代码层面也做了一定的诠释,很详细。
https://juejin.cn/post/7070364142015610888
- 有关 COW (CopyOnWrite) 的一切
写入时复制(英语:Copy-on-write,简称COW)是一种计算机 [程序设计]领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是 [透明]的。此作法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy) 被创建,因此多个调用者只是读取操作时可以共享同一份资源。
https://juejin.cn/post/7071048126735319076
- redis 分布式锁使用
由易到难的一步步讲解了如何使用 redis 作为一个分布式锁。
https://juejin.cn/post/7070895091275005983
- 计算机网络之传输层
从通信和信息处理两方面来看,“传输层”既是面向通信部分的最高层,与下面的三层一起共同构建进行网络通信所需的线路和数据传输通道,同时又是面向用户的最低层,因为无论何种网络应用,最终都需要把各种数据报传送到对方。
https://cloud.tencent.com/developer/article/1947969
Gopher 提升
- Go 学习路线(2022)
介绍了很多 golang 的学习资源,例如:博客、书籍、练手项目、实用工具以及技术社区等等。
https://juejin.cn/post/7061980386640789540#heading-32
- Go 之 单元测试《Go语言基础》
很具体的讲解了 golang 中的单元测试使用方法,同时 go test 的使用示例。
https://juejin.cn/post/7070036038202163207
- 如何使用高阶函数编程提升代码的简洁性
函数是 Go 语言的一等公民,本文采用一种高阶函数的方式,抽象了使用 gorm 查询 DB 的查询条件,将多个表的各种复杂的组合查询抽象成了一个统一的方法和一个配置类,提升了代码的简洁和优雅,同时可以提升开发人员的效率。
https://juejin.cn/post/7065197280223035422
- 一文搞懂Go语言的plugin
Go plugin支持将Go包编译为共享库(.so)的形式单独发布,主程序可以在运行时动态加载这些编译为动态共享库文件的go plugin,从中提取导出(exported)变量或函数的符号并在主程序的包中使用。Go plugin的这种特性为Go开发人员提供更多的灵活性,我们可以用之实现支持热插拔的插件系统。但是go plugin自诞生以来已有4年多了,但它依旧没有被广泛地应用起来。
https://www.imooc.com/article/319050
- 使用go-metrics在Go应用中增加度量
通过go-metrics包,我们可以很方便地为一个Go应用添加度量指标,go-metrics提供的meter、histogram可以覆盖Go应用基本性能指标需求(吞吐性能、延迟数据分布等)。
https://www.imooc.com/article/318980
- 盘点Go中的开发神器
作为一门比较新的编程语言,golang 对现有语言取其精华,自带必要的工具,进一步降低门槛,对新手学习来说非常友好。其中简要的对测试工具和调试工具做了一个简要的介绍。
https://www.cnblogs.com/zhuochongdashi/p/15948985.html
- Go究竟是否为空切片分配了底层数组
很详细的从源码层面解答了这个问题。
https://www.imooc.com/article/323663
- 聊聊Go应用输出日志的工程实践
Go隶属于后端语言,以开发各类服务、中间件和系统平台见长。日常学习Go语言时,日志不是不可或缺的,甚至是无需考虑的,但是一旦到真正的Go的工程实践中,输出日志便是我们绕不过去的、必须面对的问题。
https://www.imooc.com/article/324059
小工具
- 2022 强力之作:一款超精致的图片预览组件
这是一个基于 react 的超炫酷的一个图片预览组件。支持非常丰富的交互操作。不过有一些小 bug。
https://www.v2ex.com/t/837557#reply31
- 曝光一个很多人都不知道的学习网站。
第一次知道在 阿里云 服务网站上也有大量的学习资料。阿里云网站—> 帮助中心,其中有大量的 资料,例如 redis 的应用场景、备灾方案、性能排查 以及最佳实践等等。
https://juejin.cn/post/7069615648120242207
- tcpdump抓包学习Nginx(反向代理),学完不怵nginx了,还总想跃跃欲试!(Nginx使用、原理完整版手册)
详细介绍了 nginx 配置文件的各种配置。包括:检验、重载nginx配置文件、动态路由、反向代理、性能优化等等。是一个很实用的手册。
- 源码阅读四步走,这才是阅读源码的正确姿势
写的虽然很少也不全,但是写的挺好的,可以之后给我读源码一个思路。
https://www.cnblogs.com/ivaneye/p/15967037.html
算法题(每星期一道)
- 子数组范围和 :「区间 DP」&「递推」&「单调栈」
leetcode 中 2104 题的讲解文章。
https://juejin.cn/post/7071059113475571749
我发现leetcode 中的算法题已经忘的一干二净了,每星期可能需要适当的看一道 leetcode 算法题。
认知升级
- 技术管理进阶——为什么Leader的话有时候你听不懂
这篇文章讲了同频对话的含义和理解方式,需要打破自己顽固的认知体系,构建自己通畅的信息通道,换位思考,推己及人,那么就能达到真正的**「同频对话」甚至「向下兼容」**了。其实最终还是自我认知的问题,不同认知的人相互讲话,其实有时就是鸡同鸭讲。
https://www.cnblogs.com/yexiaochai/p/15956492.html
sidecar模型:昨天在那片文章中就见过了,但还是没有理解,这个需要找找资料了。