前后分离问题?

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

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

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

先看看这些现象:

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

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

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

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

时间: 2024-10-19 13:56:32

前后分离问题?的相关文章

SQL Server 分离与附加数据库

分离数据库 1.选中要分离的数据库,鼠标右键选择任务->分离,在弹出框内点击确定即可. 附加数据库 1.在SSMS对象资源管理器中,鼠标右键数据库菜单,选择附加. 2.在弹出框内,点击添加按钮,然后找到数据库主文件所在地,点击确定按钮即可.

mysql读写分离的三种实现方式

1 程序修改mysql操作类可以参考PHP实现的Mysql读写分离,阿权开始的本项目,以php程序解决此需求.优点:直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配缺点:自己维护更新,增减服务器在代码处理 2 amoeba参考官网:http://amoeba.meidusa.com/优点:直接实现读写分离和负载均衡,不用修改代码,有很灵活的数据解决方案缺点:自己分配账户,和后端数据库权限管理独立,权限处理不够灵活 3 mysql-proxy参考 mysql-proxy

mysql主从复制与读写分离

MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部

SqlSugar ORM已经支持读写分离

目前只有MYSQL版 3.5.2.9 支持,其库版本12月3号更新该功能 用例讲解 using (var db = new SqlSugarClient("主连接字符串", "从连接字符串","可以多个从连接")) { var list= db.Queryable<Student>().ToList();//走从 var list= db.Queryable<Student>().ToJson();//走从 db.Inse

前后端分离的一些尝试

背景 目前使用SpringMVC框架进行开发,用户访问controller的url,controller收到页面数据后分发给serverice做处理,处理完后在controller中根据页面所需要的数据进行整合,最后将打包好的信息发给指定的页面. 根据上图我们可以看到,数据的整合是在controller层上做处理的,而页面则对整合的数据进行对应的显示,两部分需要对应好,如果增加一个对应的控件涉及到后台的数据,则页面和后端都需要修改,即使该空间的service已经存在,也需要在controller

mysql读写分离

mysql读写分离  静态分离:直接将服务器地址写入程序  动态分离:通过代理服务器对数据进行读写操作,由代理服务器判定读写操作,在主服务器上写数据,在          从服务器上读数据.    1.使用mysql-proxy实现读写分离  # ./mysql-proxy --proxy-backend-addresses=10.0.5.150:3306 --proxy-read-only-backend-addresses=10.0.5.151:3306 --proxy-lua-script

测试ReplicaSets读写分离和故障转移

读写分离实现步骤: 从库能够进行查询就更好了,这样可以分担主库的大量的查询请求. 1) 先向主库中插入一条测试数据 rs1:PRIMARY> db.c1.insert({age:30});db.c1.insert({age:30}); WriteResult({ "nInserted" : 1 }) rs1:PRIMARY>  db.c1.find() db.c1.find() { "_id" : ObjectId("5791ef011f4c6

LAMP基于FastCGI分离部署应用

实验目标 本次LAMP搭建在CentOS 7虚拟机上,基于 php-fpm(Fastcgi)实现httpd.php-fpm.mariadb三者分离,并且在LAMP上部署应用,用两个虚拟机一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress:且提供 xcache加速. 实验环境部署如下: httpd 172.18.12.7 httpd-2.4.6-40.el7.centos.x86_64 php-fpm 172.18.12.8 php-fpm-5.4.16-36.el

mysql-proxy源码安装及配置mysql读写分离

安装Mysql-proxy关联系统包 libevent libevent-devel glib2 glib2-devel lua 5.1.x lua-devel-5.1.x pkg-config mysql-devel openssl openssl-devel gcc* 2安装MySQL-proxy 0.8.5 下载源码包并解压 在源码包路径下安装 ./configure –prefix=/u01/mysql-proxy make make install 3.配置mysql-proxy.cn

线程的控制与分离

线程的控制 线程的创建: 线程创建函数:int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void *(*start_routine(void*),void *arg); 返回值:成功返回0,失败返回错误号. 在一个线程中调用pthread_create()创建新的线程后,当前线程从pthread_create()返回继续往下执行,而新的线程所执行的代码由我们传给pthread_create()的函数指针star_ro