kokdemo

前后端分离之后,通信这一块会不会产生新的瓶颈?

  •  
  •   kokdemo ·
    kokdemo · Sep 8, 2014 · 6225 views
    This topic created in 4290 days ago, the information mentioned may be changed or developed.
    我发现我最近在做的一个东西,向服务器发一个请求,再把数据取回来,要花2秒多的时间,相当影响页面的加载。

    这一块也会产生瓶颈吗?你们有事怎么处理的?



    ps:说实在的,因为搞这个分离,导致要开发很多接口,后端和前端的压力都大了不少……让我总对这种分离的思路很不看好。
    36 replies    2014-09-10 10:49:38 +08:00
    yemoluo
        1
    yemoluo  
       Sep 8, 2014
    先做了再说. 分离前期很痛苦,后期很欢乐
    learnshare
        2
    learnshare  
       Sep 8, 2014
    前后端分离,其实是降低了服务器的压力,提高了响应速度才对。后端搞成 RESTful 的话,应该有很多框架可以用,能够大大降低开发难度和工作量。

    响应慢的话,测试一下慢在哪里就好了。实在很慢,可以加一个 loading 效果到页面里,这样也比整页空白要好的吧。
    kokdemo
        3
    kokdemo  
    OP
       Sep 8, 2014
    @learnshare 现在后端没有啥框架……都是需要一个内容,后端去写新的接口……构造一个长长的url来取数据……

    整个页面加载5s,服务器请求2s,我觉得这里问题很大……
    ferock
        4
    ferock  
    PRO
       Sep 8, 2014 via iPhone
    慢怎么都慢,不分离你就快了?
    gno23x
        5
    gno23x  
       Sep 8, 2014
    2s多,这时间一般不是耗在建立请求,看下服务端的io操作耗时多少吧。
    fansekey
        6
    fansekey  
       Sep 8, 2014
    经过长期测试,前端获取数据这种方式,性能很是问题。
    组建大UI才是王道。可以服务器端架设UI层,来从数据层获取数据支撑业务逻辑、模板渲染。

    UI层可以直接由前端负责,后端依然是restful接口。
    kokdemo
        7
    kokdemo  
    OP
       Sep 8, 2014
    @ferock ……有道理

    部门的老大现在也没有申请更多的服务器,于是在一个服务器上跑了好多业务,配了两个tomcat做“负载均衡”,orz
    kokdemo
        8
    kokdemo  
    OP
       Sep 8, 2014
    @fansekey 大ui?

    就是把模版渲染好,传到前端来?
    loading
        9
    loading  
       Sep 8, 2014 via Android
    不说具体场景都是耍流氓!
    chshouyu
        10
    chshouyu  
       Sep 8, 2014 via iPhone
    我们这的后端不懂jsonp。。。
    fengliu222
        11
    fengliu222  
       Sep 8, 2014
    个人认为,先分析一下这2秒钟都花在了什么地方,如果是服务器端返回的慢,那应该不是前后端分离的问题。
    kaneg
        12
    kaneg  
       Sep 8, 2014
    如果你不是做什么很复杂的业务操作,后台操作2s基本上认为是有性能问题
    learnshare
        13
    learnshare  
       Sep 8, 2014
    2s 可能的原因有很多啊,细细排查一下问题在哪里。

    前后端分离利大于弊吧,不过就需要独立前端了,对小团队来说还是一个麻烦。
    lygmqkl
        14
    lygmqkl  
       Sep 8, 2014
    感觉不太可能出现这样大的差别。
    wsph123
        15
    wsph123  
       Sep 8, 2014 via iPhone
    这两秒又不是前后端分离本身导致的呀
    这样放在一起才更慢,找为啥慢 别怨前后端分离
    fansekey
        16
    fansekey  
       Sep 8, 2014
    @kokdemo 是的
    ferock
        17
    ferock  
    PRO
       Sep 8, 2014 via iPhone
    @kokdemo 不会是win 吧,找到哪里慢才是解决问题的关键
    kzzhr
        18
    kzzhr  
       Sep 8, 2014
    可以加个loading 进度条之类的动画来缓解延迟感
    也可以参考coding.net这样先加载默认内容
    反正不要把blank留出来就行
    kokdemo
        19
    kokdemo  
    OP
       Sep 8, 2014
    @ferock ……我还真不清楚……
    kokdemo
        20
    kokdemo  
    OP
       Sep 8, 2014
    @learnshare
    @wsph123

    我自己表达这个观点主要还是因为现在接口的开发没有任何的标准,也就是上面说的RESTful……

    需要个啥,就新弄个接口,工作量很大
    ferock
        21
    ferock  
    PRO
       Sep 8, 2014 via iPhone
    @kokdemo 你就按照function 打点分析
    kokdemo
        22
    kokdemo  
    OP
       Sep 8, 2014
    @ferock 什么叫打点分析?
    leiz
        23
    leiz  
       Sep 8, 2014
    @kokdemo 每个function打个时间看看哪里耗时最多
    ferock
        24
    ferock  
    PRO
       Sep 8, 2014 via iPhone
    @kokdemo 楼下告诉你了
    learnshare
        25
    learnshare  
       Sep 8, 2014
    @kokdemo 系统规模大的话,一定要好好规划,否则后边都是坑
    takato
        26
    takato  
       Sep 8, 2014
    @fansekey 根据多年测试经验来看,这种应用往往质量堪忧,因为缺乏测试切入点
    missdeer
        27
    missdeer  
       Sep 8, 2014
    怎么感觉跟我司做法有点像,哦哈哈
    incompatible
        28
    incompatible  
       Sep 8, 2014
    @fansekey 这跟传统的cgi编程有啥区别?
    fansekey
        29
    fansekey  
       Sep 9, 2014
    @incompatible 其实是现实的一种折中,把业务展现相关的交由同一拨人去开发,剩下的一波人就可以努力完善数据了。
    fansekey
        30
    fansekey  
       Sep 9, 2014
    @takato 测试的切入?是否可以考虑通过单元测试解决。
    takato
        31
    takato  
       Sep 9, 2014
    @fansekey 单元测试可以,但是代码这道壁垒是很多测试工程师不愿意越过的(或者越不过的),而开发的思路总体和测试思路是不太一致的。所以会导致这个点上风险其实是比较大的,因为你的数据已经被包装成UI
    fansekey
        32
    fansekey  
       Sep 10, 2014
    @takato 1. RESTful的数据接口是可以通过单元测试搞定。 2. UI层这块还是按照以前的测试方式可以搞定,因为原先最多就是直接访问数据库,并没有什么不同。3. 对于很多测试工程师不想越过代码,这个原因优点牵强。 如果是这样,单测完全可以由开发自己搞定,可以上ci等系统来保证功能正常。
    takato
        33
    takato  
       Sep 10, 2014
    @fansekey 根据目前所观察,有些 *良好* 单元测试习惯的开发工程师,在国内不超过10%
    takato
        34
    takato  
       Sep 10, 2014
    @fansekey lastComment.delete("些")
    fansekey
        35
    fansekey  
       Sep 10, 2014   ❤️ 1
    @takato 嗯,你说的确实是现状。但是为啥有那么多的开发不愿意写单测,这个问题值得考虑。是否是写感觉浪费时间疑惑是写单测太难,或者单测经常修改。找到这些根结,是否就可以督促开发写单测了呢。比如单测太难,可能是设计分层有问题,经常修改可能是抽象不理想。写单测完全对开发是个互惠的过程。

    虽然现状是这个样子的,但在有效的模式下是可以达到单测保证质量的这个目标的,只是时间问题。
    takato
        36
    takato  
       Sep 10, 2014
    @fansekey 其实目前总体行业现状是,平均值比国际水平的确低了很多,但不乏处于塔尖的人,如何帮助普通人快速地写单测,以及养成这个习惯,是一个亟待探讨的问题。

    感觉这个问题说大一点,和缺乏幸福感有关,我管这东西叫做信仰。

    曾经我也觉得信仰是个很虚的东西,直到我玩了《文明》

    才知道一个光环对于一个地区能力的加成是非常深刻的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2806 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 12:15 · PVG 20:15 · LAX 05:15 · JFK 08:15
    ♥ Do have faith in what you're doing.