干嘛不在企业中使用Node.js呢?


发布者 andrewleeson  发布时间 1398187157228
关键字 心得体会  分享 

(注* 其实有很多新生的技术或工具是很优秀的,但很多人都不敢尝试,特别是企业不敢在自己的项目中使用新技术。新技术有很多优势的地方,当然也会因为新出的原因而有一些漏洞,但我们应该正确的面对,根据自己项目的需要选择更好的技术,而不是一味的用那些陈旧繁琐的老技术,好技术都是在使用中不断完善的!本文作者通过一些例子说明了新老技术取舍方面的问题)


我的女儿14岁。像她父亲一样,她热爱音乐且爱玩音乐。与所有其它叛逆的青少年一样, 为看格莱美奖而坐几个小时,但其实并不是热衷于整个表演,仅仅只是其中几个而已。因此她将我作为她的信息推送服务。我的任务就是坐在沙发上(手上拿着ipad,我不会傻到几个小时一样盯着电视看),当她感兴趣的表演到来时提醒她。需要我提醒她的表演明星有:洛德, 林赛白金汉, 特伦特·雷泽诺。

 

在她的房间,她在五斗柜上创建了一个“神殿”,它由碎南瓜乐队的梅隆牧羊犬和无限悲伤专辑, 佛利伍麦克乐队的精选集,所有吸血鬼周末乐队的CD, 洛德的纯粹的女主角,西尔维娅·普拉特的钟形罩(书本,不是CD)的CD盒子组成。几年前她就已经退出了披头士队伍了,如果不是关于约翰和保罗,那就没有什么重要的。

 

同时,我17岁的儿子喜欢听着莫扎特的《安魂曲》来玩多人在线射击游戏。而有时候他又会顺序地听赶时髦乐队的所有音乐。除了权力的游戏(电视名),他的床头时间阅读一些波斯、埃及最昏暗时期编年史的组成和一些很少听说的中国历史。

 

对于我的孩子来说,时间并不值钱,只有高品质的时光才值钱。对孩子们来说,.莫扎特,史蒂薇·尼克斯,大卫加恩,斯拉·柯尼希以及洛德才是他们值得的时光。

 

这将我带向了本文的主题。因此一个来自我老家隔壁的同事这样评论我的文章:

@dglozic 博客上有趣的#node.js文章:dejanglozic.com/tag/node-js/ 。并不是全新的东西, 但有些Node在企业方面的观点。
Zlatko Đurić (@zladuric)2014年3月18日


有多种方式看待node.js吗?有用“startup-y“方式看待node.js的吗?有用”enterprise-y”的角度来看待node.js的吗?是不是觉得前者更酷,后者是更让人讨厌,成年化,”享受它所有的乐趣“的方式?更重要的是,当创业公司和民营小公司用新鲜光亮的技术时,企业是否应该只用使用时间较长的,被证实的技术。

 

我在IBM工作,所有IT行业里最大最古老的企业(已经103年的历史了)。我甚至应该被允许写、把玩且推进(上帝拒绝)Node.js在IBM中的发展,更不必说让其成为 JazzHub的新微服务架构的中心环?

 

让我们来看看我的孩子们是如何接近它的:因为他们还小,没有思维定势,他们可能会在前端完全使用Node.js,因为对乏味的事他们没有多少耐心 ,且Node.js能允许他们在重复构建接口的时候更快。如果他们有一些高性能的任务需要实现,他们会毫不犹豫的用Java来写,或要求更高的话用C或C++,或他们可能会考虑GO语言。他们将会增加i18n的支持,以便他们能给英语不是很好的亲戚展示他们在做的东西。他们会增加安全机制,因为当站点上线时,一些无聊的黑客会攻击它(我女儿9岁时,她的的Club Penguin 账号被攻击过很多次)。他们可能会做所有的这些事情,因为这些都是常识,他们很重要,他们很要紧且如果没有他们你不能说你已经完成了。

 

当你有客户且为他们负责任的时候,你在做”enterprise-y”事情。NPM刚刚成为一个公司,你知道他们的第一笔订单是什么吗?订购外部安全审计。对我来说这非常“企业化”。Uber商业模式你听起来可能很怪,但它是一个很严肃的商业(严肃到他们能在其扩展的市场上通过说客来创建一个pushback),且他们从2011年开始就在他们的高度系统上使用Node.js。AirBNB同样也是如此,虽然他们是2013年才开始加入到Node.js队伍中的。

 

