概述
前端作为和用户直接交互相关的开发人员,后端开发则涉及到更多用户看不到的领域,如对数据的存储、加工,平台稳定性、安全性等各个方面,因为涉及到的开发面广,几乎各种语言都运用到了后台开发,比如阿里巴巴的Java生态,百度PHP,Golang。语言并不是后端的限制,作为一名好的后端,学习的是后端的思想:如何搭建更高效的系统?也因此一部分后端的发展规划是“架构师”。
MVC模式
在十几年前MVC模式就已经存在了,可以说是一个非常经典的入门开发模式。但几十年前的代码规模及理念和如今也大不一样。过去的开发并不会分什么前端后端,大家都是一起开发,但现在提倡的是前后端分离,各司其职,同时开发,MVC模式也发生了相应的变化,这里我讲解下我理解的如今MVC基本概念。
![](http://upload-images.jianshu.io/upload_images/744094-3f967ed765829e4c.png)
上图是MVC开发的简单流程图。View层由前端进行开发,前端与后端使用Ajax或Fetch进行交互(大致原理是通过URL进行网络上资源定位,然后通过HTTP方法和JSON进行丰富的交互,如增删改查)。其余则由后端同学负责开发,Controller层负责接受前端发来的请求,并进行适当的加工处理。然后调用Model层进行数据的最终加工。
Model
负责维护数据的相关操作,如新增数据,删除数据等,它所关心的只是自己数据的变化。在面向对象的理念中,一个对象可以是一个Model,比如“商品Model”, 它可以有自己的属性及方法,如增减库存方法。
Controller
负责选择调用哪些Model,比如View层告诉后端X用户要购买Y商品,则Controller层负责调用“商品Model”Y商品库存减1和“用户Model”X用户新增一条购物记录。Controller更像是一个指挥者,指挥着逻辑操作,而Model则保证自己的执行结果正确,让Controller可以放心的使用。
代码本身并不存在View层,Controller层,Model层,这些都是为了编程时更好的理解整个系统而人为设定出来的业务逻辑,所以边界有时也不是那么容易把握,也许Controller层做的事情放在Model层也能做,这时候就是需要对代码的经验和敏锐度进行设计判断了。好的代码不是能运行就可以,而是可以更好的维护更新扩展。
框架
框架的概念是有人帮你设计好了一些逻辑层及功能函数,你只需要在对应的地方写上自己的业务逻辑就可以,比如帮你设置好Controller和Model层,你只需要在Model的文件夹下面写一个商品类,自动就会帮你在数据库中创建一个商品表出来。下面推荐三种语言常用的框架。
Java:Spring
Python:Django
Javascript:Express
数据库
数据库是一个经过设计的高效存储数据,操作数据的软件。你可以选择把数据存储在记事本上面,但如果想读取其中某个数据也许就会很麻烦,所以我们有了数据库。数据库的主要作用就是增删改查数据。现在的数据库主要分为两种:关系型数据库和非关系型数据库。
关系型数据库:数据更像是一个对象,数据与数据使用“表”进行连接,如商品表包括学商品ID,商品价格,商品上架时间,库存数量等。
非关系型数据库:数据是键值对进行存储,它没有表的概念。只是把所有的数据都对方在一起,用类似于Hash的方式进行读取存储。
现在学校所教的基本是关系型数据库,而对这类数据库使用的语言都为SQL类,只是每种数据库有自己的小特点。关系型数据库常见的有:Mysql,Oracle,SQLServer等。非关系型数据库常有:MongodDB,Redis等。它们有各自擅长的使用场景,我们以后再详细介绍。
数据库一般与后端开发中的Model相连接,框架会帮忙处理好代码与数据库的主要连接工作,你只需要添加数据库的地址,密码等基本信息就可以连接,然后由Model自动从数据库里面读数据或者写数据,而如何写的方式则是在Model中实现。
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)