这个问题问的很大。从几个角度来回答吧。
第一,从业务需求和性能考虑,要定义清楚哪些数据结构是放在前端的,哪些数据结构是放在后端的,哪些是只需要取一次以后就缓存在前端的,哪些是每次都需要与后端通讯的,哪些是需要实时响应的,哪些是需要推送的,等等。只有把这些全部考虑清楚并且和全体项目组成员充分沟通,前后台开发人员都共同认可这个架构之后,才可以开始考虑如何设计后台的问题。
第二,开始后台设计时,首先要考虑的是数据库的选型,这又是一个很大的话题,这里先不详细讨论。理论上来说什么样的语言都可以配备任何数据库,但也并不尽然。Mongodb最好用node.js,PHP行不行?当然也可以。如果接口是restful,那可能选择postgresql比mysql要更好,因为它自带有rest接口,连开发都不用开发,但是安全性如何保障?支不支持jwt?性能如何?这些问题都需要考虑清楚。事前的大量调研和经验能节省大量时间,不要盲目投入进去开发。
第三,数据库和开发语言都选定的情况下,还要看是不是采用现成的框架,即便PHP也至少有10种以上框架可以选择,框架的选择可以达到事半功倍的效果。现阶段前后台接口主要采用json通讯,不太会采用soap协议。不过也要看是同步还是异步,通常情况下会用异步ajax通讯,但也可能需要同步通讯,那就要用到websocket。即使用json,也有自己直接定义自己的json字段的方式和采用rest方式的选择,如果采用rest方式必须考虑安全性的问题,因为ajax是无状态的,没有session和cookie可用。
最后,就是人的因素,开发周期不可能无限制长,没有时间让每一个人学习,所以还要考虑团队成员对哪些语言哪些数据库哪些框架比较熟悉,在系统性能和开发速度上达到平衡。