1、运行环境不同
(1)Web前端代码主要在客户端(PC、手机、pad)运行;
(2)Web后端的代码主要在服务端运行,服务器可以在提供服务厂家的数据中心,也可以在云端。
2、与用户紧密关系不同
(1)前端重用户体验,主要是考虑怎样能让用户觉得用起来更舒服,考虑界面布局、交互效果、大数据量页面加载速度等等,主要是偏向用户看得见的部分,客户端(pc、手机、pad)上浏览web页面,处理各个浏览器平台的兼容和对界面的渲染差异,对UI库的依赖较强;
(2)后端更多是考虑业务逻辑、数据库表结构设计、数据的事务操作、跨平台API设计、负载均衡、应用和服务部署等等,更多的是考虑用户看不到的部分,保证业务逻辑处理数据的严谨,保证用户访问数据吞吐的性能。
3、需求变更带来的影响不同
(1)前端主要怕系统原型的频繁变更,布局样式、交互效果的需求变更;
(2)后端主要怕业务逻辑变更,或者当使用规模增大之后对稳定性带来的影响。
作为一名IT从业者,同时也是一名计算机专业的教育工作者,偶来回答一下这个问题。
首先,在软件开发进入按角色划分的时代之后,尤其是在Web2.0之后,前端开发人员并不需要掌握后端开发技术,前后端分离的方式不仅能够提升开发的效率,同时也会在一定程度上保障软件开发的稳定性和扩展性,对于系统的性能也有比较积极的影响。
但是随着移动互联网的发展,尤其是云计算的落地应用之后,前端开发人员的岗位任务边界在不断得到拓展,前端开发后端化是一个比较明显的发展趋势,当前前端开发人员也可以走全栈开发路线了,从这个角度来看,当前前端开发人员要想有更大的职场价值,掌握一定的后端开发知识还是有必要的。
从软件开发的角度来说,前端开发人员掌握一定的后端开发知识,也能够在一定程度上提升自身的沟通能力,对于软件开发团队的合作也会有比较积极的影响。在云计算、大数据时代,前端开发人员在学习后端开发知识的过程中,应该更重视云计算平台的作用,未来前端开发人员基于PaaS可以完成很多后端服务的整合,这种开发方式不仅能够降低行业创新的门槛,也更容易围绕技术平台来构建产业生态。从这个角度来看,未来更多的技术平台会逐渐拓展前端开发的功能边界,以促使更多的行业企业可以加入到平台的生态体系中。
前端人员学习后端开发技术,可以从Nodejs开始,一方面前端人员学习和使用Nodejs比较方便,另一方面当前Nodejs的应用也比较普遍。另外,在学习Nodejs的过程中,也会连带学习一系列后端知识。
偶从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,偶会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注偶,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信偶!
简单说:
1.从 cs 维度来说,前端就是浏览器 web 客户端开发,后端是服务器开发。
2.从开发语言来说,前端就是 html + javascript + css,后端就是 java or asp.net or php or ruby or python 提供的 wweb 服务。
3.如何选择,你应该都要会,若果非要分先后,最好先后端,这样有大局观。