前言 因为一些原因,我已不再从事飞书音视频业务,目前主要以技术管理者的角色负责飞书日历业务。实际上,这个岗位变动已经持续近一年的时间,这段时间也让我对日
前言 自写下《十字路口的抉择》已过去两年多,我也完成了从一线研发到一线技术管理的角色转变。这之间实在发生了许多的事情,导致我的博客建设荒废许久。 总得来说
前言 笔者在《从零开始学习RTC——音视频概述》的系列开篇文章中对音视频基础元素进行了简要概述。其中,笔者一笔带过了音视频数据在编码压缩之后的传输过程,
前言 笔者自加入字节跳动飞书音视频团队以来,已经度过三年半的时间,见证了飞书视频会议产品矩阵从无到有的全过程。不得不说,飞书的发展可以用一日千里来形容。
前言 博客好久没有更新了,笔者也是深感到精力不足,无法再维系上半年那样的发布频率。不仅如此,创作的热情也与日递减。在此笔者不得不感叹,时间是宝贵的资产,
RTC(Real-Time Communication,实时通信)是音视频业务中难度最高、挑战最大的场景。不同于当下热门的直播技术,RTC对实时性的要求
OKR全称Objectives & Key Results,是实现目标管理、推动执行合作的方法论。OKR工作法是风靡全球的优秀实践,它不仅提供了个人在目标规划和
map不仅是Go语言的核心数据结构之一,更是整个编程世界最常见的核心数据结构之一。map描述了一种键与值的映射关系,开发者通常会通过键来查询其对应的值
Go语言的并发模型基于CSP(Communicating Sequential Processes)理论。Go的并发哲学强调: “Do not communicate by sharing memory; instead, share memory by communicating." goroutine和ch
如果将Kubernetes比作是云原生时代的云操作系统,那么Helm就是这个云操作系统的包管家。Helm之于Kubernetes,就如同apt之于ub
Zadig是面向开发者设计的开源、高可用 CI/CD:Zadig 强大的云原生多环境能力,轻松实现本地联调、微服务并行构建、集成测试和持续部署。 Zadig 不改变现
slice是golang开发中最常用到的内置类型之一。与数组相比,它具有长度不固定、可动态添加元素的特性。 版本说明 本文涉及到的源码解析部分来源于go官
OKR全称Objectives & Key Results,是实现目标管理、推动执行合作的方法论。OKR工作法是风靡全球的优秀实践,它不仅提供了个人在目标规划和
前言 Engine.IO是Socket.IO更底层的实现基础,要想完整理解Socket.IO必须对Engine.IO协议也有深刻认知。 笔者在《【译】So
前言 Socket.IO是一个优秀的JavaScript实时通信框架。它提供基于事件的双向流通信模型,底层封装了Websocket和HTTP long-p
定时任务CronJob是系统设计中的基础原料,它提供了一种通用的后台任务解决方案。本文将由浅入深讲解CronJob任务调度架构设计中的关键要素。 使用场
Context是Go语言标准库的组成之一,在Goroutine之间传播,能够提供Cancel和KV功能。 Why Context 问题一:Goroutine Cancellation Gorouti
Go语言的依赖管理经历了漫长的迭代和演进,最终随着Go Modules被官方采纳,形成大一统局面。回顾整个历史,Go依赖管理的实践之路其实颇为坎坷,中途
Golang的Error Handling一直备受争议,官方和社区也持续提出各项改进方案。作为语言级别的error支持,Go对error的实现却异常简单
功能概述 ping基于ICMP协议,用于探测目标域名或者IP的连通性。 使用示例 示例一:ping www.baidu.com kevinwu@debian:~$ ping www.baidu.com PING www.a.shifen.com (220.181.38.150) 56(84) bytes of data. 64 bytes from 220.181.38.150 (220.181.38.150): icmp_seq=1 ttl=128 time=59.0 ms 64 bytes from 220.181.38.150 (220.181.38.150): icmp_seq=2 ttl=128 time=57.5 ms
Kubernetes的源码纷繁复杂,为了能够深入学习其原理,笔者尝试从0到1搭建一套完备的源码调试环境。不同于gdb的全命令行终端调试,本套环境完全基
功能概述 traceroute用于显示源主机到目标主机之间的网关信息。traceroute的实现原理是基于报文的TTL,可以通过TCP/UDP/ICMP
功能概述 ping基于ICMP协议,用于探测目标域名或者IP的连通性。 使用示例 示例一:ping www.baidu.com kevinwu@debian:~$ ping www.baidu.com PING www.a.shifen.com (220.181.38.150) 56(84) bytes of data. 64 bytes from 220.181.38.150 (220.181.38.150): icmp_seq=1 ttl=128 time=59.0 ms 64 bytes from 220.181.38.150 (220.181.38.150): icmp_seq=2 ttl=128 time=57.5 ms
功能概述 ls用于展示当前目录的文件详情。 使用示例 示例一:显示文件详情 kevinwu@debian:~/go/src/github.com/go-delve/delve$ ls -l 总用量 100 -rw-r--r-- 1 kevinwu kevinwu 1052 1月 22 12:51 appveyor.yml drwxr-xr-x 2 kevinwu kevinwu 4096 1月 22 12:51 assets -rw-r--r-- 1 kevinwu kevinwu 28773 1月 22 12:51 CHANGELOG.md drwxr-xr-x 3 kevinwu kevinwu
Golang在DevOps领域备受欢迎的原因之一,就是能够快速实现命令行工具。无论是多么复杂的源代码,最终都能够只被编译成一个简单的二进制可执行文件,
Kubernetes的诞生不仅终结了容器编排的纷争,更带动了“云原生”理念的火热。作为CNCF核心项目的Kubernetes同时极大提升了CNCF本身
功能概述 ls用于展示当前目录的文件详情。 使用示例 示例一:显示文件详情 kevinwu@debian:~/go/src/github.com/go-delve/delve$ ls -l 总用量 100 -rw-r--r-- 1 kevinwu kevinwu 1052 1月 22 12:51 appveyor.yml drwxr-xr-x 2 kevinwu kevinwu 4096 1月 22 12:51 assets -rw-r--r-- 1 kevinwu kevinwu 28773 1月 22 12:51 CHANGELOG.md drwxr-xr-x 3 kevinwu kevinwu
功能概述 date用于显示当前的系统时间。 使用示例 示例一:显示当前时间 kevinwu@debian:~$ date 2021年 04月 02日 星期五 22:15:05 CST 示例二:显示当前UTC时间 kevinwu@debian:~$ date --utc 2021年 04
功能概述 cd用于在Linux目录中跳转。 使用示例 示例一:进入gogogo目录 kevinwu@debian:~$ cd $GOPATH/src/gogogo kevinwu@debian:~/go/src/gogogo$ 示例二:返回父目录 kevinwu@debian:~/go/src/gogogo$ cd .. kevinwu@debian:~/go/src$ 示例三:返回到上一次所在目录 kevinwu@debian:~/go/src$ cd - /home/kevinwu/go/src/gogogo # 同