前后端分离的开发模式
前后端分离的开发模式,原本觉得没什么稀奇的玩艺,在最近参与的一个大型项目中,让我有了更深的理解。
前后端分离的开发模式:系统分析阶段,系分和前端开发人员约定好页面上所需的逻辑变量,进入功能开发阶段,前端开发人员进行前台页面结构,样式,行为层的代码编写,并根据约定好的变量,逻辑规则,完成不同情况展示不同的表现。而后端开发人员,只需要按照约定,赋予这些变量含义,并提供前后端交互所需要的数据即可。
以前自己在php上玩过mvc开发框架,但是没有在这么大型的项目中实践过,所以过程中暴露出一些问题,也说明现实和理想还是存在一定差距的。
对项目中遇见的问题做了如下纪录:
A.对交互白板的理解不足,如:对ajax实现大批量数据交互的实现,没有及时给出改进的建议
B.系分阶段产出的约定变的非常脆弱,开发过程中不时有新的东西和变更的东西出现,这就导致后面的前后端协作开发有些纠结
C.项目过程中,由于前期与需求方,设计师,系分的沟通力度不够,导致开发过程中发现很多考虑的不够周全的地方
D.项目开发过程中前后端开发资源的配比上较为悬殊,在后期频繁需求变更中,前端一直处于:勉强应付状态
可见,上面提到的这些,多是沟通和协作上的问题,以下是对这次初体验的小结,希望对前端开发工程师有所借鉴:
沟通:项目开发之前,尽可能主动的和系统分析师和交互设计师多沟通,确定页面中交互与服务器端交换数据的接口、方式、格式等,让前后端约定更丰满一些。因为她越丰满,后面的纠结就越少。
A.向前设计,参与到前期的交互设计的讨论中去,去理解设计,向后开发,去了解后端开发工 程师关心的是什么,不想要关心的是什么,担心的是什么,学会站在对方的角度上去看问题
B.必须确认交互白板中各类出错场景以及出错提示文案是否完整,要求后台开发人员补充交互设计师无法知晓的后端异常出错的场景,并要求交互设计师给出相应的提示文案
C.明确交互效果中,哪些是需要通过ajax实现的,并与开发人员约定好数据接口,方式,格式等,并确认数据交互失败的情况下是否有文案提示,如无,主动找交互设计师补充该类场景的文案提示
协作:功能开发过程中,需要建立一个共同调试的环境,方便前后端同学协同开发。
A.有些数据接口api以及数据格式也许会到开发中才能够确认下来。可以有个接口文档。如果大家都知道彼此对业务规则都熟悉,可以在开发中逐个确认。无论如何,接口文档是必须的。它记录着在系统层面对业务的抽象。接口细节可以在开发中逐渐完善。
B.总有那么一些文件,是前后端开发人员都会修改的。这些敏感文件,修改前以及修改完毕都要知会后端开发人员。而且要养成edit前update的习惯。如果出现冲突,冲突最好能够一起解决,或者及时告知。避免再次冲突。
C,项目中前后端资源配比应该适当,1:10的资源配比想推起前后端分离的开发模式还是比较困难的,个人认为1:3是比较适中的配比。
出于前后端资源配比,系统分析阶段还不够详细等原因,在一些大型的项目中,对分离开发模式进行了一些调整,说实在的有些不得以,但是这应该是目前最符合现状的前后端分离的开发模式,抱着发展的眼光向前看,前端不断壮大之后,应该会有让人满意的答卷的!
在功能开发阶段,由于项目比较大,一般会分解功能,这样的话就很难提供出一个功能相 对稳定的前后端共同调试环境,再加上资源配比太过悬殊,所以建议在功能开发还不稳定这个阶段,前端开发资源以协助开发的角色进入,由后端开发人员参照系分阶段约定好的数据类型和接口提供数据和嵌套页面逻辑,当功能开发相对稳定以后,前端开发人员对嵌套后的前台内容进行验收,此时,前后端开发的DEBUG工作就可以并行操作了。