V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onice
V2EX  ›  程序员

现在前后端分离是主流了吗?

  •  
  •   onice · 2018-09-24 12:15:38 +08:00 · 16032 次点击
    这是一个创建于 2259 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想问下大家,现在前后端分离是主流了吗?

    现在有个项目,正在进行技术选型阶段,在考虑要不要前后端分离,前后端分离有什么好处呢?

    还有个疑问是现在前端人手不够,可能要后端亲自上阵,前后端分离的话,哪些技术对后端来说比较容易。后端的主要技术栈是 Java 和 Python。

    谢谢大家。

    62 条回复    2019-10-31 14:05:39 +08:00
    lsido
        1
    lsido  
       2018-09-24 12:20:26 +08:00 via Android
    应该正在趋向主流,但还不是主流
    linbiaye
        2
    linbiaye  
       2018-09-24 12:23:38 +08:00   ❤️ 3
    java 系的上 angular.
    mmdsun
        3
    mmdsun  
       2018-09-24 13:12:01 +08:00 via Android
    主流。我们这都是
    Hilong
        4
    Hilong  
       2018-09-24 13:16:56 +08:00 via Android
    上海这边应该是主流了,现在客户端性能强大了。很多工作可以放到前端来做了。后端不是和以前一样的写嘛。写写接口就好了啊
    2379920898
        5
    2379920898  
       2018-09-24 13:20:42 +08:00
    分场景啊,ERP 你前后端分离试试呗
    javacodecreeks
        6
    javacodecreeks  
       2018-09-24 13:20:56 +08:00 via iPhone
    这是一个趋势,而且用在微服务项目里的话,非常适合!可以各司其职提高开发效率,但是带来了接口测试成本,如果后端用 Java 的话,可以用 swagger 向前端暴露自己的接口
    duan602728596
        7
    duan602728596  
       2018-09-24 13:46:39 +08:00 via iPhone
    没错,可以这么干,开发很舒服的
    SorcererXW
        8
    SorcererXW  
       2018-09-24 14:22:20 +08:00 via Android
    如果要同时兼容前端和移动端,前后端分离很重要
    janxin
        9
    janxin  
       2018-09-24 14:26:32 +08:00   ❤️ 1
    互联网化项目肯定是一个好选择,传统软件项目未必是一个好选择。
    前后分离的场景更加适用于业务不停发展变化的互联网业务,前端的变更需要更加快速,超过了后端的业务变化速度才能体现出比较大的优势。
    enjoyCoding
        10
    enjoyCoding  
       2018-09-24 14:29:43 +08:00 via iPhone
    如果考虑到服务端渲染的话还是不要前后端分离了吧 毕竟前端比较少。
    NicholasYX
        11
    NicholasYX  
       2018-09-24 14:32:21 +08:00 via iPhone
    目前我们着是这样 客户端又后台提供接口 其他前端来做
    后台管理部分全部又后台来做
    way2create
        12
    way2create  
       2018-09-24 15:15:33 +08:00
    可惜我们公司前端水平太差了 比我个后端还差
    PHPer233
        13
    PHPer233  
       2018-09-24 15:18:54 +08:00 via iPhone
    前端能做的事情就不要让后端做。
    sudoz
        14
    sudoz  
       2018-09-24 15:31:35 +08:00
    @linbiaye #2
    前后端分离,后端还分 Java PHP ??你倒是说说为什么后端 Java,前端就要用 Angular ?
    linbiaye
        15
    linbiaye  
       2018-09-24 15:39:29 +08:00   ❤️ 3
    @sudoz 你会错意了,没有说后端 java,前端就要 angular。对于后端程序员来说,如果熟悉 java 的那一套,上手 angular 容易。angular 才是 framework, 各种常用的组件都给你准备好了; vue, react 都只是 library,需要自己倒腾其它的 library。
    cyberpoint
        16
    cyberpoint  
       2018-09-24 15:46:59 +08:00
    是的,反正深圳这边是这样的。但是分离后安全性可能降低,所以会结合 ssr。
    还有一个分离之后的 pwa 也能加速用户体验。
    wizardforcel
        17
    wizardforcel  
       2018-09-24 15:57:47 +08:00 via Android
    好处是只写一种接口。坏处是可能要多一些人手。
    karllynn
        18
    karllynn  
       2018-09-24 17:18:12 +08:00
    3 年前就分开了=,=

    不过写一些控制台之类的小玩意儿不分开也行
    xuanbg
        19
    xuanbg  
       2018-09-24 17:18:27 +08:00
    @2379920898 ERP 更容易前后端分离呀,SPA 不就是基于浏览器的客户端么?
    bojackhorseman
        20
    bojackhorseman  
       2018-09-24 21:19:24 +08:00 via iPhone
    jQ 一把梭
    nyaapass
        21
    nyaapass  
       2018-09-24 22:12:37 +08:00   ❤️ 2
    前后端架构分离, 但开发人员不分离比较好, 不然每天撕不完的逼
    heww
        22
    heww  
       2018-09-24 22:20:48 +08:00
    难道不是主流吗?我们在 2014 年时就前后端分离了,那个时候我们觉得自己分离的还不够早。
    FakeLeung
        23
    FakeLeung  
       2018-09-24 22:23:07 +08:00 via Android
    不分离会疯的。。。
    youngxhui
        24
    youngxhui  
       2018-09-24 22:24:33 +08:00 via Android
    angular
    aimiyooo
        25
    aimiyooo  
       2018-09-24 22:39:54 +08:00
    Django+vue
    LokiSharp
        26
    LokiSharp  
       2018-09-24 22:59:51 +08:00 via iPhone
    Flask+React
    leekafai
        27
    leekafai  
       2018-09-24 23:10:51 +08:00 via Android
    好处就是后端逻辑与页面显示完全解耦,这个我认为还是很重要的,起码现在看到 jsp,php,ftl 什么的,碰都不想碰,因为很大机会能在里面看到:html×css×js×后端语言,这个改起来头很大。就算用户群是 ie8,可以加上 ssr 的库来渲染 html 吐出,但无论如何,语言混写的问题还是能有效避免
    akira
        28
    akira  
       2018-09-24 23:11:53 +08:00
    分离以后 后端是接口为主,什么语言都有成熟方案的啦
    endlessing
        29
    endlessing  
       2018-09-24 23:20:51 +08:00
    是主流,不然现在前端 vue,react 和 angular 怎么会那么火
    leyle
        30
    leyle  
       2018-09-24 23:55:19 +08:00
    写一次接口,各个平台都可用。
    johnniang
        31
    johnniang  
       2018-09-24 23:58:39 +08:00 via Android
    主要是一次编写,到处调用的感觉很爽
    sampeng
        32
    sampeng  
       2018-09-25 00:36:55 +08:00 via iPhone
    如果你一起就 3-4 个人。别自己折腾自己。前后端分离是有沟通成本的。其他倒无所谓
    PythonAnswer
        33
    PythonAnswer  
       2018-09-25 07:32:38 +08:00 via iPhone
    做的都是内部小项目,工具服务。全部后端框架搞定。
    zcxj138
        34
    zcxj138  
       2018-09-25 09:01:55 +08:00
    如果人手不够的话,就别弄分离了,会搞崩溃的。
    keepfool
        35
    keepfool  
       2018-09-25 09:03:21 +08:00
    两年前就是主流了吧。。。
    log4geek
        36
    log4geek  
       2018-09-25 09:21:47 +08:00
    这么干两三年了,现在不是前后端分离的公司基本上不考虑了。
    anmie
        37
    anmie  
       2018-09-25 09:23:52 +08:00
    看情况,前后端分离适用于 cms 这种便应用向的 web 项目,比如官网这种内容展示型的网站,还是服务端渲染好一些,这些项目从页面加载速度和 seo 的角度考虑,前后端分离真的不是一个特别好的选择
    ranwu
        38
    ranwu  
       2018-09-25 09:25:57 +08:00
    看项目大小
    buwanju
        39
    buwanju  
       2018-09-25 09:27:18 +08:00
    五六年前就开始了, 你现在才知道。赶紧的吧。
    diveIntoWork
        40
    diveIntoWork  
       2018-09-25 09:42:47 +08:00
    @2379920898 ERP 为啥不适合前后端分离呀
    xcjx
        41
    xcjx  
       2018-09-25 09:42:51 +08:00
    我以为我穿越了……大兄弟,你是不是看的古书,入的行……
    ochatokori
        42
    ochatokori  
       2018-09-25 09:53:18 +08:00 via Android
    前端人手不足,不是必要就前后端不要分离了(分离之后前端工作量↑,总工作量也多很多)不分离又不是不能用,客户又不会管你分不分离
    keikeizhang
        43
    keikeizhang  
       2018-09-25 09:54:10 +08:00
    16 年就已经分离了
    luvxy
        44
    luvxy  
       2018-09-25 09:57:20 +08:00 via iPhone   ❤️ 1
    前端表示最好 vue,angular 感觉借助了 java 等后台的一些东西,但入门门槛高点,vue,angular,react 其实用哪个都可以,一般的项目根本不用想太多,还不是个 js,vue 的话我是觉得上手快
    Deeer
        45
    Deeer  
       2018-09-25 10:00:13 +08:00
    前后端分离不是老早老早的事情了吗
    linuxchild
        46
    linuxchild  
       2018-09-25 10:03:53 +08:00
    前边各种改的话,自然还是分离的好,常年没变化的,咋样都行
    heiyantutu
        47
    heiyantutu  
       2018-09-25 10:05:57 +08:00
    现在都流行 前后端同构了。。
    xoxo419
        48
    xoxo419  
       2018-09-25 10:06:24 +08:00
    PC 端也都分离么? 分离之后的 SEO 呢.
    Kei
        49
    Kei  
       2018-09-25 10:11:14 +08:00
    但前后端都要做数据校验这一点是个痛点
    TustMan
        50
    TustMan  
       2018-09-25 10:38:26 +08:00
    Vue + Spring Boot 吧 后端开发者看完 vue 文档,也基本能写的
    shuperjolly
        51
    shuperjolly  
       2018-09-25 10:39:29 +08:00 via iPhone
    分离是业务内容分离,业务员又不是一定要分离的
    abc635073826
        52
    abc635073826  
       2018-09-25 10:42:13 +08:00
    java 推荐 angular,python 选择 Django 和 flask
    iloveyou
        53
    iloveyou  
       2018-09-25 10:47:57 +08:00
    现在都不考虑 seo 了吗?
    ifconfig
        54
    ifconfig  
       2018-09-25 10:55:16 +08:00
    根据场景划分。

    1 )一般的企业超级后台管理系统分离意义不大,毕竟像很多后端框架已经集成了 auth 和很多 packpage,能很快针对运营同时的需求做出快速响应。比如:迭代小需求,快速修复 bug 马上上线。

    2 )目前我们前后分离的场景有:高并发活动营销 H5,客户类后台(最大化美观及可维护)
    Muninn
        55
    Muninn  
       2018-09-25 11:27:00 +08:00
    现在前端好写,后端看看文档也能行,

    但是你永远也学不会 css 的。
    2379920898
        56
    2379920898  
       2018-09-25 11:57:23 +08:00
    不知道啊。感觉不合适
    ben1024
        57
    ben1024  
       2018-09-25 12:38:16 +08:00
    分离看公司规模和场景,盲目跟风搞分离只会问题更多
    ebony0319
        58
    ebony0319  
       2018-09-25 12:41:21 +08:00 via Android
    我个人觉得最大的改变是前端已经有自己的一套体系了。以前写 mvc,又要考虑数据,又要考虑界面。现在只需要数据驱动。第二点就是快,性能真的提升了 n 倍。如果一定要考虑 seo 也可以多页面,是一样的。
    flyingghost
        59
    flyingghost  
       2018-09-25 22:06:36 +08:00
    说到 SEO,我们是这样做的:
    针对 google,不需要额外做任何事。google 会执行前端 js 得到最终渲染页面。
    针对 baidu 等一票愚蠢蜘蛛,额外输出了一套平凡版页面,只有内容,以及一些语义标签,没有任何样式。
    据说 baidu 有一条原则是不允许人类版页面和蜘蛛版页面有差异,为了打击黑色 SEO。
    但我们似乎并没有发现目前做法有被歧视。

    仅供参考,也希望内行人士能确切指点这样做是否合适。
    zhangalong69
        60
    zhangalong69  
       2018-09-27 16:56:33 +08:00
    @Muninn 太真实了吧
    youcanwin8099
        61
    youcanwin8099  
       2019-10-28 15:19:33 +08:00
    @janxin 这个说的很对,很理性。
    youcanwin8099
        62
    youcanwin8099  
       2019-10-31 14:05:39 +08:00
    @NicholasYX “目前我们着是这样 客户端由后台提供接口, 其他前端来做,后台管理页面全部由后台来做”。
    我觉得这种分工是比较合理的。客户端应该确切的讲,比如 APP、微信页面、前端综合网页(不是纯粹后台管理端网页的那种)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:11 · PVG 20:11 · LAX 04:11 · JFK 07:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.