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

前后端分离 web 项目,数据处理属于前端还是后端,分界点在哪?

  •  
  •   WEAlex · 2018-10-22 08:38:29 +08:00 via Android · 10351 次点击
    这是一个创建于 2005 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前项目所有数据来自于第三方接口,第三方接口有数据结构,但是前端所需的并不一定满足。这时候的数据处理是放在后端还是前端?

    35 条回复    2018-10-22 14:08:50 +08:00
    huoguodiliao
        1
    huoguodiliao  
       2018-10-22 08:41:56 +08:00
    后端啊....但是一般能前端做得就不要让后端做咯 哈哈哈
    aLazarus
        2
    aLazarus  
       2018-10-22 08:44:11 +08:00 via Android   ❤️ 1
    我一般是后台再封装一遍接口……免的前端折腾了
    WEAlex
        3
    WEAlex  
    OP
       2018-10-22 08:46:08 +08:00 via Android
    @aLazarus 主要是后端有时候要面对多类型的前端,可能同一个数据要封装多次做多个接口供不同的前端使用。
    zhubinbin8271
        4
    zhubinbin8271  
       2018-10-22 08:46:09 +08:00
    如果是第三方接口,肯定后端要先做处理,然后再给前端调用
    kslr
        5
    kslr  
       2018-10-22 08:47:31 +08:00 via Android   ❤️ 1
    后端,因为复杂业务好做。
    p2pCoder
        6
    p2pCoder  
       2018-10-22 08:48:29 +08:00
    前端能控制的很有限,原则上应该是必须走后端
    yyss8
        7
    yyss8  
       2018-10-22 08:48:39 +08:00   ❤️ 1
    看你们业务需求 我个人觉得是
    比如既然你们数据都第三方了 那是不是前端直接拿第三方的数据? 如果是直接拿 拿就没有必要加一层后端请求
    如果不是 那有没有需求很多的加工计算 如果有的话就放后端 因为业务计算放前端不安全 然后如果多了前面也卡 但是如果你们服务器配置不行也可以适当放一点在前端
    再然后就是你们前后端人员在公司的排行了 你要是前端你老大是后端 你喊得动人家写吗
    q8164305
        8
    q8164305  
       2018-10-22 08:48:50 +08:00 via Android
    后端啊,不然数据前端改来改去,后期不好定位问题
    WEAlex
        9
    WEAlex  
    OP
       2018-10-22 08:51:15 +08:00 via Android
    心里大概有个谱谱了,谢谢各位大佬
    WEAlex
        10
    WEAlex  
    OP
       2018-10-22 08:51:30 +08:00 via Android
    @yyss8 给你点赞
    learnshare
        11
    learnshare  
       2018-10-22 08:59:13 +08:00
    galikeoy
        12
    galikeoy  
       2018-10-22 09:03:00 +08:00
    简单的我做没问题,复杂的数据要后端
    justfindu
        13
    justfindu  
       2018-10-22 09:08:00 +08:00
    需要前端处理的可能只有负责时间转成易读的 数字格式化易读的 其他大概都是后台吧 包括基础的提示消息都是尽量后端提供
    fkdog
        14
    fkdog  
       2018-10-22 09:09:34 +08:00
    这种东西难道不是看人际关系吗?
    关系好的,那就主动问一问这样的格式 ok 不,
    关系不好,我数据给你了,你爱咋的咋的。
    KuroNekoFan
        15
    KuroNekoFan  
       2018-10-22 09:12:28 +08:00 via iPhone
    我觉得前端重点还是要放在产品和交互,复杂数据的逻辑应该放在后端
    wizardoz
        16
    wizardoz  
       2018-10-22 09:14:05 +08:00   ❤️ 7
    后端的重点在于业务的正确性,前端的重点在于用户体验,我是这么认为的。
    VikingX
        17
    VikingX  
       2018-10-22 09:14:25 +08:00
    我觉得后端负责处理数据,前端负责渲染数据...
    shijianit
        18
    shijianit  
       2018-10-22 09:26:05 +08:00
    前端尽量少进行业务逻辑处理
    2805408253
        19
    2805408253  
       2018-10-22 09:36:13 +08:00
    设计到业务逻辑计算清洗统计等都在后端,前端只做数据的展示以及产品功能的交互与用户体验。
    passerbytiny
        20
    passerbytiny  
       2018-10-22 09:36:54 +08:00
    凡是处理“怎么显示”和“怎么让用户的操作变成数据”的,前端处理,凡是不处理上面两种情况的,后端处理。
    derrickT
        21
    derrickT  
       2018-10-22 09:42:38 +08:00
    必须后端啊,前端负责显示就好了
    keikeizhang
        22
    keikeizhang  
       2018-10-22 09:53:32 +08:00
    我采用的方案是看是否对 demo 进行操作,比如判断是一个弹窗是否显示,这样的数据不需要后端给 true 还是 fasle,前端自己根据后端过来的数据进行判断。
    keepsmilence
        23
    keepsmilence  
       2018-10-22 10:01:13 +08:00   ❤️ 2
    无论第三方格式是否前端能直接用,都走后端包装一下,因为:
    如果第三方接口变化,后端可以调整逻辑而前端不变;
    方便内部自己再做一层权限控制;
    方便筛选字段数据或调整格式(前后分离一般都是 JSON 了);
    后端调用接口写日志,方便遇到异常或者业务投诉时翻日志,方便甩锅(很重要,前端直接调的话你就什么都查不到了);
    后端可以对数据相对固定的接口数据做缓存,减小第三方接口压力;
    前后端人员分离,各维护各的,后端去跟第三方的人扯,前端则只要跟自己人扯;
    Shynoob
        24
    Shynoob  
       2018-10-22 10:04:46 +08:00
    前端要是再处理数据,后端就没多少活儿干啦
    shidianxia
        25
    shidianxia  
       2018-10-22 10:05:57 +08:00
    如果这个第三方接口调用频率限制是按照 IP 频次,而不是依据 accesskey,那么前端直接调用有巨大优势。反之,肯定需要后端统一包装后处理,一是提高效率,二是安全性考虑减少接口被第三方滥用的可能。
    hasbug
        26
    hasbug  
       2018-10-22 10:07:18 +08:00
    统一后端做吧,前端处理东西总是被怀疑,别让我们前端做,懒得天天来改伪 BUG
    shidianxia
        27
    shidianxia  
       2018-10-22 10:07:50 +08:00
    *第三方 -> 其实应该叫做第四方:)
    ChefIsAwesome
        28
    ChefIsAwesome  
       2018-10-22 10:16:25 +08:00
    这有个原则性问题,不管在哪处理,关键是不能影响用户体验。数据特别大,算个几秒才算出来,放前端明显不合适。
    不影响用户体验的情况下,再考虑工程问题。比方讲同一个数据,在好几个页面,甚至是好几种前端上面展现。数据又不是特别大,这时候放前端处理明显更灵活。
    sammo
        29
    sammo  
       2018-10-22 11:16:22 +08:00
    前端肯定要封装一遍接口的
    后端也肯定要封装一遍接口的

    前端 - 前端数据接口 - 数据 - 后端数据接口 - 后端

    看似费事,实则大大省事:把耦合程度降到最低 所以最保险,出问题时好 debug 好修正,省了未来的时间、省了扯皮的时间
    batter
        30
    batter  
       2018-10-22 11:59:34 +08:00
    牵涉到存储数据变化的,安全的一定要后端来做,否则,嘿嘿嘿
    wxiao333
        31
    wxiao333  
       2018-10-22 12:35:06 +08:00
    后端无疑
    jzmws
        32
    jzmws  
       2018-10-22 12:41:08 +08:00 via Android
    我的原则是前端之负责展示数据。
    southsala
        33
    southsala  
       2018-10-22 13:51:56 +08:00
    后端给什么前端展示什么,后端把第三方接口梳理一下,整理成你们自己的格式,更换第三方也方便,只需要后端改就可以,不影响 APP 和 Web
    piggybox
        34
    piggybox  
       2018-10-22 14:07:43 +08:00
    前端所谓的处理主要是展示性的,比如排个序什么的。否则那些修改性的处理要同步到后端,这时你需要考虑万一网络不好和后端数据不一致怎么同步的问题。。。所以还是后端统一处理这类破坏性的修改比较好
    wobuhuicode
        35
    wobuhuicode  
       2018-10-22 14:08:50 +08:00
    不涉及安全就给前端,其他都是后端。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5810 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:45 · PVG 10:45 · LAX 19:45 · JFK 22:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.