美文网首页
满世界的钉子

满世界的钉子

作者: liyinkan | 来源:发表于2014-10-16 23:01 被阅读119次

nodejs 是一把很不错的锤子,于是在许多 nodejs 工程师看来,满世界都是钉子。

首先要说的是,nodejs 以及 nodejs 社区最具价值的是什么

我曾经问过 substack

为什么你那么热爱 JavaScript 以及 nodejs?

James 回答

因为 npm。大家可以非常方便的发布和分享。

我豁然明白了。James 代表了对于技术和社区狂热的追求的发烧友。他们所追求的,并不是某一个语言,或者某一个技术,而是这个社区里的氛围,是人。

换句话说,如果 .net 有一个和 npm 可媲美的社区,那么,James 一定也会参与其中。

顺便插一句,我提到了 maven 是一个非常好的 repository 管理的方式,公用的 maven 也很不错。他表示很有兴趣,我说这是 Java 的,他说没关系啊。当然了,如果他真的去看了一眼,肯定会觉得无趣的。(我就是欺负你不写 Java…… 逃

再讲一个故事

看到 cnpm 私有库,grunt 编译部署。maven 笑笑说:“我早就可以私有部署了,windows 一键安装,依赖全自动管理,打包、发布、插件开发、执行外部脚本样样精通。”
最后拍拍 nodejs 的头:“孩子你的路还很长……”

所以我深深觉得

nodejs 最大的价值,是他建立起来的 npm 和他的社区。而不是这个语言本身。


nodejs 来做 Web Server 不过是你一厢情愿的痴想

nodejs 诞生最初目的和设计并不是为了做 web server

我记得故事是这样的

有一天,一个大牛觉得 erlang 太难学以及太难,于是就想:要不再搞一个专为高并发而生的语言吧。哎?那 JavaScript 看着不错啊,基于事件的呐,哟,V8 性能那么好啊,嗯,决定就是你了。

所以至今为止,我听过关于 nodejs 最好最棒的分享,是几位童鞋,用 nodejs 替换了原先 erlang 的程序。

注:他们在准备替换这破事之前,从来没有接触过 JavaScript。

这才是 nodejs 的正确的烹饪方法!

注:我才不和你辩,不服你咬我呀!

其实就目前而言,nodejs 做 web server 还是很不错的,这得归功于 npm,其实一门语言或者一门技术的发展需要一个良性的社区,当然也有特例,比如 Java……

然后顺便推荐一下,fibjs,如果你真的要用 JavaScript 来做网站后端的话,去看看这个。


nodejs 并不是前后端分离的最佳实践

参加了许许多多场 nodejs 相关的分享,有一些很有意思的东西。

举个栗子:我们为什么要选择 nodejs

nodejs 对于前端工程师来说没有重新学习的成本

上面这句有没有很熟悉?第一次我不觉得,想想挺对的。自从听了 nodejs 替换 erlang 的分享之后,我就刻意留意了一下这句话出现的频率:在去年和今年上半年的时候,这概率是相当的高。

以至于后来一旦分享有类似的内容,我就开始鄙视分享者的智商……

这不是一个原因,甚至连借口都不是

从上面那个被我反复炒冷饭的故事来看,语言的障碍真的不是问题。

不就是一门语言么,又没让你精通,让你能用这门语言写业务逻辑而已,你竟然学一下都不愿意,还找来一个原因,说我们会这个语言,所以用这个语言一定更好。

活该不能涨工资,只能仰望别人 X赵 的收入。


言归正传,为什么我认为不是最佳实践。

不觉得现在市面上最多的分离实践就是来自于阿里童鞋的分享么?曾几何时,分享会里面总是会有这样一个主题:

X宝/X猫/支X宝前后端分离的实践/思考。

另外透露一个消息:前后端分离这事情啊,阿里内部应该有两个团队在搞,一个是从前端角度出发,一个是从后端角度出发…… (大阿里真有钱啊)

后端角度不太清楚是怎么个做法。
而且我还没听过 支X宝 的分享,不过从分享者的名字来看…… 应该也逃离不出 nodejs 的世界。

X猫/X宝 我记得差不多做法就是:

起一个 nodejs 的 web server,接收 http 请求,动态模板什么的都扔这里面,和后端交互,就从 nodejs 发 RESTFul web server 去。当中 dto 约定,靠工具和文档。

于是大家开始研究用 jade 好还是用 ejs 好。
并且开始觉得:前端的春天已经来了,前端已经向后端迈出了一大步。

在我看来

这好蛋疼!

咱们用 Java 举例子吧。(我就会 Java 你咬我呀~

要分离的目的好多好多

  • 动态模板不好用
  • 动态模板不好管
  • 呈现逻辑写在 jsp 中好蛋疼
  • jsp 中可以写 java 代码好蛋疼
  • 样式管理好蛋疼
  • 我测个 js 我还得起个 jvm 好蛋疼
  • 后端没做完我都没办法跑代码
  • ... (快来列举种种不好……

但是,如果真的把这些用 nodejs + jade 管理起来就会好了么……
怎么感觉有点

  • 为了 nodejs 而 nodejs
  • 大阿里是这样做的,所以我们这样做绝对是对的

这类感觉……

你看我到现在还没说

  • 为什么不是最佳实践
  • 什么才是最佳实践

就我个人而言,前后实践了三个项目,三个定位完全不同的项目,基本上有一个想法,一套方案,并且在现在这个项目大刀阔斧干了,分离得非常彻底,还加入了很多很简单但是非常实用的功能。

根据我这种专业参加分享会的人的经验,总结来看,大阿里毕竟是大阿里,做很靠谱的。很多想法都是通过大阿里分享以后迸出来的火花。

只是通过 nodejs 来做分离这个,有点扯。不过谁知道呢,说不定哪天这个就是一个起点,有别的什么东西和 nodejs 搞出点啥。或许 nodejs 还缺个另一半,就像 ruby on rails 这对好基友……

说真话,我无法回答最佳实践是什么,但是你要问我是怎么做的,我的回答是:

自己研究去吧~ 谁让你们 D2 不要我来分享呀,有本事你咬我呀~~

相关文章

  • 满世界的钉子

    nodejs 是一把很不错的锤子,于是在许多 nodejs 工程师看来,满世界都是钉子。 首先要说的是,nodej...

  • 跨学科知识有助于提高专业知识水平

    有句谚语:“在只有铁锤的人看来,每个问题都非常像一颗钉子。” 拿着锤子满世界的敲钉子的人不在少数,看什么都像钉子,...

  • 摆脱原生家庭魔咒,做自己的真正主人

    今天读完《月球旅馆》,有很多让我印象深刻的句子,比如: 原生家庭像个钉子,当你心里有个钉子,会觉得满世界都是锤子。...

  • 手握铁锤,满世界都是钉子

    dear me: 2017的除夕了,元旦的前一天,写了一封信,紧跟着就成了笑话,以前所有想不明白的事情,就都说得通...

  • 不要再做韭菜了

    查理说,当你手里面拿着锤子时,会看到满世界都是钉子。我说,当你是一棵韭菜时,会看到满世界都是明晃晃的镰刀! 时间被...

  • 千万不要拿着锤子满世界找钉子

    很多人都想学习写作,今天分享三个技巧给你。希望对你有用。 01故事 有位朋友出差谈生意,开完会之后没啥事情做,晚上...

  • 你是简单的“刺猬思维”,还是复杂的”狐狸思维”?

    当你手里有个锤子,你就会觉得满世界都是钉子。 1. 每个人都拥有一套属于自己的独立的思维方式,这些看不见摸不着的小...

  • 诗人

    诗人 喜欢把遇到的每一个人 都冠名以诗人 就像手里拿着锤子的人 看满世界都是钉子 因为,在诗人的世界里 万物都是诗...

  • 锤子综合症

    有一种思维层次的病叫作“锤子综合症”,是个很有意思的概念。手里拿着锤子,满世界看到的都是钉子。 我们自以为是在使用...

  • 剑走偏锋:面向切面编程

    “给我一把锤子,满世界都是钉子” 我记得曾经有这样一个相当流行的观点,是说,编程语言只需要学习一门就够了,学那么多...

网友评论

      本文标题:满世界的钉子

      本文链接:https://www.haomeiwen.com/subject/diyptttx.html