Page 151 - Node.js开发指南
P. 151

144  第 6 章  Node.js 进阶话题


             访问http://localhost:3000了。
                 在添加了虚拟主机以后,还可以在Nginx配置文件中添加访问静态文件的规则(具体请
             参考Nginx文档),删去app.js 中的app.use(express.static(__dirname + '/public'));。
             这样可以直接让Nginx 来处理静态文件,减少反向代理以及Node.js 的开销。


             6.4  Node.js 不是银弹


                 在本书正文的最后一节,我们打算讨论一下Node.js 不适合做什么,涉及它的不足之处
             和一些弊端。

                 在西方古老的传说里,有一种叫做“狼人”的可怕生物。这种生物平时和人类没有什么
             不同之处,但每到月圆之夜,他们就会变成狼身。当他们变成狼以后,兽性会不能控制,开
             始袭击普通的人类。狼人给人类带来了巨大的恐惧,因为他们是无法被一般的手段杀死的,
             只有用赐福过的银弹(Silver Bullet)才能杀死狼人。“银弹”因此成为了“任何能够带来极
             大效果的直接解决方案”的代名词。
                           ①
                 Fred Brooks 在1987 年发表了一篇关于软件工程的经典文章——“No Silver Bullet”(没
             有银弹)。所谓的“没有银弹”指的就是没有任何一项技术或方法可使软件工程的生产力能
             像摩尔定律一样在十年内提高超过十倍,不仅当时没有,现在也没有,今后也不会有。这篇
             文章收录在《人月神话》(The Mythical Man-Month)一书中,被誉为软件工程领域的基本定
             律之一。
                 Node.js  也不例外,它不是什么能够大幅度提高软件开发效率和质量的灵丹妙药。无论
             使用什么语言、工具,所能改变的仅仅是开发的舒适程度和方便程度,而最终软件的好坏所
             能改变的范围相当有限。任何试图以限制程序员犯错来提高软件质量的方式最终都已经以失
             败告终。真正优秀的软件是靠优秀的程序员开发出来的,优秀的语言、平台、工具只有在优
             秀的程序员的手中才能显现出它的威力。

             Node.js 不适合做什么

                 Node.js  是一个优秀的平台,吸引大量开发者关注。它有许多传统架构不具备的优点,
             以至于我们情不自禁地愿意用它来做开发。Node.js 和任何东西一样,都有它擅长的和不擅
             长的事情,如果你非要用它来做它不擅长的事情,那么你将会陷入僵局之中。尽管你可以以
             喜欢、它很新潮、性能高为借口,却不得不写出难看的代码。
                 和大多数新技术的本质一样,Node.js 也只是旧瓶盛新酒。大多数人事实上并不知道为
             什么使用Node.js,只是因为你了解它,所以使用它,进而觉得它好,觉得它是最合适的。这
             是一个必须跳出的误区,否则你就像是得了强迫症,不管三七二十一,遇到什么问题都用
             ——————————
                ① IBM 大型计算机之父,曾经开发过OS/360 等大型计算机的操作系统。
   146   147   148   149   150   151   152   153   154   155   156