编程与软件工程youtube.com
编写系统软件(演讲视频)
Writing System Software [video]
2018 — 2020,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 Redis 作者 Salvatore Sanfilippo(antirez)主讲的视频,分享编写系统软件的经验,并以 Redis 为例讲解内部实现。评论提到这是 Redis 代码走读系列的第一集,对学习生产级系统设计很有帮助。
为什么经久不衰:来自顶尖系统程序员的一手实践演示,展示真实 Redis 代码的设计与修改过程,对理解系统软件工程有持久价值。
HN 评论精选
作者列出了丰富的后续主题,并指出视频制作效率高但传播效果有限。
如果你有兴趣对后续剧集提供反馈,我目前的想法清单包括:Redis 代码片段、Sentinel 设计、goto 的使用、协议解析与零拷贝、持久化模型、崩溃报告、可观测性、Streams 宏节点、RIO 抽象、Cluster 消息总线和哈希槽跟踪等。关于这次尝试:拍视频几乎只需录制时间,准备几分钟,后期自动,最多一小时完成;但视频触达率远低于博客,写博客有时需更多时间才能达到同等信息量,是个权衡;而且视频消费对很多人有障碍,比如口音和英语听力。
antirez查看英文原文
In case you are interested in providing feedbacks about the next episodes, my current list of potential ideas is: 1. Code snippets: show small self contained functions from random places inside Redis. 2. Redis Sentinel: the first design, the immediate redesign of v2, and how it is internally implemented. 3. The use of goto in Redis. 4. Redis protocol parsing and zero-copying of objects. 5. The odd Redis persistence model: fork() and fighting the copy-on-write. 6. Redis crash report. Generation and usefulness over the years. 7. Observability inside Redis: latency hooks, LATENCY DOCTOR and MEMORY DOCTOR. 8. Hybrid data structures: Streams macro nodes implementation. 9. RIO: Redis I/O abstraction and OOP in C. 10. Redis Cluster: how the Redis message bus is implemented. 11. Redis Cluster: hash slots tracking and redirections. If you have any preference and/or other ideas, will be cool to hear. About this experience itself, good things: shooting a video takes more or less just the time to record. Preparation is just a few minutes, and later post processing is an automatic process... So in 1 hour max everything is done. However I see that the reach of the videos is very low compared to a blog post, which requires more time to write sometimes, at least to have the same amount of info. So it's a tradeoff. Also consuming the video may be a problem for many, for instance for language barriers due to the speaker accent (in my case) and the listener ability to understand English without subtitles. Let's say I want to make 10 episodes and re-evaluate if it's a good idea to change style and do 5 minutes episodes instead.
建议增加灯光、独立麦克风和房间吸音,并注意代码配色,以大幅提升视频质量。
看过类似的系列后,我强烈建议在呈现上多花点功夫——录制视频时完全不注意灯光和声音,会让人很难看清和听清。对我来说,键盘声和混响让我很难听清说话内容。基本的灯光(让脸不在阴影里)、单独的定向麦克风(哪怕 40 美元的 Snowball 也会大有帮助)、以及可能的房间吸音处理,都会让视频质量明显不同。另外,深色低对比度的编码在 YouTube 上效果很差;有些代码很难看清。我明白我们看的是软件工程师而不是艺人,但相对很小的努力和投入,视频质量的回报却非常大。
falcolas查看英文原文
Having watched similar series in the past, I would highly recommend some extra effort be put into the presentation - recording videos with no attention to lighting or sound makes it really hard to see and hear what's going on. Specifically for me, it's really hard to understand what's being said over the keyboard and reverb. Some basic lighting (so your face isn't in shadows), a separate directional microphone (even a $40 snowball would help immensely), and potentially some sound baffling in the room would make a real difference to the video quality. Finally, dark colors with low contrasts encode quite poorly on YouTube; some of the code is rather hard to read. I realize we're watching a software engineer and not an entertainer, but the payoff in the quality of the videos for relatively little effort and investment is remarkably big.
高度推荐观看 antirez 的 Redis 代码走读,称其可能改变职业生涯。
对于那些有经验的人,无论你是否熟悉 C,我都推荐 antirez 的 Redis 走读视频(链接的视频是第一集)。观看高效程序员导航、解释和修改代码,可能是一次改变职业生涯的体验。如果你不在那种程序员聚集的地方工作,你可能永远不会有这种体验。如果你在读这条,antirez:感谢你制作这些,它们真的很特别。
gen220查看英文原文
For those of you that are seasoned, whether you're deeply-familiar with C or not, I'd recommend Antirez's walk-throughs of Redis (of which the linked video is the first). Watching highly-effective programmers navigate, explain, and modify code can be a career-changing experience. If you're not working in a place where these kinds of programmers accrue, you might never get the experience. If you're reading this, antirez: thank you for making these, they're really special.
视频深入且代码可读,对开发 KeyDB 有帮助,作者值得敬仰。
这比我预想的更深入。如果我刚开始做 KeyDB 时就有这个,会非常有帮助——即使没有外部文档,他的代码也非常可读。Salvatore 绝对是这个行业里值得敬仰的人。
jdsully查看英文原文
This is more in depth than I thought. It would have been super helpful when I was first starting on KeyDB - but his code is very readable even without external documentation. Salvatore is definitely someone to be looked up to in this industry.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选