前端和后端是计算机行业中最常用的两个术语;在某种程度上,它们成了流行语。它们决定了您作为软件开发人员所做的工作类型、您使用的技术以及您获得的报酬。
那么,让我们来谈谈这两个术语之间的区别,它们最初存在的原因以及您在软件开发生涯中可以采取的不同路径。
要开始这个旅程,我们需要了解站点渲染的概念。通俗地说,站点渲染是指生成或渲染 HTML 输出。HTML 是 Web 开发人员用来创建网页的标记语言。据说站点渲染可以发生在服务器端或客户端级别,那么这是什么意思呢?值得注意的是,前端和客户端是同义词。后端和服务器端也是如此。
很久以前,服务器端渲染或后端 Web 开发,才是创建网站和 Web 应用程序的实际方式。您访问一个页面,发送一个内容请求,服务器处理这个请求并创建一个发送回您的浏览器的响应。
当站点呈现服务器端时,创建 Web 浏览器可以理解的 HTML 页面所涉及的所有过程都在托管网站或 Web 应用程序的远程服务器上处理。这包括查询数据库以获取信息和处理您的 Web 应用程序所需的任何逻辑。
当远程服务器忙于工作时,您的 Web 浏览器处于空闲状态,等待服务器完成处理请求并发送响应。收到响应后,Web 浏览器会对其进行解释并在屏幕上显示内容。
在更现代的时代,出现了一种新形式的站点渲染,称为客户端渲染或前端开发。
通过客户端渲染,内容的渲染发生在您的计算机中,而不是使用事实上的网络语言 JavaScript 的远程网络服务器。实际上,这意味着只需要一个服务器来为原始 Web 应用程序提供服务,而浏览器将负责以最终形式 HTML 呈现该应用程序。这也意味着创建网页所涉及的一些逻辑,特别是负责处理如何在屏幕上向用户呈现事物的逻辑(称为呈现逻辑)是在客户端处理的。
随着 Angular、React 和 Vue 等 JavaScript 库的出现,客户端渲染变得流行起来。
同构渲染也称为通用渲染,是现代 Web 开发中使用的一种新技术。同构渲染背后的想法是在第一次加载页面时在服务器端渲染使用 JavaScript 框架(如 Angular、React 或 View)开发的 Web 应用程序,然后在客户端渲染。
更复杂的是,还有另一种渲染形式,称为预渲染,它在编译时渲染内容。
在哪里呈现站点是一个通常基于应用程序类型和应用程序人口统计数据的决定,并且会因团队和企业而异。
现在我们了解了不同类型的站点呈现方法,更容易理解前端开发是创建在客户端呈现的站点和 Web 应用程序的艺术。
虽然有许多不同类型的技术和堆栈,但大多数前端 Web 开发人员使用 HTML、CSS 和 JavaScript,它们是 Web 的实际构建块,以及 Angular、React、Stencil 和 Vue 等客户端框架。
不过,并非所有事情都发生在前端。客户端呈现的应用程序仍然依赖于在后端远程服务器或云上运行的服务和 API。
前端开发是让网站和 Web 应用程序在客户端呈现,而后端开发就是让这些应用程序在服务器端呈现。但它比这更复杂一些。虽然前面的说法成立,但后端开发人员还创建了处理业务逻辑和访问其他资源(如数据库、文件服务器、云服务等)的服务。这些服务是任何应用程序的支柱,不仅可以由服务器端渲染应用程序访问和使用,也可以从客户端渲染应用程序访问和使用。
当后端开发人员创建在服务器端呈现的应用程序时,他们使用与前端开发人员相同的构建块:HTML、CSS 和 JavaScript。
后端开发人员还使用包括操作系统、Web 服务器、框架、语言、编程 API 等在内的软件堆栈。这些堆栈中的框架、语言和编程 API 用于呈现服务器端站点和 Web 应用程序,并创建其他应用程序可以使用的服务。
臭名昭著的堆栈包括 .NET、MEAN 和 LAMP,但还有更多,每个堆栈都包括一种编程语言,例如 C#、JavaScript、Java、Go、Python 或 PHP。
作为开发人员,您不必只满足于前端或后端;作为一个全栈开发人员,你可以同时做到这两点。全栈开发人员可以创建在客户端(前端)和服务器端(后端)呈现的站点和 Web 应用程序。
他们还创建封装业务逻辑的服务、组件和 API,解决特定的业务问题并访问数据库、文件服务器、云服务等基础设施。他们使用完整的堆栈,这是两全其美的。
到目前为止,前端和后端之间的差异应该更加明显,以及在线路两端工作的开发人员所进行的不同活动。实际上,前端是指浏览器和后端、服务器或最近的云进行交互。
如果您喜欢用户界面,热衷于声音设计并喜欢创建应用程序的视觉方面,那么也许您最有兴趣成为前端软件开发人员。前端不仅在视觉上令人兴奋,而且从编程的角度来看也是令人兴奋的;您将花费无数时间编写逻辑,以使您的网站看起来和行为符合设计师的预期。
如果您喜欢花时间解决业务问题、编写算法、在云中工作以及创建服务和 API,那么后端开发就适合您。
如果您两者都喜欢,并且对 Web 应用程序创建的各个方面都感到同样兴奋和舒适,那么作为全栈开发人员的职业就是您想要的。
无论您选择哪种方式,现在都是成为软件开发人员的最佳时机。