zoukankan      html  css  js  c++  java
  • 前后分离问题?

    最近从网上看到一些关于前端工作细分的问题,前端工作可以分为两种,一种是偏静态,即HTML、CSS开发,一种是偏交互,即JavaScript、前台逻辑和前后端交互。这两种工作对人的要求是相差很大的,偏静态的可以不涉及太多编程和逻辑,但要求心细、能把握细节、对视觉体验非常敏感、对用户体验有一定的理解、能忍受IE6等浏览器带来的痛苦、能持续学习,而后者对JavaScript要求较高、要有一定的编程能力、熟悉前后端协作模式、熟悉HTML和CSS、有一定的前端架构能力。有人说这样做会使得页面功能模块的开发维护变得割裂,一定程度上限制了js和css的配合方式。

    实际上公司考虑的问题更多是成本的问题,管理与效率的问题;找一个交互和静态页面的大牛很难,运气好都很难碰到一个,工作细分有利于降低我们的成本,同时也能提升工作效率。

    接下来就谈谈前后分离问题;后端在配合前端完成工作的时候,很容易对逻辑的界限分不清;这里的逻辑指的是业务逻辑,数据逻辑,交互逻辑等等;我们为什么要做前后分离的工作呢?我想首先是降低维护的成本,让大家专注于自己所擅长的事情,就是让大家在自己所擅长领域工作觉得非常爽;公司当然希望我们通过解决这样的问题来实现效率的提升,管理,维护的成本降低。

    先看看这些现象:

    1、前端开发的时候,在交互层次上对交互逻辑的一致性要求的非常严格如:在某个场景下,删除,修改,添加等等操作逻辑应该一直,对用户友好的提示都应该一致;所以他们的布局,渲染等等都会有统一的原则;但是我发现对于某些特殊的场景,我们并不需要保持这种一致性,严格的这种一致性反而会让人觉得这种实现很low;

    2、后端在开发的时候,由于与前端没有得到有效的沟通;很容易陷入对前端交互逻辑的思考或者对一些处理逻辑的工作分配不均,造成谁来维护无法确定;也可能由于有效沟通的缺乏使得后端对自己逻辑工作划分的不清楚,将逻辑处理变得复杂化等等.

    3、前后分离目前很多成熟的框架提供了很好的支持,听得比较多的如MVC,View first,MVVC等模式,思想上又有什么组件化思想,MVC思想等等,模板上还有handlebar,angularjs,reactjs, 当然服务端的模板就更多了;但是我们发现虽然有这么多的技术支持,但是我们在解决前后分离这个问题上,我们还是没有很好的办法来做到完美;这里面有很多原因,我想我们自身使用的框架本身就是一种限制,并且随着需求的复杂,这种限制会越来越明显。

    理想情况下,我觉得如果我们有一些好的模板,好的方式,在前后端沟通恰当的情况下,每个人能专注于自己的工作,前后端互不依赖;要说依赖也就是后端是否会提供数据给前端;我们有一些好的模板这种模板既能使得对SEO友好,又能解决前后分离的问题;

    那么我们有什么办法可以达到这种目的呢?有一种说法是对于业务侧重后端的可以将逻辑复杂交给后端来处理如博客,论坛;对于界面逻辑比较复杂的可以将逻辑交给前端来处理,后端只负责数据存储;我觉得可以统一起来,类似一个升级版的SPA模式:

    · 前后端数据交互通过ajax,restful等进行,前端负责渲染和界面交互,后端只负责提供相关的业务数据,复杂的逻辑可由后端处理,前端尽量不要涉及与业务有关的逻辑问题;当然这些前提是前后端沟通达成一致,最好是前端主动去明确自己需要哪些数据,而不是后端花很多时间去思考前端大概的界面交互和渲染需要哪些数据,因为这些交互细节后端肯定是考虑不是很全面的,并且这也不是后端关注的重点。

    ·前端可以灵活的设计自己的模式,如MVVC;MVVC提供双向绑定,如果又能有自己的路由,前端的灵活性会增强很多;而MVVC模式本身是对SEO友好的;这样框架如angularjs;

    ·当然大多数开发都可能关系到后端的模板问题,后端模板有些语法以及模板复用都不是很好,这个时候我想我们在不能抛弃这个模板的时候最好的办法就是将后端模板封装到模板底层,而新的模板引擎可以采用我们所喜欢的模板如handlebar,reactjs等等;这样对于后端就可以做到只负责提供数据无论是像mvc式的侵入页面还是ajax都可以做到完全的前端化,前端再也不用去关心后端模板的复杂语法问题,虽然可能也要学习新的模板语法,但是简单的多。

  • 相关阅读:
    flexbox弹性盒子布局
    LAMP环境 源码包安装
    用条件注释判断浏览器版本,解决兼容问题
    事件冒泡和事件捕获
    为js和css文件自动添加版本号
    uEditor独立图片上传
    修改netbeans模版头部的说明
    thinkphp多表关联并且分页
    thinkphp 独立分组配置
    荣耀路由HiLink一键组网如何实现?
  • 原文地址:https://www.cnblogs.com/monion/p/5001011.html
Copyright © 2011-2022 走看看