程序员的复仇:11 行代码让 Node 社区鸡飞狗跳

一名NPM(Nodejs Package Manager)社区的贡献者Azer Koçulu出于对NPM管理层的怨愤(详情),不声不响删除了自己在NPM上面的全部代码,其中就包含只有11行代码的“Left-pad”,没想到从中国北京 到美国硅谷,从大学宿舍学习Nodejs的新手到Facebook的资深工程师,整个互联网界都炸开了锅,他们手中的许多Nodejs模块,全罢工了。

虽然NPM管理员在危机发生后采用强制重新编写发布了Azer Koçulu的代码,但是这次NPM风波无疑意义深远。

要 理解NPM,首先就要知道Node.js。Node.js是基于Javascript语言的后端编程框架,开发网站用的语言,可以理解为PHP的替代品。 Node.js最明显的特征在于,除了使用Javascript语言,同时还拥有许许多多公用的模块,都由来自世界各地的开发者贡献,这些模块使用NPM 管理,NPM就有点像苹果的App商店,只不过这些模块都是免费的。

Azer Koçulu本来是NPM的热情粉丝,经常为NPM贡献代码,其中之一就有个叫Kik的模块,但是这个模块可能是功能简陋,也可能是知名度不高,反正用的人很少,没什么存在感。巧巧合的是,刚好有一家公司也叫Kik,是一款类似微信的社交工具。

Kik 公司也要在NPM社区用到Kik这个名字,于是就给Azer Koçulu发律师函,义正言辞要求他把自己的Kik换成别的,否则会有律师找上门。Azer Koçulu觉得Kik公司说的很有道理,然后拒绝了。毕竟取名不应该先到先得吗?凭啥你说什么我就信什么,凭什么你要我做啥我就做啥。而且我又没做错什 么,我在刚开始编写Kik模块时候并不知道有Kik这个公司。

Kik公司交涉失败,直接就向NPM官方投诉了,没多久,NPM社区管理员没经过Azer Koçulu本人同意,就把他在NPM上面的Kik模块的控制权交给了别人。

这下Azer Koçulu简直要爆炸了,对于NPM大失所望,没想到NPM社区是这种玩意,保护大公司,漠视个人开发者。这简直就是对自己价值观的奇耻大辱。

愤怒难抑,Azer Koçulu决定复仇,他要和NPM决裂,一下子删光了自己在NPM上面的所有代码。其中就包括流行组件“left-pad”。这个组件只有11行,功能很简单,就是在给定的字符串左边重复插入给定的字符,以达到需要的字符串长度。

这 个Nodejs模块虽然简单,但是应用非常广泛,下载量超过57万次。Facebook、Spotify以及Netflix等著名公司大型软件项目中都用 到了Babel这个模块,而Bel本来这个模块又调用了“left-pad”这个模块。同时受影响的还有当今非常著名的React框架,这个框架帮助前端 工程师更便捷地开发网站界面,全世界同时学习React框架的程序员可能数百万,但是突然就都不能用了。据NPM官方博客,“left-pad”删除后, 受到影响的模块达到数千个。

这就像飞机的发动机突然掉了一颗螺丝,点火时候系统就肯定会报错,但是你却很难定位为题的出处。毕竟 Nodejs采用连环套的设计思想,你调用的模块可能调用了其他模块,其他模块也调用了自己的其他模块,一层又一层,代码量千千万,定位并修复所有的问题 代码,实在工程浩大。

这场意外迅速在Twitter、以及微博上炸开了锅,众多网友反应React、Babel、Ember无法使用,数小时后也有网友反映Babel已经推出了紧急修补版。

以外发生4个多小时后,NPM社区管理员决定出手,把“left-pad”这个名字从Azer Koçulu手中夺了回来,重新写了一个“left-pad”函数,终于才抚平了千万程序员躁动的心。

这 次意外发生后,众多开发者开始怀疑NPM的管理能力,庞大的Nodejs社区竟然危机四伏,今后如果有贡献者误操作或密码被盗,全世界无数的Nodejs 开发者瞬间无法工作。同时也有人开始怀疑NPM的设计哲学,为什么不设计官方标准库,而是把十来行,甚至只有1行的代码设计成独立的模块。比如有个叫 isArray的模块,下载量达到88万次,其实只有1行代码而已。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-09-17 21:11:22

程序员的复仇:11 行代码让 Node 社区鸡飞狗跳的相关文章

阿里云为程序员办“双11”云服务器今日促销

阿里云计算 新浪科技讯 12月18日消息,阿里巴巴集团旗下阿里云计算,今日发起了一场属于程序员的"双11"狂欢.截至今日12:00,已有上万家中小企业通过阿里云官网进行云服务器采购. 今日,阿里云计算宣布对旗下主力云计算产品进行打折促销,云服务商.风投机构都参与到这场活动中."我们希望通过降低云的成本,让更多客户通过云计算将自身的价值传递出去,实现普惠科技." 12.18的活动,阿里云官网显示,当天凡通过实名认证的用户,就有机会领取100元代金券,购指定产品满500