我用这两个公司作为例子是因为他们比较新,且没有经典“企业化”的固定模式。然而,请仔细看看他们的站点——包括用下列菜单选择语言。我可以解释一个经典的笑话,将“你知道你是一个乡巴佬......”解释为“当你需要处理i18n时你知道你在编写一个企业类别的软件”。当然,如果你是一个想给美国政府销售产品的企业,这并不是一个张力目标——你必须遵守规定508,甚至是在运行时。欧洲委员会也有同样的需求。但是通过一个政府坚持要添加i18n且能访问你的商业web应用,你没有必要被打败——只因它有道理,因为通过此你可以接触到更多的人。而且这也不只限于node.js——仔细检查广受欢迎的BootStrap工具箱例子和搜索“aria”单词——你会发现43条记录,因为所有的组件都支持 wai-aria访问。

 

现在我们进入到Node.js年轻生命最激动人心的阶段——企业应用中的node.js。到处都有迹象表明,从2013的节点峰会和2014的节点日期间推荐的公司用node.js重新改造他们的系统到企业微服务架构中文章和讨论的巨浪。

 

最近几周我已经看到node.js和企业语气方面的显著变化。在过去,讨论可能会因为还未找到平衡点的结论而更激烈,好像前面的node.js营有一点点不安全,因此一般的论述会是这样的“node.js已经为企业准备好了吗?”。现在,来自由快速成熟的重要的成功故事所构成的Node.js社区支持的语气已经转移了。讨论的问题再也不是Node.js是否已经为企业准备好了——Node.js已经在企业中,且这个变化给Node.js提供了最重要的成长。在某种意义上,现在论述应该是“我们怎么会讨论这个问题的?”,之前问题的答案已经在很多人的脑海中了,因此他们都响亮的回答“是啊,我们怎么会讨论这个问题的!”。现在人们已经忙着享受node.js的乐趣了。

 

有时候,有历史意义的意见会很有帮助,这就有个例子。在1995年,Sun公司以和C++在桌面应用程序上二分天下的战略将Java和JVM公布于世。它是解释型的,它速度慢,它有很多BUG,但它是全新的,令人兴奋的,承诺“一次编写,到处运行”,没有重新编辑,它社区的人数增长得很快。1996年,我被要求尝试着写一个允许IBM中间件开发工具靠一个有效的GUI在AIX,OS/2和windows NT下运行而不必再维护三份不同的代码的框架的原型。我用Java写了且叫做JFace。这个框架最终以更长的代码(虽然完全重写)而结束,后来以Eclipse平台而出名。

 

这个故事的重点是在我被要求用Java解决问题时,Java才面世2年,且Eclipse平台的巨大成就取决于Java,此时Java面世4年。那时,Java有很多的BUG,而且比现在的node.js要慢。实际上,Java一直比其实语言慢,然而当node.js被用于设计时(有重要的I/O活动的系统),能提高性能。我敢肯定,相同时期人们对Java也有相应的疑问,但这并不能阻止他们不断前行,解决掉这些疑问。

 

某种意义上,企业中的一些人就像是有着疯狂的青春年华,然后忘却它,将自己变得很守旧的父母。正如上面例子中说的,我们曾经很大胆,我们可以再次放开胆。5年后,一些新的东西会出现,然后我们还要再次讨论这样的问题:


你的代码不会被后代称赞,会被斥责。

——Robert King (@hrobertking) 20142月28日

 

现在任何Node.js的讨论不会成为“enterprise-y”——我们有伟大的HWPS(每秒Hello World次数)的数字,现在需要解决像i18n,安全,规模,大型开发团队的微服务独立版本控制,服务间的消息传递,集群,持续集成,零停机时间的应用部署等这些真实的问题。让我们像我孩子们对待音乐一样来对待它吧——开放思想,没有偏见,没有先入为主的观念,只有优点。

 

Node.js不过只是工具箱中的一个工具而已,有目的的使用它会给你带来很大的好处。感受新生,再次热爱你的工作,很乐意地动手,代码会因为你开放的思想而免费地飞到你的口袋中。