正儿八经做项目的时候还是会选择 PHP

2015-12-04 21:26:03 +08:00
 Wangxf

大多数情况下 PHP 就够用了, PHP 虽然说被人鄙视得不行,语言设计也毫无亮点,但是重在两个字:好用, node 啥的写点辅助前端开发的工具,搭个博客还行,大部分情况下是没有机会在服务端用到的,拿 node 写业务逻辑,那叫一个蛋疼,总感觉不够稳(可能我水平不行吧

4455 次点击
所在节点    PHP
33 条回复
fractal314
2015-12-05 07:01:34 +08:00
@joyee
看来这位兄台是搞了许多年 node 的高手了。
我这样的菜鸟,嵌套写不下去了,才明白为啥叫回调陷阱。估计现在解决这个问题的各种方案比较多了吧。
当初,我把主要模块,都写成 Express 的中间件了,还好当时的问题不太复杂
rekey
2015-12-05 11:02:47 +08:00
php 果然还是最好的语言。
newghost
2015-12-05 17:00:54 +08:00
前后端工作量差不多的话还是用一种语言顺手……
yunba
2015-12-05 18:26:21 +08:00
php 是最好的语言
joyee
2015-12-06 05:47:23 +08:00
@mzer0 yield 不是 Node.js 里的东西啊,是 JavaScript 里的,语言层面上的,在 ES2015 里被标准化,需要引擎支持,而 V8 已经支持了,然后基于 V8 的 Node.js 也自然就支持了(以前需要开 flag ,现在 Node.js 和 io.js 合并之后不需要开 flag 就能使用)。
joyee
2015-12-06 05:58:58 +08:00
@fractal314 Express 是基于 Connect 的,用的是类似 CPS 的方法解决回调的问题,属于在引擎没有太多特性支持的时候,编程上的 trick 。 Promise 也是类似的 trick ,所以不需要 JS 引擎的支持,用起来就能改变你代码的形状。

yield (或者说 generator )这种涉及上下文切换的特性,则是需要引擎支持的,但是这个也是很早 V8 就支持的,虽然要打开 flag ,然后现在 ES2015 已经定稿了, Node.js 也和 io.js 合并紧跟最新的 V8 了,所以不开 flag 就能用……

而 async/await 可以直接基于 generator 做实现,虽然 V8 还没有,不过用 co 这样的库可以直接达到类似的目的,只是一点点语法糖不同。

所以总而言之, Node.js 里的回调嵌套问题,很早就有解决方案了啊…… Express 的继任者 Koa 是基于 generator+co 解决的嵌套问题,也是 2013 年就出现的,国外的不说,国内 Node.js 用得最广的阿里就是广泛使用 Koa 的,也有员工是 Koa 的 contributor 比如双十一天猫 Node.js 的负责人 dead-horse ……( https://github.com/koajs/koa/graphs/contributors )(他今年双十一的 Node.js 应用分享在: https://github.com/tmallfe/tmallfe.github.io/issues/28 ,你看嵌套回调这种已经根本不是个事儿了提都不提……)
joyee
2015-12-06 06:01:31 +08:00
@fractal314 另外我不是男的,且我也没写 Node.js 多久啊……起码我刚学的时候就知道了 Koa 的存在,所以从来没觉得嵌套回调是什么问题,因为……干嘛要写嵌套回调啊?(除了某些逗比库只有嵌套的 API 需要你先自行封装一下)= =
fractal314
2015-12-06 08:50:16 +08:00
@joyee 好吧,我当初 js 都没学,直接搞的 node ,一路填了许多坑,估计最后也没把握他的精髓吧。另,你的四级成绩可把我吓跪了
mzer0
2015-12-06 12:50:16 +08:00
@joyee 我觉得嵌套回调很好......没什么坏处......
spacewander
2015-12-06 14:21:03 +08:00
@mzer0
你需要找一个五层以上的嵌套回调,然后试着理解它
magicdawn
2015-12-06 15:29:00 +08:00
如果你对 Node.js 的认识停留在 callback hell, 那就真是了解不多, 也就不要拿这个 hell 说事~
mzer0
2015-12-06 19:33:33 +08:00
@spacewander 还是可以理解的,特别是有 lambda 编程经验的朋友。
loginv2
2015-12-08 17:12:02 +08:00
)))))))))))))))

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/241241

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX