看到阮一峰的科技爱好者周刊已经突破了150期,已经到了155期,到这155期已经进行了3年了,让我感到强大与不可思议,我也从中了解、学习到了很多。

阮一峰还有其他互联网中的许多人,让我相信互联网的精神就是分享。

于是我也想试试开始自己的周刊,记录我在这一周内的阅读与收获,先定个小目标吧,写下5期这样的分享,每期包括大概10项内容。

目前主要会偏向音视频、网络传输等方面,毕竟现在主要在做这方面。

成为专业的人

毕业以后到现在已经快一年了,看到卢俊写的写给新入职的毕业生们(一)写给新入职的毕业生们(二)写给新入职的毕业生们(三)有许多感触,发现自己还是有不少欠缺的。这里记录一下我觉得都很重要的东西,这几篇文章也非常好,推荐大家看看。

让自己的工作更加专业

进入工作生活之后,所开发的产品会面对客户,因此需要对自己的工作负责,也必须表现得足够的专业。

  • 提交代码之前请充分测试
  • 关心性能和效率
  • 写出“专业级”的代码
  • 不要惧怕任何问题

。。。一旦项目中集成了太多第三方库或者其他人的代码,而且问题在他们那块的时候,我就会不自觉地退缩和抱怨,而老板从来都不会,他总是会跑过来跟我一起耐心地调试,一行行地阅读和分析那些“晦涩”的代码,直到找到问题所在为止。这一点我真的很佩服,老板是整个项目组最后一道屏障,一旦老板都退缩了都放弃了,项目也就黄了。。。

  • 不放过任何一个Bug

原创和版权意识

在网上参考别人的代码时正常的,也的确可以帮助我们快速地实现一些功能,但是要时刻注意,网上的代码经常写得非常地不严谨,在使用它们之前,一定要充分地理解和消化,解决掉其中隐含的Bug,最好能够用自己的方式实现一遍。
为公司开发产品,一定要注意版权意识,在使用第三方开源代码或者库之前,请仔细阅读License

拼命提高你的技术

扩展视野

保持乐观的心态

严格要求自己,不要犯 “低级” 错误 / 解决问题不要抱有侥幸心理

虽然他们做的功能总体来说是很牛逼的,但是这一系列的 “低级” 错误,一次又一次地拉低了我对他们技术的认同度和信任度。

善于总结排查问题的工具和技能

永远要设定 deadline,完成比完美更重要

  • 基础模块,其他工作需要依赖此模块
  • 涉及到接口的定义或者修改的工作
  • 当前必须支持的功能点
  • 可以后期增加的功能点
  • 可以后期优化的地方

“完成” 并不是说带着很多 Bug 的完成,而是说一个稳定但不一定功能齐全的版本,因此,千万不要用 “完成而不完美” 作为忽略交付质量的借口

不要不加思考的提问

文章

直播疑难杂症排查 系列

非常细致地从客户端(播放器)的角度开始,介绍、说明了形形色色的问题,如直播卡顿、马赛克、花屏、黑屏、杂音、音画不同步等问题。这些对我理解音视频基础有了很大帮助,帮助我串起来了之前学习到的零散的知识点。

超低延迟实时流媒体传输技术

这是腾讯提出的对超低延迟直播的思考与解决思路,如何设计这样场景的协议,依赖buffer抗抖动 vs 不抖动,类FEC vs 重传,NACK vs SACK等。这是我的一点总结低延迟直播思考 (笔记)

为什么流媒体直播的延迟很高

上一篇提到了超低延迟,这篇文章讲了很多直播中哪里引入了延迟:主要是网络传输中带来的延迟,以及为了抵抗网络波动等导致的卡顿问题、秒开等特性,多端缓存带来的缓冲buffer。

安全背后: 浏览器是如何校验证书的

启用 HTTPS 的核心是一个叫做 证书 的东西
那么,证书是什么?里面含有什么内容?浏览器为什么会不信任 12306 的证书?为什么下载 12306 提供的根证书就可以解决这个问题?根证书又是什么?
理论知识我们已经全部具备了,接下来我们来完整走一遍流程,以 github.com 为例,校验一下它的证书是否有效。

教程

Take your first steps with Rust

微软出的rust教程,我还没有看完,不过感觉写的挺好的,目前在看的过程中基本没有疑难点。

go-perfbook

如何编写高性能的Go代码

工具

hls analyzer

分析hls拉流挺好用的

mediainfo

分析流的码流信息

fgprof - The Full Go Profiler

Go的内置采样CPU profiler只能显示On-CPU时间。Go的trace profiler可以分析I/O,但是不能与CPU profiler结合使用。因此fgprof被设计用于具有I/O和CPU混合负载的应用程序,即可以分析On-CPU也可以分析Off_CPU时间消耗在了哪里。

好东西