Redis之父的“退役”感言_cdai的博客-程序员资料

技术标签: Redis  

Redis之父Antirez今早发布了一篇文章,题为《The end of the Redis adventure》。多年以前深入学习过Redis,这个最流行的缓存解决方案。当时惊叹于其近乎“变态”的性能表现,简直就是一个性能猛兽。而更令人印象深刻的是,在优异的外在表现背后,其代码质量也同样优秀。当年又不少的文章和书籍,都是关于Redis源码解析的。因为工作的缘故,我也写了不少文章,对Redis这个好产品还是有些怀念的。

出于这些缘由,今天特意仔细读了一下Redis之父的这篇博客。文章虽然不长,但有的地方还是触动到了我。下面就简单地整理了一下,主要是前面几段的内容。原文地址:http://antirez.com/news/133。

When I started the Redis project more than ten years ago I was in one of the most exciting moments of my career. My co-founder and I had successfully launched two of the major web 2.0 services of the Italian web. In order to make them scalable we had to invent many new concepts, that were already known in the field most of the times, but we didn’t know, nor we cared to check. Problem? Let’s figure out a solution. We wanted to solve problems but we wanted, even more, to have fun. This was the playful environment where Redis was born.

十多年前,Redis之父因为碰到了一个建站时的问题,于是跟同伴一起寻找解决方案,但更重要的是,寻找乐趣。

But now Redis is, incredibly, one of the main parts of so many things. And year after year my work changed from building this thing to making sure that it was also as useful as possible, as reliable as possible. And in recent years, what I do every day changed so much that most of my attention is spent in checking what other developers tell me about the Redis code, how to improve it, the changes it requires to be more correct or faster or more secure. However I never wanted to be a software maintainer.

当Redis逐渐流行开来,Redis之父的角色也跟着改变了。从原来的单纯构建东西,变成了让其尽可能地有用而可靠。每天他都从其他开发者那听取意见,然而他的本心却并非想成为一个维护者。

I write code in order to express myself, and I consider what I code an artifact, rather than just something useful to get things done. I would say that what I write is useful just as a side effect, but my first goal is to make something that is, in some way, beautiful. In essence, I would rather be remembered as a bad artist than a good programmer. Now I’m asked more and more, by the circumstances created by a project that became so important, to express myself less and to maintain the project more. And this is indeed exactly what Redis needs right now. But this is not what I want to do, and I stretched myself enough during the past years.

这一段应该是我最想细说的,有很重要的两个观点我是很赞同的:

  1. 活着就是为了表达:我以前并没有意识到这一点,以为自己只是想不留痕迹。直到我看了电影《鸟人》,里面有句台词,那是“鸟人”叛逆的女儿生气时对他说的:“你厌恶博客写手,你鄙视推特,你甚至连一个脸书主页都没有。你根本不存在。你现在刷存在感,因为你怕自己什么都不是,就像我们所有人一样”。不管以何种方式,人活着就会想要表达。如Redis之父所说,他写代码就是为了表达自己。
  2. 代码是艺术:写代码当时是为了执行,为了业务需求,为了解决问题。如果单纯这样想的话,写代码就完全成了一份差事。如Redis之父所说:“我把我的代码看成一件工艺品,而非为了完成某件事的有用的东西。有用只是附属的,我的第一目标是创造美的东西。我宁愿作为一个糟糕的艺术家而被人记住,也不想当一个好的程序员”。

现在Redis需要的正是这种“有用”,但这并非他本意,所以挣扎多年后他决定退居幕后。

So, dear Redis community, today I’m stepping back as the Redis maintainer. My new position will be, on one side, an “ideas” person at Redis Labs, in order to provide inputs for new Redis possibilities: I’ll continue to be part of the Redis Labs advisory board. On the other hand however my hands will be free, and I’ll do something else, that could be writing code or not, who knows, I don’t want to make plans for now. However I’m very skeptical about me not writing more code in the future. It’s just too much fun

Redis之父即将成为一个普通的维护者,为未来发展提供一些想法和建议。同时,闲下来的双手很可能会继续把代码写下去。限于篇幅,接下来的几段都省略了,主要就是交代了接下来Redis的开发将如何管理,同时表达对后继者的信任,对支持者的感谢。总体来说,我个人还是很喜欢这篇短文的,欢迎大家前去读完整原文 :)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dc_726/article/details/107075930

智能推荐

Oracle常用查看表结构命令_analogous_love的博客-程序员资料_oracle查看当前表结构

