1.开发角色
- 前端程序员:主要是处理前后端的数据处理,用户交互,提供可视化的操作界面。
- 后端程序员:主要是处理数据存储,向前端提供接口的支持
- 全栈程序员:兼并前端,后端的开发,需要开发者具有非常强大的思维逻辑和丰富的开发经验。
2.学习方向
(1. 前端技术栈
- 三剑客:HTML,CSS, JAVASCRIPT(含H5,CSS3,Es6)
- 连接技术:AJAX, AXIOS
- 旧框架技术:Jquery, Bootstrap, layui
- 新框架技术:Nodejs, Vue, React, 微信小程序,Uniapp
(2.后端技术栈(主流)
- Nodejs后端:Express框架,Koa框架,Eggjs框架
- Php后端:Laravel框架,ThinkPhp框架, CodeIgniter框架
- Python后端:Django框架,Flask框架
- Java后端:SpringBoot框架, SSM集成框架
注意:后端技术栈,只要掌握一门语言的后端框架,就足以开发一个全栈项目。
3. 数据库存储
(1.数据库简介
在学习编程的时候,我们了解到在本地可以通过文件存储,而网站则是通过数据库存储的,按照一定的规律将数据整齐地存储在数据库中,然后也可以从数据库中提取数据。
(2.数据库的类型(经典)
- 小型数据库:MySQL数据库
- 中型数据库:SQL Server数据库
- 大型数据库:Oracle数据库
以上是经典的数据库,目前会根据业务需求使用不同的数据库,如SQLite, MongoDB, Dynamo等
(3.使用场景
- 小型数据库,MySQL 数据库,适用于个人开发,中小型网站,永久免费开源,配合navicat使用,可以快速设计数据库。
- 中型数据库,SQL Server数据库,免费版本的只提供学习使用,而生产需求单独购买,值得一提的是,它可以存储更新庞大的数据量,在运行效率上 也是非常高效。
- 大型数据库,Oracle数据库,同样是生产需要购买,一般的网站不会考虑这个数据库,因为它巨大的数据库,对计算机的资源占用也非常大。只有超大型的平台,才会使用。
4.开发技术难点
(1.全栈开发技术
- 全栈开发技术,常以后端为主,这是因为全栈技术,把更新的数据处理放在服务器端。
- 当前这种技术采用cookie和session进行认证。而session的使用,也是基于cookie实现的。cookie存在于客户端中,可以由客户端进行设置。而session存储在服务器中,只能由服务端进行设置。session技术认证通常被称为会话认证。
- 会话认证,只服务端和客户端进行连接的一种方式。服务端对认可的会话会生成会话id存放在服务端,下一次客户端进行访问,就会从存储仓库里面查找是否存在这个会话id。
(2.前后端分离技术
- 前后端分离技术,有一个重要点,就是接口。而这里的接口,说的就是向后端发送请求,然后收到的响应信息。以前常用xml技术作为信息的载核,现在常用json数据作为信息的载核。json数据以更加清晰的数据格式,有大的数据承载量,得到越来越多开发者的青睐。
- 而开发后端接口,会遇到两大难题 : 一 是跨域问题。二是认证问题。
- 首先来说跨域的问题,那为什么会出现跨域?而域指的是什么?浏览器设置了一个安全机制:在不同域,不同协议,不同端口都不允许进行数据的访问,因此不同站点是不允许资源共享,所以在向不同站点发送请求,都会被浏览器拦截,显示csrf 禁止站点资源共享。在解决跨域层面,有非常多的解决方案,而最受欢迎的是后端cors跨域资源共享方案。后端指定站点跨域访问,目标站点即可正常通信。
- 现来来说如何进行认证。在全栈开发技术下,都使用cookie和session进行认证,而在分离技术下,不存在会话连接。每次访问,都会刷新上一次访问的记录,因此,服务端每次收到的都是新的会话请求。当前的后端处理方法是JWT方案。JWT是一种后端生成令牌签名,如果需要认证,则要在请求冰头上携带这个令牌。后端收到请求后,对请求头上的token字段进行验证,如果签证是合法的,则认证成功,后端即认可当前请求的资源访问。