前端、后端基础介绍

发布于 2023-01-31 882 次阅读 预计阅读时间: 9 分钟


前端

前端开发就是开发网页上的内容展示和用户的交互,内容展示包括网页上看到的图片、文字、等信息。用户的交互指的是用户在页面上点击某个按钮,输入文字等动作,然后前端对用户的输入进行响应,比如更新页面上的内容。

前端开发用到的基础技术是html、css、javascript,分别用来控制网页里的内容、视觉效果、与用户交互

html:

并不是一门编程语言,是一种用来定义结构化数据的标记语言,看到的网页其实就对应一个html文件,浏览器的任务就是把html代码渲染成你看到的样子,前端工程师的工作之一就是编写html代码,或使用一些技术为页面动态的生成html代码

css:

css代码是用来指定每个html标签以什么样的外观和风格展示,比如长宽,位置,颜色,居中,字体,显示属性等,css代码也是由浏览器进行渲染,有时候你想调整网页里某个按钮的大小,颜色,其实就是由前端工程师来改动这个按钮对应的css代码来实现的

javascript:

简称js,是前端开发中真正编程的部分,网页如何与用户交互,与后端交互,都是通过js代码实现的,js代码也是交给浏览器来执行

大家在写程序的时候,不管使用什么语言,都不会“重复造轮子”,而是会调用该语言现成的library来实现一些常见功能让开发的过程更加高效。

对于前端js开发,react是目前比较流行的library,它可以用来实现与用户的交互逻辑和事件响应,而且页面上几乎全部html代码都可以通过react来生成,这种在浏览器端生成html代码进行渲染的方式叫做client-side rendering,与之相反的是server-side rendering,也就是页面完整的html代码是全部由网站的前端服务器生成好后再发给浏览器,(前端服务器的逻辑可以通过任何编程语言实现,比如java,js,python,php),这两种渲染方式各有优缺点,所以前端工程师在开发网页的时候要根据实际情况。

除了react,另一种国内比较流行的js library是vue(尤雨溪懂个锤子的vue.jpg)

后端

相当一部分的后端开发工作就是开发数据访问服务,使前端可以通过调用后端服务对数据进行增删查改,从而实现前端对用户的请求响应。

比如在一个网站注册账号,该网站的前端就会调用后端,把你的信息写进数据库 。前端往往需要通过调用后端服务来完成对用户请求的响应,而后端服务往往需要通过查询数据库来完成对前端请求的响应,所以他们都是通过调用靠后的服务来对前方进行响应。

后端工程师的工作范围很广,比较常见的是设计后端服务的api,设计后端服务的架构图,设计后端服务的数据库,写代码实现后端服务的业务逻辑。同时还要保证设计的后端服务访问量很大的时候保持不宕机,并对客户请求的响应时间短。如果要从头搭建一个新的后端服务,那么整个过程需要大量的系统设计,也就是后端工程师面试时会考到的system design,做system design非常考验平时知识的积累。

后端工程师一般需要与后端服务器打交道,和前端服务器一样,后端服务器也几乎可以由任何一种编程语言实现,只要能把正确的数据返回给调用者就行。主流的编程语言也有流行的框架来帮助大家避免造重复的轮子,比如java的框架有spring boot和dropwizard。基于js的有express,基于python的有flask。还有一些后端服务的框架可以支持多种语言来开发而不是绑在特定一门语言上。

而在找工作的时候,并不一定要对他们使用的语言和框架很熟练,对公司来说你会一部分就够了,很多东西都是在工作里学的,而且两周内上手一门新的编程语言是一名职业程序员的基本素养

除了开发和维护后端服务器,后端工程师还会花大量时间在数据库上,不管是为后端服务创建数据库,还是为数据库性能调优,或者是分析里面的数据。目前最常用的数据库是关系型数据库,比如工业界广泛使用的mysql和postgresql,如何设计一个关系型数据库,如何使用sql query来访问数据,以及如何依靠index来为数据查询加速,这些知识点在学校的数据库课程里应该都有讲。但近年来用的越来越多的是非关系型数据库(no-sql数据库),比如基于json文档的MongoDB,基于LSM tree的LevelDB,这些数据库在某些特定情况下会比关系型数据库更适合业务需求,这些基本都是在工作中学习的。

数据库往往是一个后端系统里的性能瓶颈,也就是最慢的一环,因此后端工程师在进行系统设计时会用很多办法,使得后端的性能(比如响应时间)少被数据库拖后腿 ,比如使用缓存系统来加速后端读取数据的速度 。

全栈:

全栈工程师要求能够自己构建和部署一个完整的web app,能够独立编写前端、后端代码、能够配置服务器、能够设计数据库。

那么前端后端到底哪个更好,或者说哪个更好找工作。其实也分不出哪个更好。前端主要考虑用户体验,后端主要考虑底层业务逻辑,平台稳定和性能。 等到了工作的时候,不管你是哪种工程师,要么全干要么摸鱼,非要说的话建议选前端或后端其中一个,但对另一个也要有基础掌握,能做到万一哪天公司缺个后端人手,你可以紧急学一个晚上立马补上位置。

前后端的关系

前端页面可以单独存在,就是所谓的静态页面。一般都是把前端页面元素布局好,再通过接口接受后端的数据。

前端代码,理论上放哪都行,只要有网络且能够请求到后端数据就可以

后端代码,只能放服务器。所以前后端代码一般都放服务器(的不同位置)

前端代码运行在客户端(比如手机app,浏览器)

后端代码运行在服务器(如远程服务器,阿里云)

为什么要分前后端

因为现在前端的东西越来越多,包括web,app,桌面程序都算前端,而后端写好了后可以通过接口(url)链接多个前端,所以分开可以让效率提高。

此作者没有提供个人介绍
最后更新于 2023-01-31