Wangxf
V2EX  ›  PHP

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

  •  
  •   Wangxf · Dec 4, 2015 · 5076 views
    This topic created in 3824 days ago, the information mentioned may be changed or developed.

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

    33 replies    2015-12-08 17:12:02 +08:00
    snachx
        1
    snachx  
       Dec 4, 2015   ❤️ 1
    一般来说,正儿八经做项目的时候还是会选择你最熟悉的语言...
    Wangxf
        2
    Wangxf  
    OP
       Dec 4, 2015
    @snachx 还真不是,我本职是前端, php , node 都马马虎虎,但是感觉 PHP 周边要强,什么支付宝 sdk ,微信 sdk 都会至少提供 PHP , Java 两个版本
    kikyous
        3
    kikyous  
       Dec 4, 2015 via Android
    对啊,总感觉 js 代码很不可靠
    msg7086
        4
    msg7086  
       Dec 4, 2015
    @Wangxf 「 php , node 都马马虎虎」
    所以你并没有一个特别熟悉的语言 /框架……
    Wangxf
        5
    Wangxf  
    OP
       Dec 4, 2015 via iPhone
    @msg7086 马马虎虎就是能用 node or php 两种方式做个逻辑不太复杂的 web 项目后对于两者的使用感受,两个都熟悉和两个都马马虎虎这个没问题啊,两者都是在一个水平层次下进行比较
    msg7086
        6
    msg7086  
       Dec 4, 2015
    @Wangxf 我说的特别熟悉,是说曾经用某种语言,鉴选出一个合适的框架,然后开发一个或者多个企业级产品并上线使用,这样的程度。
    PS: 语言真的不重要。如果你有参与过架构设计的话,应该就会知道,现在的 MicroService 时代,对于你说的 SDK 只有 PHP 的问题,只要放一个独立的微型服务在那里暴露一个 API 做代理就行了,主程序用什么语言写都行。

    当然个人小型项目随便做做的话用什么语言都行,反正技术含量不高,直接学一下就能战了。
    loading
        7
    loading  
       Dec 4, 2015 via Android
    其实 java 更多示范代码~
    wormcy
        8
    wormcy  
       Dec 4, 2015
    写正经项目必须用最好的语言
    eoo
        9
    eoo  
       Dec 4, 2015 via Android
    PHP 一统天下
    fractal314
        10
    fractal314  
       Dec 4, 2015 via Android
    感觉 node 适合做逻辑简单,访问量高的接口。异步回调,一层套一层,想想就发怵
    dorentus
        11
    dorentus  
       Dec 5, 2015 via iPhone
    PHP 我用过很多年, node.js 则是在比较早期的时候写过几个小的线上项目。
    现在如果要写正经的 web 项目的话,我会选 Ruby XD
    edsgerlin
        12
    edsgerlin  
       Dec 5, 2015
    @fractal314 如果是写 WebSocket ,目前真没发现比 Node 更好用的,两边能用同一套 API 呀……
    sox
        13
    sox  
       Dec 5, 2015 via Android
    不是可能,就是。
    joyee
        14
    joyee  
       Dec 5, 2015
    @fractal314 2015 年了还在用嵌套回调写 node ,说明知识范围太狭窄了,还是别再写的好……
    mzer0
        15
    mzer0  
       Dec 5, 2015
    @joyee 那你用什么...
    hustlzp
        16
    hustlzp  
       Dec 5, 2015
    @joyee 同意,比如 promise 、 yield 、 async/await
    joyee
        17
    joyee  
       Dec 5, 2015
    @mzer0 楼上。
    mzer0
        18
    mzer0  
       Dec 5, 2015
    @joyee 嵌套回调的编程模型比较简单, yield 的相对复杂.
    joyee
        19
    joyee  
       Dec 5, 2015
    @mzer0 复杂的不是 yield ,是如果想要用 generator 来做异步需要加多的那一个 scheduler ,也就是说,你需要 async/await ,或者在没有实现之前,得有 co 这样的垫脚石……然而只要有了这些基础设施写起来就跟写同步差不多了=___=(嵌套回调哪里简单了……“一层套一层,想想就发怵” 2333
    mzer0
        20
    mzer0  
       Dec 5, 2015
    @joyee 我不使用 Node.JS, 它实现了 yield 之类的吗? coroutine 呢? 打算在未来的半年内学习 Node.JS. 嵌套回调是最简单的啦, 并且很可靠, 只是传参不方便. 一些著名的 C++网络编程的库的文档里, 还会出现七层嵌套, 标准用法.
    fractal314
        21
    fractal314  
       Dec 5, 2015 via Android
    @joyee
    看来这位兄台是搞了许多年 node 的高手了。
    我这样的菜鸟,嵌套写不下去了,才明白为啥叫回调陷阱。估计现在解决这个问题的各种方案比较多了吧。
    当初,我把主要模块,都写成 Express 的中间件了,还好当时的问题不太复杂
    rekey
        22
    rekey  
       Dec 5, 2015
    php 果然还是最好的语言。
    newghost
        23
    newghost  
       Dec 5, 2015
    前后端工作量差不多的话还是用一种语言顺手……
    yunba
        24
    yunba  
       Dec 5, 2015
    php 是最好的语言
    joyee
        25
    joyee  
       Dec 6, 2015
    @mzer0 yield 不是 Node.js 里的东西啊,是 JavaScript 里的,语言层面上的,在 ES2015 里被标准化,需要引擎支持,而 V8 已经支持了,然后基于 V8 的 Node.js 也自然就支持了(以前需要开 flag ,现在 Node.js 和 io.js 合并之后不需要开 flag 就能使用)。
    joyee
        26
    joyee  
       Dec 6, 2015
    @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
        27
    joyee  
       Dec 6, 2015
    @fractal314 另外我不是男的,且我也没写 Node.js 多久啊……起码我刚学的时候就知道了 Koa 的存在,所以从来没觉得嵌套回调是什么问题,因为……干嘛要写嵌套回调啊?(除了某些逗比库只有嵌套的 API 需要你先自行封装一下)= =
    fractal314
        28
    fractal314  
       Dec 6, 2015 via Android
    @joyee 好吧,我当初 js 都没学,直接搞的 node ,一路填了许多坑,估计最后也没把握他的精髓吧。另,你的四级成绩可把我吓跪了
    mzer0
        29
    mzer0  
       Dec 6, 2015 via iPhone
    @joyee 我觉得嵌套回调很好......没什么坏处......
    spacewander
        30
    spacewander  
       Dec 6, 2015
    @mzer0
    你需要找一个五层以上的嵌套回调,然后试着理解它
    magicdawn
        31
    magicdawn  
       Dec 6, 2015
    如果你对 Node.js 的认识停留在 callback hell, 那就真是了解不多, 也就不要拿这个 hell 说事~
    mzer0
        32
    mzer0  
       Dec 6, 2015 via iPhone
    @spacewander 还是可以理解的,特别是有 lambda 编程经验的朋友。
    loginv2
        33
    loginv2  
       Dec 8, 2015
    )))))))))))))))
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   871 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 20:06 · PVG 04:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.