8
14
2017
0

我为什么离开新浪

本文来自依云's Blog,转载请注明。

时隔两年,终于还是来写这篇文章了。

其实之前已经想写过多次,但是部分内容写起来十分消耗精力,所以一直没动手。但现在无所谓了。

名字问题

每个人都有名字。大部分人的名字都不是自己的,因为那是父母起的。自己相信它是自己的,然后不知道是它真的变成了自己,还是自己变成了它

然而我不要变成它。

在自由之前,呃,也就是经济独立、远离父母之前,我其实对于我自己是没有太多感受的。只是不断地按照他们的要求或者自己的兴趣,学习科学知识,上学考试,吃饭睡觉。甚至给仇人下跪。

后来,我终于自由了。至少是在客观上自由了。我开始渐渐地觉察到自己的存在,自己的需求、自己的感受。我开始变成真正独立自主的人。

然而,那个人给起的名字,却总是提醒我,曾经的伤痛,曾经只能把自己的想法深深地埋藏在心底不敢说出来,曾经不怎么敢说话,怕稍一不小心,哪句话就会激怒那个人。曾经为了生存,我尽量降低自己的存在感,好不招惹麻烦。

那是我不愿意面对的过往。我宁愿永远忘记它们,当作一切没有发生过。但是,看到那个人给起的看似威武、实则俗气的名字,我经常会想起那个人,想起那个人的凶狠,想起那些黑暗的日子,想起那些我憎恶暴力的缘由。

所以我非常厌恶实名制。支付宝有个界面会显示身份证姓名,所以不管它说有多少多少优惠我都不去。招商银行 app 开始在主界面显示身份证姓名之后,我也开始尽量避免使用它。

我之前的工作,都不太需要用到身份证上的名字。其实同事之前不用很容易啦。但是在新浪,每天早上一到公司,各种登录名都是那个名字的拼音。而且密码是动态密码,必须手动输入,所以通过编程自动登录是行不通的。

想想看,每天一早,你就不得不面对自己最想遗忘的事情,你还能好好地工作吗?

我跟 HR 的人反映过登录名的问题,然而并没有得到明确的回复。

我当然考虑过改名的事情了。我之前已经在知乎上问过相关问题。我也在利用不多的机会探听父母目前对我改名字的意见。我在意父母的意见,不是因为我有多在乎他们,而是因为改名需要的户口本在他们手里,而且我得在他们附近去办手续。目前看来还好,但是惨痛的经验使我明白,那个人是完全不能以理智所理解和预测的,所以我还是得做好应对最坏的情况的准备。秋天回去改名吧,夏天太热,心力不足,我怕出事。也不知道拿到新身份证之前坐高铁会不会有问题。

跳板机

新浪使用跳板机,上边跑个 script 程序记录用户操作。设计者的意思是,你们只需要在服务器上手敲命令就可以了。但是我需要传文件啊!需要跑脚本啊!在新浪,想往服务器上传个文件,需要以下步骤:

  1. 使用一个脚本把文件上传到专门的服务器
  2. 在跳板机上使用另一个脚本下载文件
  3. 使用 scp 命令把文件传到目标服务器

多了两步。而且这些步骤没办法使用脚本处理,因为没办法从本地在跳板机上执行命令。script 程序的存在使得无法通过 ssh 命令直接执行命令。

有人说,把所有操作放服务器上操作就好了嘛。可是给我服务器的 root 权限来装各种工具吗?而且 CentOS 6 的软件都死旧死旧的,给我换成 Arch?还是自己装需要的版本,然后再也不升级,直到遇到CVE-2017-1000117然后被入侵?然后装好图形界面我 VNC 过去?不然我怎么让服务器里的 Vim 控制我本地的输入法呢?怎么给浏览器发 URL 呢?怎么复制粘贴大段文字呢?

当然了,这个跳板机是不支持密钥登录这么方便的方式的。也不支持普通密码登录。动态密码,看你还怎么用脚本!

这就像,明明你有架飞机可以很快抵达目的地,但是对方规定你必须在他们边境上滚下来,换上马车慢慢走到天荒地老。

不测试,直接上线

开发完毕,然后呢?上线!

没有测试环境。连本地测试环境都没有,因为没人知道那东西怎么搭。真真正正的 push to deploy。连编译期检查都难。颤抖吧,开发者!敲错了一个字符,直接影响到至少 1/3 的用户!

我喜欢 Rust。在 Rust 之前我喜欢 Haskell,虽然它很难。这两门语言的特点是,类型系统很强大,以至于很多时候,类型检查通过了,代码就是正确的。我更喜欢 Rust 的原因之一是,Haskell 有异常。有时候明明通过了类型检查,但是跑起来,BOOM!文件打不开,或者取了空列表里的元素,就崩掉了。在 Rust 里我不可能会忘记处理它们。

我喜欢有信心地开发。开发完成,测试通过,上线。回家安安稳稳地睡觉,休息日放心大胆地不想不看工作上的事情。甚至开发完成,我就可以忘记它的细节,因为我不需要不断地去修各种不小心导致的 bug。我喜欢把 bug 消灭在襁褓之中,而不是等着它潜伏下来,趁人不备狠咬我一口。

所以我讨厌 PHP 扩展的开发。没有文档,只能翻源码。然而我一时半会看不完近千万行的代码。所以我开发完之后根本没把握自己开发的东西能够一直正确地运行下去。我不知道换下一个版本的 PHP 它会不会崩掉。我用 valgrind 检查了,但是我仍然不知道我是不是正确地释放了内存,有没有遗漏,有没有释放了不该我释放的内存。

可是,连最基本简单的测试都没有,我有什么理由认为我的代码不会出问题呢?连 Rust 都要有测试,何况 C?我又不是高德纳,能够洋洋洒洒写一大段代码还没有问题。我刚写好的代码,有明显的错漏也是很正常的事情。软件项目是工程,又不是艺术。我只要在交付的时候保证质量就好了嘛,为什么要求一次就写对呢?

结语

当然,离开新浪还有其它一些因素,我就不说了。

本文关闭评论,因为有些事情,我不介意公开,但并不想持续被提及。

Category: 未分类 | Tags: | Read Count: 1282

部分静态文件存储由又拍云存储提供。 | Theme: Aeros 2.0 by TheBuckmaker.com