前端和后端是计算机行业最常用的两个术语;在某种程度上,它们成了流行语。它们决定了你作为软件开发人员的工作类型、你使用的技术以及你得到的报酬。
那么,让我们来谈谈这两个术语之间的区别,它们为什么首先存在,以及你在软件开发职业生涯中可以采取的不同路径。
站点呈现
用外行的话说,站点呈现意味着生成或呈现HTML输出。HTML是web开发人员用来创建网页的标记语言。据说站点呈现可以在服务器端或客户端级别进行,那么这意味着什么呢?值得注意的是,前端和客户端是同义词,后端和服务器端也是如此。
客户端呈现(前端)
在更现代的时代,出现了一种新的站点渲染形式,称为客户端渲染或前端开发。
通过客户端呈现,内容的呈现在你的计算机中进行,而不是使用事实上的web语言JavaScript在远程web服务器中进行。实际上,这意味着服务器只需为原始web应用程序提供服务,浏览器将负责以最终形式HTML呈现此应用程序。它还意味着创建网页所涉及的一些逻辑,特别是负责处理如何在屏幕上向用户呈现事物的逻辑(称为呈现逻辑),在客户端进行处理。
随着Angular、React和Vue等JavaScript库的出现,客户端呈现变得越来越流行。
服务器端呈现(后端)
直到很久以前,服务器端渲染或后端web开发才成为创建网站和web应用程序的实际方式。你访问页面,发送内容请求,服务器处理该请求并创建一个响应,该响应将发送回浏览器。
当站点呈现服务器端时,创建web浏览器可以理解的HTML页面所涉及的所有过程都在承载该网站或web应用程序的远程服务器上处理。这包括查询数据库中的信息和处理web应用程序所需的任何逻辑。
远程服务器工作繁忙时,你的web浏览器处于空闲状态,等待服务器完成处理请求和发送响应。当收到响应时,web浏览器将对其进行解释并在屏幕上显示内容。
同构呈现
也称为通用呈现,是现代web开发中使用的一种新技术。同构呈现背后的思想是,在第一次加载页面时在服务器端呈现使用JavaScript框架(如Angular、React或View)开发的web应用程序,之后在客户端呈现。更为复杂的是,还有另一种形式的呈现称为预呈现,它在编译时呈现内容。
在何处呈现站点通常取决于应用程序的类型和应用程序统计信息,并且会因团队和企业而异。
什么是前端开发?
现在我们了解了不同类型的站点呈现方法,更容易理解前端开发是创建在客户端呈现的站点和web应用程序的艺术。
用于前端开发的技术
虽然有许多不同类型的技术和堆栈,但大多数前端web开发人员使用HTML、CSS和JavaScript,它们是web事实上的构建块,以及客户端框架,如Angular、React、Stencil和Vue。不过,并非所有事情都发生在前端。客户端呈现的应用程序仍然依赖于在后端远程服务器或云上运行的服务和API。
什么是前端工作?
网页设计师:你猜对了,网页设计师设计网站。不过,网页设计师的头衔相当宽泛。网页设计师可能只是在Photoshop或Fireworks之类的程序中设计网站的人,而且永远不会触碰代码。但在另一个地方,网页设计师可以在Photoshop中完成所有的设计组合,然后负责创建所有的HTML和CSS(有时甚至是JavaScript)来配合它。
用户界面(UI)设计器:这基本上是一个可视化设计器,通常侧重于设计。他们通常不参与设计的实现,但他们可能知道轻松的HTML和CSS,这样他们就可以更有效地与前端开发人员交流他们的想法。
用户体验(UX)设计师:UX设计师在前端工作,研究人们如何使用网站。然后,他们通过大量测试进行更改。
前端开发人员:也称为前端设计师,他们可以创建一个没有任何后端开发的站点。他们在没有web开发人员或使用后端的情况下创建的站点是静态站点。静态站点类似于餐厅或发廊的站点。它不需要在数据库中存储任何信息。页面几乎总是保持不变,除非是时候重新设计了。前端开发人员可能需要掌握测试,并且精通HTML、CSS和JavaScript。此人可能有也可能没有在设计程序中创建设计的经验。这个标题的另一个版本是前端工程师。使用特定前端语言(如JavaScript developer)的人也被视为前端开发人员。
什么是后端开发?
前端开发是让站点和web应用程序在客户端呈现,而后端开发则是让这些应用程序在服务器端呈现。但它比这要复杂一点。虽然前面的说法是正确的,但后端开发人员也创建处理业务逻辑和访问其他资源(如数据库、文件服务器、云服务等)的服务。这些服务是任何应用程序的主干,不仅可以由服务器端渲染应用程序访问和使用,还可以从客户端渲染应用程序访问和使用。
用于后端开发的技术
当后端开发人员创建在服务器端呈现的应用程序时,他们使用与前端开发人员相同的构建块:HTML、CSS和JavaScript。
后端开发人员还使用软件堆栈,包括操作系统、web服务器、框架、语言、编程API等。这些堆栈中的框架、语言和编程API用于呈现服务器端站点和web应用程序,并创建其他应用程序可以使用的服务。
什么是全栈开发?
作为一名完整的堆栈开发人员,您可以同时完成前后端两项工作。全栈开发人员可以创建同时在客户端(前端)和服务器端(后端)呈现的站点和web应用程序。
他们还创建服务、组件和API来封装业务逻辑、解决特定的业务问题和访问数据库、文件服务器、云服务等基础设施。他们的工作与完整的堆栈,这是最好的两个世界。