最近从网上看到一些关于前端工作细分的问题,前端工作可以分为两种,一种是偏静态,即HTML、CSS开发,一种是偏交互,即JavaScript、前台逻辑和前后端交互。这两种工作对人的要求是相差很大的,偏静态的可以不涉及太多编程和逻辑,但要求心细、能把握细节、对视觉体验非常敏感、对用户体验有一定的理解、能忍受IE6等浏览器带来的痛苦、能持续学习,而后者对JavaScript要求较高、要有一定的编程能力、熟悉前后端协作模式、熟悉HTML和CSS、有一定的前端架构能力。有人说这样做会使得页面功能模块的开发维护变得割裂,一定程度上限制了js和css的配合方式。
实际上公司考虑的问题更多是成本的问题,管理与效率的问题;找一个交互和静态页面的大牛很难,运气好都很难碰到一个,工作细分有利于降低我们的成本,同时也能提升工作效率。
接下来就谈谈前后分离问题;后端在配合前端完成工作的时候,很容易对逻辑的界限分不清;这里的逻辑指的是业务逻辑,数据逻辑,交互逻辑等等;我们为什么要做前后分离的工作呢?我想首先是降低维护的成本,让大家专注于自己所擅长的事情,就是让大家在自己所擅长领域工作觉得非常爽;公司当然希望我们通过解决这样的问题来实现效率的提升,管理,维护的成本降低。
先看看这些现象:
1、前端开发的时候,在交互层次上对交互逻辑的一致性要求的非常严格如:在某个场景下,删除,修改,添加等等操作逻辑应该一直,对用户友好的提示都应该一致;所以他们的布局,渲染等等都会有统一的原则;但是我发现对于某些特殊的场景,我们并不需要保持这种一致性,严格的这种一致性反而会让人觉得这种实现很low;
2、后端在开发的时候,由于与前端没有得到有效的沟通;很容易陷入对前端交互逻辑的思考或者对一些处理逻辑的工作分配不均,造成谁来维护无法确定;也可能由于有效沟通的缺乏使得后端对自己逻辑工作划分的不清楚,将逻辑处理变得复杂化等等.
3、前后分离目前很多成熟的框架提供了很好的支持,听得比较多的如MVC,View first,MVVC等模式,思想上又有什么组件化思想,MVC思想等等,模板上还有handlebar,angularjs,reactjs, 当然服务端的模板就更多了;但是我们发现虽然有这么多的技术支持,但是我们在解决前后分离这个问题上,我们还是没有很好的办法来做到完美;这里面有很多原因,我想我们自身使用的框架本身就是一种限制,并且随着需求的复杂,这种限制会越来越明显。
理想情况下,我觉得如果我们有一些好的模板,好的方式,在前后端沟通恰当的情况下,每个人能专注于自己的工作,前后端互不依赖;要说依赖也就是后端是否会提供数据给前端;我们有一些好的模板这种模板既能使得对SEO友好,又能解决前后分离的问题