获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner=’用户名’ user

Fluent操作流程&&udf编译_weixin_33709219的博客-程序员资料

Fluent 操作流程1, 读网格模型2, Scale修改单位3, Check检查网格是否符合要求,最小体积不能出现负数4, Time 选择瞬态,重力设置5, Models-Multiphase-VOF-implicit-body force选中6, Viscous选择 k-epsilon RNG7, 添加液体材料8, 设置phases,有两相9, phas...

TextRank算法自动摘要的Java实现_weixin_34261739的博客-程序员资料

2019独角兽企业重金招聘Python工程师标准>>> ...

在Android系统中实现AIDL 自定义对象传递_Gunder的博客-程序员资料

  今天要在《在Android系统中实现AIDL接口回调》这篇文章的基础上实现AIDL自定义对象的传递功能。还是上一篇说到的三个项目:├── SimpleJar├── SimpleJarClient└── SimpleJarService一、在SimpleJar项目中添加aidl中要传递的对象StudentInfo.aidl跟StudentInfo.java,具体如下: ├── A...

如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件_我是文哥的博客-程序员资料

Java代码:  final String JPG = "ffd8ffe0";//魔幻数字  final char[] HEX = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};  InputStream in = ClassLoader.getSystemClassLoader().ge

iptables nat表应用,保存和备份规则_rain_yunlx的博客-程序员资料

一、iptables nat表应用需求1:两台机器,机器A可以访问内网和外网(两块网卡),机器B只能访问内网(一块网卡),让机器B通过机器A实现访问外网的功能1. 先将两个虚拟机A和B各添加一个张网卡,    A机器的一张网卡可以访问外网,第二张添加的网卡设置LAN区域,    B机器添加网卡,第一张网卡禁掉,第二张添加网卡设置LAN区段和A的保持一致2. 设置网卡

随便推点

Linux磁盘对拷后无法开机,linux – 使用dd克隆后,Red Hat无法启动_zhibo shan的博客-程序员资料

我用dd克隆了一个带有Linux Red Hat的x4100服务器.旧服务器和新服务器的硬件相同.磁盘是sda,sdb和sdc(sdc1和sdc2).但是,新恢复的服务器会出现以下错误,Linux只能在维护模式下启动(只读):Red Hat nash version is starting:shpchp: shpc_init: cannot reserve MMIO region.shpchp: ...

用Lua编写iOS程序_颐和园的博客-程序员资料

原文:http://luanova.org/ioswithlua/  本文讨论用Lua创建iOS应用的3种方法。包括用Lua创建完整的应用(Corona)一直到用Lua作为app中的脚本元素(通过Wax或diy)。在此之前,我们需要问自己两个问题:1、为什么要使用Lua?2、苹果允许使用Lua吗?这两个问题是紧密相关的。如果你在此之前对Lua一无所知,我会简单介绍一下Lua。如果你熟悉Lua,则可

运行Cartographer出现的问题记录_Dyson Sun的博客-程序员资料

安装完cartography后,运行roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/×××/bag/cartographer_paper_deutsches_musm.bag出现[FATAL] [1590630448.926035157]: Error opening file: /home/sundong/sundong/Exploring/cartographer/bag/cartographer_

在把文本编辑器的文件保存为.sh文件时遇到的bug:不能使用以扩展名“.sh”结尾的名称来存储此文稿_hamimelon2020的博客-程序员资料

您不能使用以扩展名“.sh”结尾的名称来存储此文稿。要求的扩展名为“.rtf”。什么意思,为什么

mysql源码安装分析_MySQL部署之源码安装_甄藏阁的博客-程序员资料

安装依赖包注: 相关依赖包的作用cmake:由于从MySQL5.5版本开始弃用了常规的configure编译方法,所以需要CMake编译器,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。Boost #从MySQL 5.7.5开始Boost库是必需的,mysql源码中用到了C++的Boost库,要求必须安装源码安装与二进制(RPM)发行版本相比,如果我们选择了通过...

Tornado使用模板_G_SANGSK的博客-程序员资料

 使用模板1. 路径与渲染使用模板,需要仿照静态文件路径设置一样,向web.Application类的构造函数传递一个名为template_path的参数来告诉Tornado从文件系统的一个特定位置提供模板文件,如:# -*- coding: utf-8 -*-# @Author : G_SANGSKapp = tornado.web.Application( ...

推荐文章

热门文章

相关标签