前后端该不该分离 你是否已经迷糊了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
dabpop139
V2EX    程序员

前后端该不该分离 你是否已经迷糊了

  •  1
     
  •   dabpop139 2016-08-13 12:28:04 +08:00 9124 次点击
    这是一个创建于 3414 天前的主题,其中的信息可能已经有所发展或是发生改变。

    跟大家一样,前两天我也关注到了 V2 关于“前后端分离”引发的激烈讨论,个人觉得,看完讨论很多人会更加迷糊。见解诸多,没法一条条分析,这里说说我的一些看法,当然我不是什么大神,也没有什么丰富的背景,平凡的地地道道的老菜鸟而已,和大家一样,有着疑惑和痛点的老菜鸟。

    既然是老菜鸟,理所当然成了保守一派。可保守,不代表不能接受新理念,只是接受起来更加理性,特别是针对重点关注的领域。比如我现在就很难接受 Laravel ,很难接受 PHP 大量使用依赖包来开发。当然 Composer 不是 Laravel 搞出来的,但 Laravel 是这一类型技术栈的典型框架。

    其实说这么多,我想表达的就是:现在技术和概念什么的革新那么快,时不时还看到它们在业内被鼓吹,难免使人浮躁。俗话说“万变不离其宗”,其实你只要静下心来,好好研究技术,将“底层”技术的扎实功底打好,以后理解和上手新的技术栈将尤为轻松。当然,在新的热门技术理念和概念出现时,你有必要通过一些渠道,简单初步的了解一下这些技术栈。如此,既能节约学习成本,也能拥抱新潮技术,同样以后你需要用到这些技术栈的时候,就可以快速上手了。当然做为老菜鸟的我也在不断学习和进步之中,前段时间也试着坚持做了几期关于 Vue.Js 技术栈学习分享的视频,大家感兴趣的可以戳“这里 http://www.bilibili.com/video/av5788245/”过去瞅一瞅,不喜请忽略。

    37 条回复    2016-08-15 13:14:09 +08:00
    paulagent
        1
    paulagent  
       2016-08-13 13:50:19 +08:00
    握手,我已经懵了
    banricho
        2
    banricho  
       2016-08-13 14:07:28 +08:00
    要是两三年前有这样的讨论还能理解

    现在是 2016 年,并且是在 V2EX 这样的地方,讨论这种问题实在是?
    ivmm
        3
    ivmm  
       2016-08-13 14:12:00 +08:00
    五年以后,我们再来回首这个命题。

    或许也就不需要争论什么了,如果分离了那就是趋势,如果还有很多不分离的,那么不分离绝对有他的优越性
    lianghudou
        4
    lianghudou  
       2016-08-13 14:13:52 +08:00
    连 V2EX 都没分离,这不是活生生的打那些分离党的脸吗。对于大部分中小公司,业务不会比 V2 复杂。
    zhujinliang
        5
    zhujinliang  
       2016-08-13 14:21:00 +08:00 via iPhone   2
    一种人了解的框架不一定很多,但能根据需求结合参与合作的人的技术水平,选择合适的技术和框架
    一种人是某个框架或某个框架组合的忠实信徒,他会不停地打 patch ,以向人们证明该框架可以实现所有你们想要的功能
    一种人只是框架用户,讲的只是框架中的术语,热衷各种框架讨论,能力范围受限于框架所覆盖的范围,如果框架无法实现,他可以仰仗上面说的那一类人,必要时可用激将法
    还有一种人,如果你要求他脱离框架,用原生功能去开发一个功能,他会暴跳如雷,大骂你为何要造轮子
    luoway
        6
    luoway  
       2016-08-13 14:33:24+08:00
    不会就分离,会而且人手少就不分离呗。有啥好迷糊的。
    21grams
        7
    21grams  
       2016-08-13 14:35:11 +08:00 via Android
    啥是前后端分离,有明确的定义吗
    zhujinliang
        8
    zhujinliang  
       2016-08-13 14:40:11 +08:00 via iPhone
    上面是突然有点感想,但打完感觉有些不对题,又舍不得删……
    技术选型也包含政治,信仰,以及“老子就想试试这个”等等因素
    有些人是不甘于当前的一切的,希望尝试不同的技术,希望借用公司的资源来学习和试错
    光老老实实做一种技术,不折腾折腾,跟咸鱼有什么区别

    如果要为你自己的产品负责,先挑选自己最熟悉的方案,规划好产品演进的路线,一步步去做
    如果你是帮老板做产品,你能说服老板的话,想怎么玩就怎么玩
    murmur
        9
    murmur  
       2016-08-13 14:50:18 +08:00
    迷糊不迷糊不重要 现在有个很奇怪的问题 就是技术越来越先进 用户体验越来越差(国内软件) 这是为什么呢
    buckyRRRR
        10
    buckyRRRR  
       2016-08-13 14:52:08 +08:00 via iPhone
    @murmur 都是拼开发速度,看谁快
    noli
        11
    noli  
       2016-08-13 15:00:55 +08:00 via iPhone
    @lianghudou 我在用 V2EX 手机客户端,这似乎打了你的脸?起码 V2EX 是支持前后端分离的设计的
    changwei
        12
    changwei  
       2016-08-13 15:06:59 +08:00
    业务不复杂,而且目前该项目对应的移动端 app 也没有太多的电脑端接口需要调用,那么基本上不用考虑前后端分离,反正我觉得分离的话。打个不恰当的比方,后端简单了百分之 30%工作量(就是少了 view 层和模版引擎),但是相反前端增加了百分之 50%工作量,我觉得还是没这个必要。
    dabpop139
        13
    dabpop139  
    OP
       2016-08-13 15:10:46 +08:00 via Android
    @ivmm 赞同用时间去验证一切,我们现在也不必要去陷入这样的分争中,合适自己的才是最好的,关键是打好技术功底。
    LINAICAI
        14
    LINAICAI  
       2016-08-13 15:12:42 +08:00
    前后端分离不是为了让移动端和 web 端开发进度尽量保持一致嘛,如果你的产品移动端啥的都没有,搞前后端分离就是傲娇+浪费成本。
    binux
        15
    binux  
       2016-08-13 15:13:43 +08:00   3
    看起来有些人认为 render('tpl.html', data=data) 就是不分离, jsonify(data) 就是分离。那就没讨论的必要了。
    jookr
        16
    jookr  
       2016-08-13 15:22:27 +08:00 via iPhone
    我就说一点, web 版移动版分离了,搜索引擎抓不到内容不带流量来,这不是自己给自己提高获客成本吗?
    lianghudou
        17
    lianghudou  
       2016-08-13 15:23:47 +08:00
    @noli 打你 MB ,前后端分离是跟 app 分离吗?讨论的是跟 web 前端分离。别 TM 偷换概念,不要脸的死玩意。反对前后端分离的作者已经提到了 https://v2ex.com/t/298014 ,传统的服务端输出 html 模式并不影响为 app 提供 api 支持,说的就是 V2EX 这种模式。等 V2 用了 react 、 vue 、 angularjs 之类的再来说打我的脸。
    cszchen
        18
    cszchen  
       2016-08-13 15:24:51 +08:00 via iPhone
    需要分离,毕竟现在一般的公司都有前端,如果不分离,后端跟前端的工作会有交集。如果分离了,就像开发 APP 一样,各自专注自己的工作
    zhuziyi
        19
    zhuziyi  
       2016-08-13 15:26:12 +08:00 via iPhone
    前端仍然是过于浮躁,总想占有一席之位,越搞越复杂,多数人只是拿这些东西来骗老板而已,屁大点项目专搞些这类政治,国外出一个东西,马上就开始东施效颦,抄袭改编,国人这一点无他国人能及。
    zhuziyi
        20
    zhuziyi  
       2016-08-13 15:29:25 +08:00 via iPhone
    @murmur 用户体验在国内行不通,个人经验,在国内越是体验好越容易倒。亲历,活生生把用户体验拆分,交互组直接解散,产品越来越烂。
    lianghudou
        21
    lianghudou  
       2016-08-13 15:30:59 +08:00
    每当进入一个新公司,接手日 IP 不到 1000 的项目, redis 、队列一应俱全,我 TM 就想骂人。都是那些菜鸟刚学了一些新知识恨不得立马就在项目上练练手。越搞越复杂最后搞不定了拍屁股走人,让我这种老司机来给他们擦屁股。
    FrankFang128
        22
    FrankFang128  
       2016-08-13 15:40:02 +08:00
    @binux 对的,分不分离的重点是客户端渲染,例如客户端路由、 MV* 等。
    这些人见过的后端开发,可能是 10 年前的后端开发。
    zhoubug
        23
    zhoubug  
       2016-08-13 15:48:01 +08:00 via Android
    我们搞 c c++的眼里 这里讨论的后端也是前端
    noli
        24
    noli  
       2016-08-13 15:54:07 +08:00
    @lianghudou 偷你 MB 的概念,只有 web 才叫前端,手机不叫前端?不需要支持多种前端,讨论个毛线的前后端分离?
    只会 web 就别来瞎 BB 。前后端一向都是架构概念,不懂就别狂
    lianghudou
        25
    lianghudou  
       2016-08-13 15:56:41 +08:00
    @noli 这里讨论的是 web 前后端是否分离,不是手机 app 是否前后端分离,你见过不分离的手机 app 吗?老子都给你说的这么明白了你他妈还咬着头子硬挣。
    noli
        26
    noli  
       2016-08-13 16:43:35 +08:00
    @lianghudou 反正你们这帮人乱用术语就是该骂。讨论 web 渲染和数据绑定方式,就别扯什么鬼前后端分离,一群兔崽子。
    noli
        27
    noli  
       2016-08-13 16:46:54 +08:00
    https://zh.wikipedia.org/wiki/%E5%89%8D%E7%AB%AF%E5%92%8C%E5%90%8E%E7%AB%AF

    不服,你去编辑个维基百科词条,让别人明白什么叫前后端。
    shiny
        28
    shiny  
    PRO
       2016-08-13 16:50:59 +08:00
    当然是根据项目业务和团队状况来做架构的。有钱的土豪另外说。
    caixiexin
        29
    caixiexin  
       2016-08-13 17:10:03 +08:00 via Android
    按需求和成本设计架构,遇到瓶颈就想办法解决。有哪个产品或公司是一朝鲜吃遍天的?
    caixiexin
        30
    caixiexin  
       2016-08-13 17:27:32 +08:00 via Android
    另外我觉得极端地鼓吹传道某个技术的人是有私心的,要么是保住自己的饭碗,要么是社区话语权,要么是业内的领导权...
    说到底,就是马斯诺需求层次模型的社会尊重需要,要是饭都吃不饱谁会在网上吵这些事啊,这也是生活水平提高的表现=_=
    不喜欢这类争论的话,不跟人家吵,埋头学习就是了,少谈些主义,多研究些问题。
    miaotaizi
        31
    miaotaizi  
       2016-08-13 20:52:36 +08:00
    应该看场景, 而不是为了分离而分离.
    楼主不接受 laravel 也就算了, 既然还不能接受 composer....
    目测 PHP 版本不高于 5.3.......
    moonou
        32
    moonou  
       2016-08-13 21:01:14 +08:00 via iPhone
    @noli 现在 v2 的用户量上去了,这些帖子的出现也是必然因素,不要生气了……
    wangxiaoer
        33
    wangxiaoer  
       2016-08-13 22:22:53 +08:00
    前后端分离跟具体的技术有个毛的关系,无非是分工而已,渲染放到哪里做的问题, v2 这种明显偏展示型的肯定是后端渲染更有优势,无论是考虑到 SEO 还是速度。对于一些交互性频繁的应用如典型的管理系统如各种云的控制台等前后分离明显更有优势,后端 API 如果设计的粒度合理,正交性较好,可以在不修改后端的情况下满足前端各种变化需求。脱离使用场景讨论前后端分离就是耍流氓。

    前后端分离也不是浮躁,只是针对某些环境结合某些框架让开发更专注,更高校而已。

    真正浮躁的是明明普通的前后端分离(浏览器渲染+服务器 API 接口)可以解决的问题,非要模仿大厂硬生生加一个 node 或者 php 的中间层,人为增加开发成本和部署成本。
    vai
        34
    vai  
       2016-08-13 22:39:53 +08:00
    如果怕 SEO 不好就不支持前后端分离,那么表达下观点:有些内部管理系统,要的就是对搜索引擎不友好,你永远搜不到我最好。所以我从会编程开始就一直前后端分离着做,虽然那时候都没有这个明确的名词说法。
    SourceMan
        35
    SourceMan  
       2016-08-13 23:32:48 +08:00 via iPhone
    一万个讨论者心中有一万种前后端分离的理解
    lk920724
        36
    lk920724  
       2016-08-14 00:05:27 +08:00
    个人认为有趋势变成一个新的“ P 是最的语言”梗 w
    arzusyume
        37
    arzusyume  
       2016-08-15 13:14:09 +08:00
    那帖子都 500 多回复了,你们工作是有多不饱满 /w\
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3435 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 04:30 PVG 12:30 LAX 20:30 JFK 23:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86