DavidNineRoc
V2EX  ›  问与答

现在前端都已经这么高级了吗?

  •  
  •   DavidNineRoc · Mar 19, 2018 · 20181 views
    This topic created in 3060 days ago, the information mentioned may be changed or developed.

    我只是想问一个问题,如果有说的不对的地方,勿喷: 现在的项目前后台分离,我负责 api, 同时把他的前端给我,让我部署到服务器。(还要我装 node,yarn 什么之类的) 我惊呆了,前端为什么还要求服务器装这些?不是开发的时候用,部署时管你用什么 es6,不都打包成 html ? 然后我就懵逼了,我的前端还停留在 jq 的时代; 我也不知道用的什么框架,截图一张。 111 难道现在不支持打包成浏览器直接运行的? ps:我另一个同事用的 rn,说可以的,然后争不过另外一个。求大神解释一下

    129 replies    2018-03-22 21:51:55 +08:00
    1  2  
    wotemelon
        101
    wotemelon  
       Mar 20, 2018 via Android
    看了前几个评论差点吐血。这明显是 ssr 服务端渲染啊,不要 ssr 直接给你静态文件了
    ericls
        102
    ericls  
       Mar 20, 2018 via iPhone   ❤️ 1
    @wotemelon 从图中看的确是像是 SSR 但是 就算不是 ssr 可能也不好 本地 build. 可能会涉及到 assets 的处理…… 当然 各种情况都有可能 也各有好坏。

    另外 前端从来都很复杂 你看看 Android 还用 Java 写前端呢……
    huba
        103
    huba  
       Mar 20, 2018 via Android
    我就想知道一件事,你说的这个前端月薪是有多少。。。。总感觉很恐怖。
    markx
        104
    markx  
       Mar 20, 2018
    @mkeith 你说的是没错。 我想说的是,无论楼主懂不懂 node 的服务端渲染,他是负责 API 的。
    fulvaz
        105
    fulvaz  
       Mar 20, 2018
    给他个 nginx 让他自己维护去
    ymcz852
        106
    ymcz852  
       Mar 20, 2018
    也没什么的,身为一个前端,虽然懂一点 SSR,但是直接上来就丢给你这不懂的知识,不事先商量,我觉得是不行,身为程序员多了解点为人处世,比懂多点知识更高级
    Clarencep
        107
    Clarencep  
       Mar 20, 2018
    服务端渲染而已,大惊小怪。

    不过作为一个 PHPer,我还是觉得 "用户 <--> node 服务 <--> PHP 服务” 这样的服务端渲染流程不太靠谱 -- node 的部署比较麻烦,可能会中断服务而影响用户体验。

    我建议使用 "用户 <--> PHP 服务 <--> node 服务" 这样的流程。从 PHP 调 node 服务的时候设个超时时间(比如 500ms ),超时的话就别服务端渲染了,PHP 直接渲染出个基本页面就得了。这样能有效地防止不靠谱的前端的 node 服务出 bug。
    AppxLite
        108
    AppxLite  
       Mar 20, 2018
    @abcbuzhiming 笑了,没有服务器权限你行你上啊!!!
    int64ago
        109
    int64ago  
       Mar 20, 2018
    @Clarencep #107 淘宝、天猫里有很多用了 Node 作为前置渲染层,靠不靠谱不是你说了算
    DavidNineRoc
        110
    DavidNineRoc  
    OP
       Mar 20, 2018
    @Muninn 下次让他自己来 ^_^
    @jasperjia 我还在用 var >_
    @keikeizhang 用远程 windows 服务器远程管理多个 linux 主机,我上 windows 帮看看。
    @miyalee 以前的前端同事给我的直接丢 dist
    @duan602728596 展示类的网站,而且前端不搞服务端渲染,你再怎么 es6 写法,还不是语法糖,最后直接打包成浏览器能直接识别的?
    @markx
    @mkeith
    @orzzyd 前端见识少,别见怪
    DavidNineRoc
        111
    DavidNineRoc  
    OP
       Mar 20, 2018
    @wotemelon 看前端。。。
    @huba 要是都知道同事的工资就好了
    @fulvaz 下次就是了
    @ymcz852 下次让他来就行了
    @Clarencep 中断立马帅锅给前端。。。
    jasperjia
        112
    jasperjia  
       Mar 20, 2018
    @DavidNineRoc 该同事看书只看第一页吧 一个 let 用到天荒地老
    GavinGuo
        113
    GavinGuo  
       Mar 20, 2018
    我是做前端的
    目前前端确实大多用 node 来部署的,node 充当 http 服务器,但你说前后端分离,那也可以 build 成纯 html+js 的形式,再用 apache 或 nginx 来做 http 服务器,这些都不是事
    luoway
        114
    luoway  
       Mar 20, 2018
    @Clarencep
    “用户 <--> PHP 服务 <--> node 服务”是不可能的,两个 js 栈之间无论什么理由都不会出现别的语言。
    0x4b0082
        115
    0x4b0082  
       Mar 20, 2018
    @mritd 不做 服务器服务器国外的 速度很好 而且 layer 有了后面实际上也不会再去下载了 因为 layer 内容没变
    jyf
        116
    jyf  
       Mar 20, 2018
    用什么很正常 不过要别人给你的技术战买单不太好 所以最好贵厂提倡 dockernize
    zpf124
        117
    zpf124  
       Mar 20, 2018
    @DavidNineRoc 你们这前端太奇葩了,你贴的这玩意是 nodejs,是一套服务端程序,相当于一个什么流程呢。

    既然你是 php 的,那就用 php 举例, 目前这样就像是:

    他做了一个 php 的全套网站, 只不过数据查询不是用 mysql 的库,而是通过 http 请求,去访问了你的网站。

    --------------------------------------------------------------------

    也就是说一个用户如果访问你们项目,实际的流程是这样:

    1,用户请求之后,访问了他做的服务器程序,然后他的服务器返回 html 页(静态的或者是他服务器生成的动态页面)。

    2,(根据他这个幺蛾子思路,估计他前端的异步请求也是访问的他自己的服务器),用户浏览器执行 js,异步请求他的服务器,他的服务器再调用你的 api,获取查询结果然后返回。

    也就是说,根本没有前后端分离, 只是你们前端的同志自己也搞了一套后端项目,你们这做的玩意应该叫做服务化。
    zhjie
        118
    zhjie  
       Mar 20, 2018
    @zpf124 #117 请教一下您认知里的前后端分离
    coalo
        119
    coalo  
       Mar 20, 2018
    @zpf124 #117 你思路说清楚了,不过这个就是前后端分离的基本思路,前端收到用户请求后,调用后端数据 api,渲染页面。后端只负责数据业务的处理
    coalo
        120
    coalo  
       Mar 20, 2018
    前端的技术栈在近三年内确实更新到了这种层次,一般不会前端渲染相关技术的前端程序员都找不到高薪工作了
    coalo
        121
    coalo  
       Mar 20, 2018
    楼主可以看下这篇文章就明白了 https://github.com/camsong/blog/issues/8
    zpf124
        122
    zpf124  
       Mar 20, 2018
    @zhjie 因为没有贴出 js 代码,我不确定这个 node 是做了后端的功能了,还是仅仅是做服务端渲染。

    前后端分离在我的理解里是这样的。

    如果没有服务端渲染:
    用户访问服务器, 服务器直接发送静态 html 页和其他资源, 用户浏览器端 js 执行异步请求访问后端动态服务器获取数据。

    如果有服务端渲染:
    用户访问服务器,做服务端渲染用的 node 服务器,读取 html 页,向后端服务器请求数据,然后将数据渲染到 html 中发送给浏览器,当切换页面时用户浏览器端 js 执行异步请求访问后端动态服务器获取数据。


    服务的渲染的服务器仅仅用来第一次用户访问时生成带数据的 html 页,之后完全不访问这个服务器。
    DavidNineRoc
        123
    DavidNineRoc  
    OP
       Mar 20, 2018
    @jasperjia 给我讲讲为什么 let 不好 >_<
    @GavinGuo 我也不是很清楚,不过肯定的是他只是服务端渲染,没有写后端的代码
    zhjie
        124
    zhjie  
       Mar 20, 2018
    @DavidNineRoc #123 let 和 cost 的区别,就算百度都能搞清楚,大体上是这样的,需要修改变量的用 let,不需要修改的如引入的模块,方法规范点用 const。假如项目用了 eslint 检测,这个 let 肯定是要报警的。
    suzic
        125
    suzic  
       Mar 20, 2018 via Android
    他写了一层 node 中间件,用来做服务端渲染
    xylophone21
        126
    xylophone21  
       Mar 20, 2018
    这种做法确实存在,只不过为什么会在你们都开发好了再撕?你们的系统工程师呢?
    Thiece
        127
    Thiece  
       Mar 20, 2018
    一个帖子暴露了 V2EX 的平均水平
    Clarencep
        128
    Clarencep  
       Mar 22, 2018
    @DavidNineRoc 不是甩锅的事儿,咱得对整个系统负责
    Clarencep
        129
    Clarencep  
       Mar 22, 2018
    @luoway 有,理由就是可维护性和可靠性。
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2989 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 14:43 · PVG 22:43 · LAX 07:43 · JFK 10:43
    ♥ Do have faith in what you're doing.