我为什么赞成前后端以及 UI 分离 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
ericls
V2EX    Javascript

我为什么赞成前后端以及 UI 分离

  •  8
     
  •   ericls 2016-08-09 16:21:34 +08:00 6904 次点击
    这是一个创建于 3357 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前后端以及 UI 分离的好处:

    1. 后端相当好测试
    2. 后端还可以服务多个平台,比如 APP , WEB 等
    3. 前端还可以用于多个平台,比如 APP , WEB 等
    4. 耦合度低,自己和别人协同开发相当轻松, UI 写 css, 前端写逻辑和 component ,后端写和数据库的交互
    5. 耦合度低,自己和自己协同开发也相当轻松。
    6. 用模板引擎来生成 html 太痛苦。
    7. 前端技术带来的 UX 提升是相当重要的!而这些使用传统的后端生成 html 方式很难实现。比如表单验证, inline editing 等。

    /t/298014 这里有一个很大的问题:

    前后端分离是一种技术,跟招聘没有任何关系。

    全栈工程师也应该采用前后端分离的开发方式。 UI 交给专门的 UI

    前端都不会还好意思说全栈?

    别说小公司,个人项目都应该采用前后端分离

    48 条回复    2016-08-16 17:35:01 +08:00
    bdbai
        1
    bdbai  
       2016-08-09 16:25:59 +08:00 via Android
    主流思想就没必要强调了。铜币送上
    ericls
        2
    ericls  
    OP
       2016-08-09 16:28:08 +08:00 via iPhone
    @bdbai 我就是不懂为什么那个帖子说前后端分离就等于招两个人
    66beta
        3
    66beta  
       2016-08-09 16:57:18 +08:00
    前后端分离跟招 2 个人的关系是什么鬼,为什么会得出这个结论?
    ericls
        4
    ericls  
    OP
       2016-08-09 16:58:26 +08:00 via iPhone
    @66beta 原贴的结论
    66beta
        5
    66beta  
       2016-08-09 17:00:16 +08:00
    @ericls 中过专家特色的结论~
    SourceMan
        6
    SourceMan  
       2016-08-09 17:01:08 +08:00   1
    哎,你跟小朋友一般见识啥的
    yuyang041060120
        7
    yuyang041060120  
       2016-08-09 17:46:18 +08:00
    撇开业务谈技术架构都是耍流氓
    mdluo
        8
    mdluo  
       2016-08-09 17:56:31 +08:00
    上一个 喷前端新框架、喷前端被带歪 喷得那么厉害的人叫 [ 某当老师 ]
    AlphaTr
        9
    AlphaTr  
       2016-08-09 18:02:33 +08:00
    这才是正确的打开方式,硬币奉上~
    airyland
        10
    airyland  
       2016-08-09 18:24:49 +08:00
    似乎没提到,分离后前端可以独立迭代上线。。
    murmur
        11
    murmur  
       2016-08-09 18:29:40 +08:00
    UI 交给 UI 设计师是对的 美术生的功底可不是程序员想学就学的来的
    nevin47
        12
    nevin47  
       2016-08-09 18:31:53 +08:00 via Android
    我也赞成要严格分离,不过说原楼主小朋友就不合适了,他回复里面讲了阿里的早期项目他也参加过,至少工作经验已经在那里了
    bobsam
        13
    bobsam  
       2016-08-09 18:40:21 +08:00
    没吃过螃蟹的人 永远都不知道螃蟹有多好吃 铜币双手捧上~
    lxrmido
        14
    lxrmido  
       2016-08-09 18:44:18 +08:00
    保守派一直都会在
    noli
        15
    noli  
       2016-08-09 18:45:44 +08:00 via iPhone
    跟小朋友讨论大人的事情,总会有种不知从何说起的无力感。所以啊,教小孩有时候就是不能解释为什么,让他自己去经历和感受就好了。
    loading
        16
    loading  
       2016-08-09 18:45:44 +08:00 via Android
    自己一个人开发,分离相当爽,需要什么接口马上写…
    ChiangDi
        17
    ChiangDi  
       2016-08-09 18:46:17 +08:00 via Android
    前后端分离的和不分离的我都做过,但是我自己明显喜欢分离的
    Pastsong
        18
    Pastsong  
       2016-08-09 18:52:29 +08:00
    这样的讨论其实对前端的发展是有好处的, 我是赞成大部分的网站规模根本不需要 React 的
    keysona
        19
    keysona  
       2016-08-09 19:47:28 +08:00
    。。。奇葩了。
    我感觉你们和看得不是同一篇文章。


    原文中有句话: "总之我不认同这种前后端分离。"

    我概括能力有限,作者这里针对的是某种"前后端分离".

    结合他回复来看,他并不是完全否定它,不同场合还是有需要的。他提到了一些交互性高的项目。也有人评论说项目大了也要。

    我觉得他更想说的是,"大多数网站没有必要上越来越复杂的前端框架, jquery 之类的就够了。"
    keysona
        20
    keysona  
       2016-08-09 19:50:36 +08:00   1
    看到这帖子的回复有点失望。
    sodatea
        21
    sodatea  
       2016-08-09 19:54:49 +08:00   1
    虽然我同意前后端在一定条件下是需要分离的

    但你这个帖子完全没喷到点上……
    JamesRuan
        22
    JamesRuan  
       2016-08-09 20:54:11 +08:00   2
    关键是靠谱的前端少,你让前端写逻辑, 10 个里面 9 个趴下,另外 1 个你养不起。
    LancerComet
        23
    LancerComet  
       2016-08-09 21:15:36 +08:00 via Android
    公司目前不仅在做前后端分离,还正准备部署 cnpm 管理前端组件,规模不同,各取所需即可,抛开规模和工程的话没什么太大意思,本来就各有优劣。
    mornlight
        24
    mornlight  
       2016-08-09 21:22:42 +08:00
    技术问题的讨论大家就事论事,讲道理遵从逻辑就好,很多问题并不是非黑即白的。
    这帖子后面某些回复 low 而不自知。
    hahadekuai
        25
    hahadekuai  
       2016-08-09 21:51:10 +08:00
    我过来围观。
    simman
        26
    simman  
       2016-08-09 23:04:31 +08:00
    隔壁贴居然有傻 x 在喷 前端写的代码, 用的工作流、工具链连后端都看不懂, 从而证实前端都是在装 X 。
    lianghudou
        27
    lianghudou  
       2016-08-09 23:10:26 +08:00
    说了这么多,你们都用什么前端框架啊
    lianghudou
        28
    lianghudou  
       2016-08-09 23:13:12 +08:00   1
    大 10 年前,几乎所有的技术博客都在谈论缓存、分布式,包括个人博客,使用缓存、分布式之类的技术,都要拿出来分(炫)享(耀)

    哦,对了,还有 asp 圈的生成真静态。
    holyghost
        29
    holyghost  
       2016-08-09 23:14:43 +08:00
    说了这么多,你们都是怎么分离的啊
    lianghudou
        30
    lianghudou  
       2016-08-09 23:14:46 +08:00   1
    我感觉楼上那些个人写项目都要前后端分离的,跟 10 年前个人博客(自己开发哦)都要使用缓存技术是一丘之貉:痛并快乐着
    Perry
        31
    Perry  
       2016-08-09 23:20:51 +08:00
    撇开业务谈技术架构都是耍流氓 + 1
    wizardforcel
        32
    wizardforcel  
       2016-08-09 23:32:15 +08:00 via Android
    @lianghudou 然而使用缓存是自然而然的事情。比如生成 token 防重放的地方,存到 memcached (或 redis )里面相当方便。再比如短信验证码功能,存缓存里也相当方便。
    wizardforcel
        33
    wizardforcel  
       2016-08-09 23:40:58 +08:00 via Android
    我从来就没反对过前后端分离。我反对的是一些鼓吹框架的观点,使得开发者牺牲了学习成本和迁移成本,却没有得到相应的效率。比如 ng1 就做的很差,基本上是全手动,也就是使用 for 标签插入表格的时候比 jq 好点。定位控件还要用一个 scope 和一个 name ,比 jq 的一个 selector 还要麻烦。所以我说它就是个模板引擎。

    当然 ng2 改良了很多,全变成了组件, html 里也看不到模板的影子了。但是跟 ng1 完全就是两个东西,想要迁移还需要费点精力。
    mdluo
        34
    mdluo  
       2016-08-09 23:45:29 +08:00
    @lianghudou 因为那时候缓存、分布式都是新鲜技术,个人博客使用你觉得是装逼是炫技,而现在这些技术已经成了基础设施,成了云平台或者 Web 框架就默认提供的东西。你能想象现在的网站完全不用缓存不用分布式技术的吗

    要你这么说(或者 /t/298014 里的观点),那十年前的雅虎前端优化 14 条军规, Gmail 的 Ajax 都是大公司迷信,都是瞎折腾,都是不适合个人开发者或者小公司的。而你现在再来看呢?
    hasbug
        35
    hasbug  
       2016-08-10 00:05:58 +08:00
    好好好
    mdluo
        36
    mdluo  
       2016-08-10 00:06:19 +08:00
    @keysona

    “ 256K 内存对任何人都够了”、“世界上只需要 5 台电脑就够了(这句话也许未来可能成为现实,但那还能叫<电脑>吗)”

    对于这样看新技术的前端,我觉得就用一辈子 IE 6 + jQuery 1.x 就够了
    septem123
        37
    septem123  
       2016-08-10 00:30:26 +08:00
    用 jquery+html+css 一样能前后端分离
    用框架反倒是为了降低团队协作的难度
    billlee
        38
    billlee  
       2016-08-10 00:34:36 +08:00
    @lianghudou 其实如果有 C/S 开发的经验,那么前后端分离看起来会更加自然
    russj
        39
    russj  
       2016-08-10 08:17:38 +08:00
    诶,还停留在这种级别的争论,人家都去火星了

    另外那篇帖子的 lz 号称自己是腾讯出来的,基本解释了为什么腾讯这样体量的公司虽然体积是 facebook 级别,但是对技术其实没有什么贡献,靠得还是人海战术
    bmy
        40
    bmy  
       2016-08-10 09:11:27 +08:00
    我站这边
    levn
        41
    levn  
       2016-08-10 10:09:31 +08:00
    话说天下大势,合久必分,分久必合……
    fszaer
        42
    fszaer  
       2016-08-10 10:17:14 +08:00
    矣,我只是想在个人项目里练一下手啊,团队项目必然有许多考量和约束哪能说用就用,光做 demo 又只见其型.
    好不容易在个人项目里用可以自由的些新一点的技术还要被劈头盖脸一顿
    ‘这么简单懂项目用个卵的框架,分个卵的前后端,老老实实 php+jq 懂不懂?‘
    ()
    murmur
        43
    murmur  
       2016-08-10 11:49:16 +08:00
    @mdluo 但是的却有这个问题,技术越用越新,体验越来越差(典型的新浪微博,每次改版都被骂),这不是搞技术的悲哀么,再牛的技术再好的构架死在脑残的产品经理手上
    Durandal01
        44
    Durandal01  
       2016-08-10 14:01:03 +08:00
    用全栈 Rails 必然要给 Rails 的思路背书啦,铜币奉上。
    Wangxf
        45
    Wangxf  
       2016-08-10 15:22:49 +08:00
    @russj 腾讯都是实用主义的工程师,已解决问题为中心,不瞎搞
    Exin
        46
    Exin  
       2016-08-10 21:03:32 +08:00
    我逛 V 站时间不长,但是最近觉得一种现象越来越常见:

    两个人开两个帖隔空争论,他们都在自己的安全区里侃侃而谈但很少去对方的帖子直接对嘴,发泄一通后心满意足地走了,留下看客一地的瓜子。
    ericls
        47
    ericls  
    OP
       2016-08-10 22:33:23 +08:00 via iPhone
    @Exin 好文采
    phxsuns
        48
    phxsuns  
       2016-08-16 17:35:01 +08:00
    前后端在架构设计上是需要分离着去思考的。
    但是实际操作需要看情况的。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2606 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:24 PVG 20:24/a> LAX 05:24 JFK 08:24
    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