项目介绍:
大家在学习一个热门开源项目的源码的时候,是不是经常会感到不解?或许你是英语不好导致的,也可能是没有注释又无法理解代码意思导致的。这是否令你常常想要放弃通过阅读源码去学习一个项目呢?从今天开始答应我不要再放弃了,好吗?因为 redis7.0 中文注释它来了!🎆🎇✨🎉
本项目旨在帮助中文区的大家能够更容易的去阅读,学习 redis 源码🍭🍭
在你学习 redis 源码的同时,如果你理解了一段源码,我们也希望你可以将你的理解做成中文注释并向本仓库发起 pull request 来和大家分享你的想法。因为让一个人来完成这么大的工程是极其困难的,所以本项目的开源目的也是想让大家一起来完善本仓库的源码注释。人多力量大!争取达成所有源码都有中文注释的目标!同时让大家都参与源码注释的修改工作,我们的注释也能够集百家之所长!🎉🎉
废话不多说,先上 github 仓库地址:github.com/CN-annotati…
项目进度:
Redis中常用的 string, hash, list, set, zset 这五个类型的源码我都已经自己一个人完成了哦🍦🍦,还有额外多完成了一个小的 "quicklist.h" 文件,另外还有感谢咱小组织内的两名成员志愿帮忙完成的 "sds.h" 、 "sds.c" 、 "adlist.h" 、 "adlist.c" 注释。
目前已经注释了超过1万行的源码,我们希望大家能够多多参与我们的项目,把更多的源码注释都一起给完成🍭🍭
杂谈:
为什么我会想做这样一个开源项目?
因为受到了《Redis设计与实现》这本书的作者黄建宏把给 Redis 3.0 做的注释在github仓库上公开的启发。
另外最新的 Redis7.0 正式版本刚上线不久,网络上还没有多少关于 Redis7.0 的资料,我作为一个只能修修小bug,小优化和注释增删改的很水的 Redis Contributor 也想为大家学习最新的 Redis 做点贡献🥺🥺,所以就有了这样一个项目!🍭🍭
我还创了个github小组织,是专门用爱发电做热门开源项目中文注释的,因为除了 Redis 之外,我还想看见好多好多的热门开源项目都有中文注释,大家(包括我)就不用看源码看得那么痛苦了。我看见很多人不想自己看源码学习的原因是因为认为自己看不懂,想找源码讲解的视频,也就是想有人带着学习。是的,刚开始不了解 Redis 的代码风格,我阅读的速度也很慢,感觉源码对我一个大二的学生来说太高级了,很难学习。但是时间长了之后,感觉自己已经算是比较熟悉 Redis 的写法了,所以带头给大家写了点中文注释。我希望不管你是已经脱离看不懂源码的”苦海“的,还是通过中文注释的帮助下脱离了”苦海“的,都能转过身来帮帮剩下的人们,贡献自己优秀的中文注释。(听我说谢谢你,因为有你,温暖了四季~🍭🍭)
为什么要把自己做的中文注释公开,这不是让别人来卷死自己吗?
这个问题我也想过,但我还是选择这么做。也许是因为我测了多次都是INFJ型人格,一个极致利他主义者?🤔🤔
我提倡喜欢分享的大家都能这么做,把自己的见解分享给他人,其他人真的从你的见解学到东西的时候,又何尝不是一种快乐?
Redis 官方成员入伙:
项目公开不久后,已经有 Redis 官方组织的国人成员 "enjoy-binbin" 大佬把注释项目 fork 了,经过三个小时的捣鼓,大佬果然熟悉 Redis 源码,直接完成了双端链表的注释。并且因为增加了50行以上的中文注释(咱小组织邀请新成员的规矩)已经被我拉入伙~嘻嘻🍭🍭🍭
嗯!目前 Redis 官方成员已经加入本项目和小组织了!开心!
最后想说的话:
我感觉到我做的这些注释也不是完美的,我自己并没有感觉到一定能让其他人通过我的中文注释就能理解源码,大家在觉得哪里意思不对,或者读起来让你很迷惑的时候,欢迎随时提出你的 pull request!就像 Redis 的主管对我说过的那样:
最后,我们的 Redis7 中文注释仓库目前还有很多源码没完成中文注释,如果你想要持续学习 Redis ,可以给咱的小仓库点一个 star✨ 来持续关注我们的后续更新哦~🍭🍭