大多数情况下 PHP 就够用了, PHP 虽然说被人鄙视得不行,语言设计也毫无亮点,但是重在两个字:好用, node 啥的写点辅助前端开发的工具,搭个博客还行,大部分情况下是没有机会在服务端用到的,拿 node 写业务逻辑,那叫一个蛋疼,总感觉不够稳(可能我水平不行吧
1
snachx 2015-12-04 21:43:18 +08:00 1
一般来说,正儿八经做项目的时候还是会选择你最熟悉的语言...
|
2
Wangxf OP @snachx 还真不是,我本职是前端, php , node 都马马虎虎,但是感觉 PHP 周边要强,什么支付宝 sdk ,微信 sdk 都会至少提供 PHP , Java 两个版本
|
3
kikyous 2015-12-04 21:49:48 +08:00 via Android
对啊,总感觉 js 代码很不可靠
|
5
Wangxf OP @msg7086 马马虎虎就是能用 node or php 两种方式做个逻辑不太复杂的 web 项目后对于两者的使用感受,两个都熟悉和两个都马马虎虎这个没问题啊,两者都是在一个水平层次下进行比较
|
6
msg7086 2015-12-04 22:09:11 +08:00
@Wangxf 我说的特别熟悉,是说曾经用某种语言,鉴选出一个合适的框架,然后开发一个或者多个企业级产品并上线使用,这样的程度。
PS: 语言真的不重要。如果你有参与过架构设计的话,应该就会知道,现在的 MicroService 时代,对于你说的 SDK 只有 PHP 的问题,只要放一个独立的微型服务在那里暴露一个 API 做代理就行了,主程序用什么语言写都行。 当然个人小型项目随便做做的话用什么语言都行,反正技术含量不高,直接学一下就能战了。 |
7
loading 2015-12-04 22:18:43 +08:00 via Android
其实 java 更多示范代码~
|
8
wormcy 2015-12-04 22:20:00 +08:00
写正经项目必须用最好的语言
|
9
eoo 2015-12-04 22:39:58 +08:00 via Android
PHP 一统天下
|
10
fractal314 2015-12-04 23:01:44 +08:00 via Android
感觉 node 适合做逻辑简单,访问量高的接口。异步回调,一层套一层,想想就发怵
|
11
dorentus 2015-12-05 00:00:44 +08:00 via iPhone
PHP 我用过很多年, node.js 则是在比较早期的时候写过几个小的线上项目。
现在如果要写正经的 web 项目的话,我会选 Ruby XD |
12
edsgerlin 2015-12-05 00:40:04 +08:00
@fractal314 如果是写 WebSocket ,目前真没发现比 Node 更好用的,两边能用同一套 API 呀……
|
13
sox 2015-12-05 02:01:58 +08:00 via Android
不是可能,就是。
|
14
joyee 2015-12-05 02:15:04 +08:00
@fractal314 2015 年了还在用嵌套回调写 node ,说明知识范围太狭窄了,还是别再写的好……
|
19
joyee 2015-12-05 02:57:18 +08:00
@mzer0 复杂的不是 yield ,是如果想要用 generator 来做异步需要加多的那一个 scheduler ,也就是说,你需要 async/await ,或者在没有实现之前,得有 co 这样的垫脚石……然而只要有了这些基础设施写起来就跟写同步差不多了=___=(嵌套回调哪里简单了……“一层套一层,想想就发怵” 2333
|
20
mzer0 2015-12-05 03:01:13 +08:00
@joyee 我不使用 Node.JS, 它实现了 yield 之类的吗? coroutine 呢? 打算在未来的半年内学习 Node.JS. 嵌套回调是最简单的啦, 并且很可靠, 只是传参不方便. 一些著名的 C++网络编程的库的文档里, 还会出现七层嵌套, 标准用法.
|
21
fractal314 2015-12-05 07:01:34 +08:00 via Android
@joyee
看来这位兄台是搞了许多年 node 的高手了。 我这样的菜鸟,嵌套写不下去了,才明白为啥叫回调陷阱。估计现在解决这个问题的各种方案比较多了吧。 当初,我把主要模块,都写成 Express 的中间件了,还好当时的问题不太复杂 |
22
rekey 2015-12-05 11:02:47 +08:00
php 果然还是最好的语言。
|
23
newghost 2015-12-05 17:00:54 +08:00
前后端工作量差不多的话还是用一种语言顺手……
|
24
yunba 2015-12-05 18:26:21 +08:00
php 是最好的语言
|
25
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 就能使用)。
|
26
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 ,你看嵌套回调这种已经根本不是个事儿了提都不提……) |
27
joyee 2015-12-06 06:01:31 +08:00
@fractal314 另外我不是男的,且我也没写 Node.js 多久啊……起码我刚学的时候就知道了 Koa 的存在,所以从来没觉得嵌套回调是什么问题,因为……干嘛要写嵌套回调啊?(除了某些逗比库只有嵌套的 API 需要你先自行封装一下)= =
|
28
fractal314 2015-12-06 08:50:16 +08:00 via Android
@joyee 好吧,我当初 js 都没学,直接搞的 node ,一路填了许多坑,估计最后也没把握他的精髓吧。另,你的四级成绩可把我吓跪了
|
30
spacewander 2015-12-06 14:21:03 +08:00
@mzer0
你需要找一个五层以上的嵌套回调,然后试着理解它 |
31
magicdawn 2015-12-06 15:29:00 +08:00
如果你对 Node.js 的认识停留在 callback hell, 那就真是了解不多, 也就不要拿这个 hell 说事~
|
32
mzer0 2015-12-06 19:33:33 +08:00 via iPhone
@spacewander 还是可以理解的,特别是有 lambda 编程经验的朋友。
|
33
loginv2 2015-12-08 17:12:02 +08:00
)))))))))))))))
|