想想,自己是在大三的适合接触node的,那个时候还纠结node好与坏,现在node招聘越来越多了,感觉趋势越来越好啊。
就是不知道各位noder所在的公司对node的应用达到什么程度了,能不能在帖子后面回复一个(介绍一下node在公司的应用场景),好让大家看看,开开眼。
你看,一页就好几个是招聘:
精通javascript比nodejs重要得多,弄明白node原理比用node做项目重要得多,当然这是对将来而言,就现在来说,如果有不错的javascript的基础,能用node写项目,找一个不错的工作还是没问题的。但必须要认识到javascript语言本身的局限性,并由此带来的各种问题以及解决这些问题所带来的问题。说到底就是回调模式下的异步带来的问题,javascript阵营其实已经意识到回调的危害了,但历史包袱有点重,es6的方案只是过渡性的,是典型的用一个复杂问题解决另一个复杂问题,并没有从根本上解决问题。javascript现有的语言规范并不能很好的解决业务同步和IO异步之间的矛盾,业务同步必须依靠回调来保证,generator这种半调子协程还是回避不了回调的调用,只是这种调用通过约定,由某个框架代码代为调用罢了。这中间不管在效率上还是可理解性上都是要打很大的折扣的。
对node的评价我个人认为:曾经很好,现在不算坏,将来不好说。
自己斟酌吧,但是不要盲目乐观。看清楚大部分招聘是招什么人的,前端或者大前端,就这个需求来说,精通前端远比精通node更实惠,当然两者都精通那是更好,但即便精通node了,也就是个大前端的命。语言和平台限制得死死的,普通水平的noder根本干不了大活,说这话很多人不服气,但我觉得我还是说了实话。大前端挺好,再朝前就不是一个javascript能搞定了,你得有其他技能。
node是解决了一个Web应用响应方式上的一个根本的问题。
这个问题解决了关键的用户体验问题尤其是移动端的体验问题,这就是uber使用node得到的最大好处,否则根本不可能占领那么大范围的世界市场尤其是中国竞争激烈的本地市场。但是你说得对,在这个基础之上不断增加新的架构才能适应新的市场竞争,单靠node不是万能的。
说到市场价值如同前端在于解决了网站面子的问题至少解决了程序员当前的待遇问题。。
js 的从业人员基数大,所以随着 node 的成熟与生态圈的完善,招聘机会肯定越来越多。就我的观察来说,现在 node 还是在快速普及的。 我们阿里这边,有不少团队在使用 node,很多能用 node 解决的场景,我们都会使用 pure js 的方式去解决。这方面还要多多感谢 @fengmk2 和 @dead-horse ,不少 node 的基础设施都是他们一手搭建的。 效率上,由于一般是应用层的业务。所以 node 的效率还是比较令人满意的。 对于 node 的将来,我改一下 @coordcn 的话:曾经看起来很好,现在不算坏,将来不好说。虽然人员基数大,虽然可预见的未来里,js 都是称霸浏览器的语言,但这种垄断霸权地位能否带来 js 后端的持续繁荣,很不好说。因为 java 之前也是可以用 gwt 来写前端的,后来 java 人员基数仍在,但大家都不这么去用了。不合适的终究是不合适的。 况且 node 除了某些特定场景之外,性能上的优势与开发效率上的模式都不明显。就大家最常用的 Web 开发领域来说,性能上,异步、回调、事件之类的并不重要。Parse 作为一个 api 服务,都用 ruby on rails 撑了那么久:http://blog.parse.com/learn/how-we-moved-our-api-from-ruby-to-go-and-saved-our-sanity/ 。而开发效率上,就看工具库和生态圈的完善了,正持续进化中。
@louislve 可能你们业务还是以Html老模式为主。如果是面对手机终端应用为主那Node和redis就是新霸主,以前那些老类型的工作尽可以廉价外包即可。现在很多拿到A轮的创业公司用你说的那些老知识都遇到了红海的瓶颈。技术上你家有张三李四家全部都有,规模上难以拉开距离。一旦叫投资人看不出独特前景,创业公司就完蛋了。
不能说node半点不好,懂不懂?这跟技术无关,除了node之外,其余技术都是老的,你到底懂不懂?懂不懂?
node代表了世界的未来,懂不懂?代表了创新的方向,懂不懂?
其实我跟你一样,都是卵都不懂的,懂不懂?
我特么还在堆c代码,还在堆lua代码,还整天说node坏话,node这不好,那不好,简直没的救了,马上就要被时代抛弃,懂不懂?
我们都代表了后进,都什么年代了,node这么先进的技术都不用,还在用其他鬼技术,我们用的技术都老了,都特么赶不上时代了,懂不懂?
没有最好的语言,只有适用的。再好的语言那也得看用的人啊,况且各个语言都有其优点缺点。
我是看不惯一些人整天把某个技术抬上天,把其他技术都贬成渣,自己却没什么卵用。一般来说,越是极端的,越是刚接触,真正理解一门技术,就必须理解其适用范围,理解它的好与不好。什么时候能用到某个自己喜欢的技术感觉憋屈了,并且能够憋屈得习惯了,能通过技术上的变通让自己少憋屈一点了,基本上已经比较理解这个技术了。那些上来就瞎比比的,不出意外,都是新来的。
不要误解,绝对不是开语言炮,我也没资格开语言炮,就会那么三四种,还算不上精通。看着不只天高地厚的讽刺一下,我这人就这性格,看不惯就要瞎比比。
偶尔做下喷子缓解下压力不是。。。valgrind又报内存错误了,烦人啊。
@soliury 其实关心Node可以讨论下这个颇具代表性的,处于Uber应用核心地位的在线调度系统。
Uber通过其在线调度平台能自动对乘客和车辆进行适配,大大提高了城市交通效率。其首席架构师Matt Ranney最近透露了其调度系统的概要,其系统是如何将乘客和司机进行配对的。最后,Ranny说:调度系统大部分是基于Node.js建立。