先后端分离如今火了不少年,在实际中新技术的使用通常是先在一些大厂中采用,好比在招聘网上大厂的前端招聘node要求比较高,而在中小型厂中对node的要求只是会用webpack打包工具以及npm包管理就能够了。最近几年传统公司、中小型公司开始构建先后端分离模式,先后端分离的好处网上文章不少,简单说前端能够专一前端的开发,后端专一后端开发,开发效率和质量都会获得提高,但在实际项目组中由于不少leader资历比较老,思惟方式仍是传统的软件开发的思惟,因此构建出来的团队只是先后端分离的形。我分享下我转前端以来待的3家公司先后端分离模式踩的坑,也本身整理总结下先后端分离模式中要提早作好的协调和准备。前端
我以前是作.net,作的项目大部分是后台管理系统,那时候没有分前端后端,通常是一个功能从数据库到前端一块儿作,因此工做按时间分布一半时间敲C#代码一半时间写js,那时候后台管理对页面美观的要求不高考虑开发效率因此通常都是用extjs、jQuery easyUI以及后面出来的bootstrap把样式封装好了,只要用里面的组件拼接页面实现业务逻辑就能够了。但随着C#在市场的需求愈来愈少,开始感受到危机,考虑要不要转行。那时候在开发群认识一个大佬招前端Vue,当时Vue刚出来没多少久,很难招到人只能改变招聘要求找原生js基础相对比较好的,就这样我进入了这家创业公司也正式进入全职前端行业。这家公司后端3我的前端3我的,先后端的比例1:1。vue
由于团队不大并且先后端框架都是开发老大搭建的,对前端和后端都有所了解,因此先后端合做的矛盾没有那么突出,但也有些问题和矛盾,这些矛盾在我后面两家公司凸显的更加明显。node
接口文档在开发的哪一个阶段出来。这家公司的模式是边开发边出接口文档,也就是开发完一个出一个,这种方式的缺点在后面详细说到,由于团队不大因此致使的现象不突出,没有成为开发效率的主要限制因素,但也会出现前端没事情作等后端接口文档,开发完以后前端bug比后端多一些。webpack
用前言vue1.0开发,开发中不少不方便和坑,2.0作了不少优化,太注重组件的复用,想把全部差很少的都封装成一个组件致使if太多太过复杂难以维护。程序员
最后由于产品一直上线不了加上公司内部结构问题产品和研发各类甩锅挣权,产品挣权成功占主导,研发陆续走人崩离瓦解。web
第二家公司的开发模式比较传统,由于后端的发展历史比前端长不少,复杂度都比前端多这是事实,项目重点业务部分和数据库都是在后端,因此通常都是后端的当研发技术老大无可厚非,若是老大只作事后端的开发没怎么接触过前端,前端在公司状况相对后端会差些。
先说说这家公司研发组织结构到我在职的后期,后端13人左右平均工做年限3~4年左右,前端8人左右平均工做年限1~2年左右,也就是后端大部分是3年以上的,一两个是1年左右的,前端大部分是1~2年左右,这些当中不少是非计算机专业后面培训转前端的,一些是刚毕业的。我虽然工做3年以上,但作全职前端也才不到两年。由于这种人员结构,后端都是老油条(其中有几个脾气不大好),前端都是刚毕业没多久的小鲜肉(比较内向害羞),联调的时候可想而知后端是大爷前端是跟班。数据库
说说我我的感受这家公司开发中存在的问题:npm
接口文档在开发的哪一个阶段出来,接口文档出来的时间点也是和上家同样,可是由于工做量大、团队大致使这点是开发效率的主要限制因素和后面出一系列矛盾出现。直接致使的问题是开发前期前端只能作静态页面,中期一直在等后端出文档,有些比较负责的前端就会不停的追问找对应模块的后端,问他打算这块返回的数据格式是什么样的。因此常常看到有几个前端常常日后端跑,后端有点烦没好气的说我如今没空或者心情好点话就讲一下。bootstrap
由于写完接口出文档,致使快到提测时间节点上是前端最忙的时候要敲后续的处理数据相关的代码,由于时间比较紧因此先把大概功能处理完就提测,致使测试那边反应前端不细心,细节问题一大堆。后端
基于上面缘由,老板询问项目进度每次都是后端作完了,前端没作完,说前端进度慢,bug还多,前端背锅。
程序员天生抗拒写文档,因此常常出现文档字段说明不详细(遇到牛逼的理由是看英文单词就知道什么意思啊),前端字段理解没到位因此常常出现字段绑定问题的bug。
人的天生惰性,联调前端调用后端接口,测试接口都交给前端,后端写完就无论了。
业务处理的先后端分工不明确,主要看后端领导的性格,后端领导在公司地位高些,后端领导是怕麻烦那种性格,麻烦的处理前端能作居然给前端,前端不能作才给后端作,没考虑过浏览器的处理能力、带宽限制、安全性因素(讨论中后端老大曾说也不会把浏览器搞死机,也就是只要浏览器不死机就行)
前端团队平均技术水平不高(毕业不久的占比大)
先后端沟通成本较大,后端不少没作过前端,前端不少没作事后端,沟通解释时间较长,前端对项目的业务逻辑理解不深,后端对接口文档不重视不知道接口文档对前端的重要性。
后面屡次向上反映没有什么改善,后端以为先出文档作不到后端老大一直不以为这是很大问题,最后选择离开。
如今就任的是一家上市公司背景的分部,工做节奏有点慢,先后端分离也有接口文档出来时间问题,文档字段描述不清楚的问题,但由于节奏慢因此问题没那么突出,前端压力没那么大。并且项目负责人比较nice能接收别人建议的人,但改变是按部就班,在这家公司感受我的佛系了不少。在公司很闲适合养老,固然不少会说养老公司趁早出来,通过思考我留下来有如下缘由:
刚换了一家立刻又走频繁跳槽有点累。
每家公司或多或少都会有点问题,但换了几家都是这种问题说明本身的技术就只能找到这种公司,进不了要求更高的公司,接着换公司也解决不了问题,提高本身的技术才是关键。
业务代码很少恰好能够多看看书,看看网上一些好的插件的源码来提高本身。
年纪大了,有点中年危机,常常听吴军的《谷歌方法论》,其中提到it年纪大没有竞争力是由于格局和能力没有随着年龄一块儿增加,想着这段时间多看点书多学习提高本身的技术水平和思惟方式。