一名有前端工程师,除了掌握自身知识体系外,在业余时间也应该了解下后端的知识时间,由于前端与后端工作是最最密切相关的,多学习些后端知识对自身也是大有好处的。
1、后端语言
后端语言用来写后台的三巨头:php、JAVA、ASP.NET三门语言各有特色,php轻量级开发,适合开发论坛和bbs的后台。java就不用说了,比较大型的项目的后台都是用java写的。工作的需求也是很大,但是从业的人员也是 非常多的,ASP.NET是微软提出的开发后台的一门技术。但是因为跨平台的特性不好的原因。是干不过Java的不过听说最近微软最近在搞跨平台性。你是前端工程师的话,可以考虑学习node.js,它给前端转全栈算是一条路吧JAVA的话学习要花费很大的精力和心血。毕竟大牛比较多,但是现在主要需求还是Java吧。
2、数据库
要懂得数据与数据库的交互过程,日常表的一些操作。 了解一下数据库的优化知识,对于使用数据库的Web站点来说,数据库性能关系整个web应用的性能,如果数据库性能不佳,其他的优化工作也是徒劳无功。所以优化数据库性能, 对提高整个web应用的效率有着举足轻重的作用。
1、 表的设计要规范,即要符合数据库设计范式。
2、 适当建立索引,在频繁作为检索条件,更新较少的字段上建立索引,以提高查询速度。
3、 分表查询,有水平分割、垂直分割。
4、 读写分离,读(read)、写(create、update、delete)。
5、 建立存储过程。
这里特别想提到的是拆分表格这一点。最简单的诸如,根据用户ID的最后1位的数字将其拆分成10个表,即 0,1,2,3,4,5,6,7,9。 这种平行的拆分方式,一方面,可以解决单个数据库并发连接数的限制,另外一方面可以控制单表的大小。很有效的一种优化方式,特别在于解决高并发的需求。
3、负载均衡技术
单台Web服务器处理能力有限,单台服务器承受的压力达到极限时,需要有更多的服务器分担工作,我们需要想办法将流量合理分配到更多的服务器上。 任何的负载均衡技术都要想办法建立某种一对多的映射机制: 一个请求的入口映射到多个处理请求的节点,从而实现分而治之(divide and Conquer)。 这种映射机制使得多个物理存在对外体现为一个虚拟的整体,对服务的请求者屏蔽了内部的结构。 采用不同的机制建立映射关系,可以形成不同的负载均衡技术,常见的包括:
- CDN
- HTTP重定向
- 基于DNS的轮询解析
- 反向代理服务器
摄图网https://www.wode007.com/sites/73204.html VJ师网https://www.wode007.com/sites/73287.html
4、缓存技术
随着网络的发展,数据越来越多,从而导致运算的压力越来越大,为了解决这一问题,就需要合理分级计算资源,充分利用已有资源。缓存的工作实际上计算资源的合理分配。 缓存 (Cache) 原意是指可以进行高速数据交换的存储器。当CPU处理数据时,先到 Cache 中寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从随机存取存储器中读取数据了。 现在缓存的概念已被扩充,凡是位于速度相差较大的两种介质之间,用于协调两者数据传输速度差异的结构,均可以称之为 Cache 。 在 web 世界,理论上每一层都可以被缓存。以php应用为例:
底层有CPU缓存,磁盘文件系统缓存
数据库层有 Table Cache,Query Cache Apache和Ngix的缓存
应用程序代码级别的Smarty实现的文件缓存
基于HTTP协议和浏览器自身实现的浏览器缓存
基于NoSQL系统的缓存(redis, memcached)
当然除了上述这些,计算机网络、数据结构和算法、计算机组成和原理、离散数学等知识都要涉及。