程序员常去的14个顶级开发社区

 开发社区-程序员开发社区"> 作为设计师,学技术的最大好处是能够更加理解程序员,容易沟通,有利项目协作.作为男设计师,如果你喜欢上了程序媛,这个技术优势会为你个人形象大大地加分!谁不爱技术帝的设计师呢?从新手教程到大牛支招,这组网站都有,绝对赶超程序员的首选! 下面这张图列出了14个程序员经常逛的顶级开发社区,作为设计师,你应该要了解其中一个或者最好是多个,并且学会使用它们,利用里面的资源提高自己的编程能力. 我们期望在开发者社区中获得什么? 我们希望能得到切实的帮助,而不是获取一些唠叨

程序员经常去的 14 个顶级开发者社区(转)

我们来看一下程序员经常去的 14 个顶级开发者社区,如果你还不知道它们,那么赶紧去看看,也许会有意想不到的收获. Stack Overflow 9 月份,Stack Overflow 也将迎来其 6 岁的生日,毫无疑问,Stack Overflow 是全球最受程序员欢迎的开发社区,而且也是内容最丰富的社区之一. 官方网站:http://stackoverflow.com/ Reddit reddit 也是一个非常富有个性的社区,你可以在 reddit 上提交一些感兴趣的话题,也可以和其他程序员讨

国外程序员常去的14个顶级开发社区

我们来看一下程序员经常去的 14 个顶级开发者社区,如果你还不知道它们,那么赶紧去看看,也许会有意想不到的收获. Stack Overflow 9 月份,Stack Overflow 也将迎来其 6 岁的生日,毫无疑问,Stack Overflow 是全球最受程序员欢迎的开发社区,而且也是内容最丰富的社区之一. 官方网站:http://stackoverflow.com/ Reddit reddit 也是一个非常富有个性的社区,你可以在 reddit 上提交一些感兴趣的话题,也可以和其他程序员讨

用“Keras”11行代码构建CNN

更多深度文章,请关注:https://yq.aliyun.com/cloud 卷积神经网络(CNN)是一种特殊的深层的神经网络模型,为什么说它是特殊的神经网络模型呢?一是它的神经元间的连接是非全连接的,另一点是因为同一层中某些神经元之间的连接的权重是共享的.它的这些特点成功的降低了网络模型的复杂度以及减少了权值的数量,这也使得它的网络结构更类似于生物神经网络.今天我们就来用keras来实现CNN,keras是基于Theano和TensorFlow的深度学习库. 我曾经演示过如何使用TensorF

《Visual Studio程序员箴言》----2.5 代码段

2.5 代码段 Visual Studio程序员箴言与破坏软件相同,我更喜欢做的唯一的事情就是发出通知:"我破坏了软件".例如,我首次接管测试代码段的工作时,我会尝试进行各种意外的操作来破坏UI,例如在代码段名称的位置上输入"Sara wuz here".正如您所期望的那样,我的大部分尝试都是不成功的,但最终我确实发现了一系列能够导致崩溃的键盘快捷键. 软件测试的有趣之处在于,一旦找出一个bug,通常在附近还隐藏着一堆bug.您要做的就是知道如何找出bug的模式.从

20年的老程序员对新入行的朋友的一些建议

从事编程这一行也已经20年了,到今天为止,有关编程方面的知识我也写了六七门课程了,教授课程的时间也已超过了1000小时,下面我所说的全部是我多年来的实践的经验之谈. 编程真的不是一件容易的事. 不管你多喜欢或是多会编程,在学习和解决问题上总会碰到障碍.工作的时间越久就越能明白这个道理.不过这倒是一个让人进步的机会,因为你要一直不断的学习才能很好的解决你面前的难题.如果你已不有了进取心,那么当遇到难道无法解决时你就会想要放弃. 编程也是最让人沮丧的事情 正常的编程过程都是这样的:尝试.失败.学习.

上班第一天(2)--一个程序员的成长史(11)

电梯稳稳当当地停在了八楼,代世雄在曹MM的引领下走到了一片宽敞的办公区域.这是开放办公区,也就是以后代世雄上班所在的地方.代世雄大致估算了一下,整层楼的办公区面积可能有几千平方米,分成了一个一个像格子一样的工位,每个工位上面放着一台电脑,有的还放有几本书,座位上的人目不转睛地盯着电脑屏幕.选择了程序员这个职业,就注定要随时和电脑打交道. "这位就是开发一部的幸部长",曹MM的话将首次见到如此大的办公区域而陷入沉思的代世雄拉回了现实."部长好",代世雄赶忙说到.&qu

程序员的复仇方式

公司的一个合伙人,也是公司的产品经理/人资经理/产品设计师,总喜欢捉弄我们.比如,在万圣节派对上,你能看到一个跟我本人一样大小的我的相片, 那是她从我的Facebook上找到的.在图片上,她用说话泡泡的形式加了一句自白:"生日许愿时我许的最大的愿望是要有8个睾丸并找到一个像Jodie Foster那样漂亮的12岁的雏妓."她趁我出去吃午饭时把它挂了出来.问题是,你很难捉弄她,因为她时刻防备着别人对她使坏. 但是,她对计算机是个外行. 有一天,趁她去开会,我在她的MAC笔记本上安装了我的