周报-Vol.17 20220324
对于本周中文网站中的优秀文章做一个提取
本周热点
- Plato Farm 频出新功能,元宇宙造富时代或来临
Plato Farm 或许会引领元宇宙造富浪潮,有很多新创的规则,例如,铸造的 NFT 将创始人会享受永久版税;该平台的新功能也频频推出,零撸版本上线;国库功能上线;打卡活动等等。
-
聊聊最近比较火的一款 Web3.0 应用 (25/100)
最近有款 Web3.0 应用很火,叫 Stepn。它是个 区块链版的 keep 运动软件。需要购买一个 nft 运动鞋,就可以通过每天跑步来获取收益。
基础进阶
-
简单工厂模式
-
工厂方法模式
-
抽象工厂模式
-
单例模式
-
分布式链路追踪
https://xie.infoq.cn/article/b873f7743404d82b72659320c
本文主要介绍了分布式链路追踪的标准规范:OpenTracing 以及它的实现:Jaeger。事实证明,在越复杂的系统里,我们越要尽可能的利用这些出色的组件,对其监控起来。只有提高系统的可见性,我们才不至于在问题出现的时候手忙脚乱。
-
大话后端开发的奇淫技巧大集合
https://xie.infoq.cn/article/cd187e1fe2172bb74f3f2459f
作为后端开发者,不仅是完成需求功能开发,要结合业务场景进行合理设计,架构未来,对核心业务进行压测优化,以保证业务在并发下能够正常运行,同时要考虑安全问题以及防刷,防羊毛党,在编码上避免坏代码味道,面相抽象开发,适当使用设计模式,避免技术债。
-
十分钟搞懂手机号码一键登录
https://juejin.cn/post/7059182505101885471
手机号码一键登录是最近两三年出现的一种新型应用登录方式,比之前常用的短信验证码登录又方便了不少。登陆时,应用首先向用户展示带有本机号码掩码的授权登录页面,用户点击“同意授权”的按钮之后,应用即可获取到完整的本机号码,从而完成用户的登录认证。在这个过程中,应用只要确认登录用的手机号码是在绑定了此号码的手机上发起的即可认证成功,从这一点来看,它和短信验证码登录并无本质区别,都是一种设备认证登录方式。这篇文章就来捋一下其中的技术门道。
-
SnowFlake 雪花算法详解与实现
https://juejin.cn/post/7082669476658806792
讲述了雪花算法的原理、实现、优缺点 以及注意事项。
Gopher 提升
- Go Data Structures: Interfaces [中译]
https://xie.infoq.cn/article/eba7a0a0f52c65c1df521c550
这是将go官方中对于 interfaces 的介绍,翻译成了中文。很容易能看懂。
- golang 里的一些奇奇怪怪的东西
https://xie.infoq.cn/article/2f583693dd1cfeaf593959adc
东西不是很多,但很有意思。
-
Go 1.18 泛型全面讲解:一篇讲清泛型的全部
https://juejin.cn/post/7080938405449695268
泛型并不取代Go1.18之前用接口+反射实现的动态类型,在下面情景的时候非常适合使用泛型:当你需要针对不同类型书写同样的逻辑,使用泛型来简化代码是最好的 (比如你想写个队列,写个链表、栈、堆之类的数据结构)
-
「Go官方出品」快速掌握Go1.18新特性:工作区
多工作区 的概念,我需要了解清楚。这篇文章算是一个较为详细的文章了。
-
手把手教你如何创建及使用Go module
https://juejin.cn/post/7080696594382716958
Go module不仅解决了项目代码不再依赖于GOPATH路径,而且还解决了相同module的多版本引入问题。通过本篇文章,相信您对module的创建、发布、版本管理、依赖关系都会有了一个清晰的认识。
-
Go基础——反射和并发编程goroutine
https://juejin.cn/post/7077902463151374367
介绍了 golang 中反射的基本用法,以及并发编程的一些基础知识,包括:channel、pool、select多路复用、锁、以及 sync.Once 和 sync.Map
-
go语言源码阅读:io标准库
https://juejin.cn/post/7078281737696083998
在go语言的
io标准库中,Copy和ReadAll均可用于读写字节流,这里研究它们的源代码,并比较它们的性能差异。 -
逐行拆解 Go map 源码
https://juejin.cn/post/7079964047893856293
本文会详细拆解 Go map 的核心源码
-
聊一聊Go的协程信息和如何预防泄露
https://juejin.cn/post/7080800891841806343
Go协程有几个内置信息,协程id、协程栈、协程状态(running/io wait/chan send),通过这些信息可以帮助我们一定程度的避免或者定位问题;Go里面创建协程只需要一个Go关键字,但是要合理回收却很关键,必要时可以用协程池做限制
-
【Go】Context 源码解析
https://juejin.cn/post/7081870299653734436
context 包是 Go 1.7 后加入的一种用于复杂场景下并发控制的模型,最核心的接口是
context.Context, 这个结构体中定义了五个待实现的方法,用来实现发送关闭信号,设置 dateline,传递值等功能。
小工具
-
Go 流媒体(直播音视频)服务器 LAL - 开源自荐
https://github.com/q191201771/lal
支持很多功能,直播、录制、推流 等等功能
-
采集上万站点不在话下,一款能够自动解析新闻网页的算法
https://juejin.cn/post/7078220041417654302
输入网页文本(不需要输入 xpath),自动结构化输出标题、发布时间、正文、作者、来源等信息。
-
几个秒杀 Go 官方库的第三方开源库
https://juejin.cn/post/7082238031356231688
Go 语言官方库给我们一贯的印象是:强大、好用。但是,金无足赤,人无完人,在一些性能要求苛刻的场景例如 json 解析,某些官方库的表现不尽如人意。
本文介绍几个对标官方库的开源库,它们的性能远超前者。当读者在使用这些官方库遇到性能问题时,可以尝试替换优化。
算法题(每星期一道)
认知升级
-
优秀程序员的 30 种思维 -- 技术执念篇(22/100)
https://xie.infoq.cn/article/08320ca0f3ac64418f733190e
简要介绍了 不迷信权威、保持好奇心、开源精神、标准化、清晰原则、不存侥幸心理 这几种思维,其中,标准化中,开发,多做抽象,少写 if-else,多做配置,少做硬编码 这句话很认同。
-
定点数杂谈
https://juejin.cn/post/7083111602404196359
介绍了当前程序中对于 浮点数的几种存储方式,定点数 也是浮点数的存储方式,在这篇文章中简单的介绍了一下。
\