1. 犀牛前端部落首页
  2. 资讯杂谈

前端和后端有什么区别

前端和后端有什么区别

在这篇文章中,俺将介绍在Web开发的背景下,如何从概念上实现从前端到后端的转变。

让我们先定义什么是前端。前端是我们用来识别浏览器内部编程的术语。我们也称之为客户端Web开发。

在前端,您需要担心创建和发布一个运行在您的客户机上的应用程序,客户机可以是笔记本电脑、台式电脑或移动设备。您构建一些您分发的东西,然后在每个客户机浏览器中运行。

在后端,您设计并构建一个运行在单个服务器上的应用程序(开始时),每个客户机都访问该应用程序。应用程序服务器中运行,你的环境控制,然后发送到浏览器应用程序使用服务器端呈现的应用程序,或者您创建的API将JSON数据的客户(最近事情很常见,特别是搭配前端框架/库的反应一样,Vue和其他人)。

你可以看到这里有重叠。后端可以用于服务将在浏览器中运行的前端应用程序。

HTML、CSS、JavaScript、图像、动画、React、Vue、Svelte、CSS-in- js、前端状态管理、性能优化,所有这些主题(以及更多!)都与前端编程相关。

有些应用程序只需要前端部分。例如,我的网站没有后台。这是一个使用Hugo生成的静态网站,我在上面做的所有工作都被认为是前端编程:例如CSS、标记、用于增强搜索的JavaScript。

前端编程有其独特的挑战:例如浏览器对功能的支持。或应用程序在低端设备上的性能。构建单页面应用程序。

后端开发与前端开发完全不同。首先,您退出浏览器环境,这一方面是自由的,但也可能是压倒性的。

为什么?你有更多的选择。

在浏览器中,选择的编程语言总是JavaScript。或者一种可以编译成JavaScript的语言,如TypeScript、Elm等。

在后台,您可以使用任何您想要的。俺通常选择Node.js,因为选择Node.js可以让我不必再去学一门新的语言,工作在前端和后端JavaScript。

但你可以使用框架,如:

  • Django
  • Laravel
  • Rails
  • Phoenix
  • Deno

以及其他许多系统,包括更多面向企业的生态系统,比如Java和.net。

这可能是后端编程最大的优点:您可以使用许多语言选择,所以您可以使用您喜欢的语言。但如果你还不确定自己更喜欢什么,它也会导致“分析瘫痪”。

在后台,我们不需要面对前台的问题。我经常听到的一件事是前端开发太快了。每天都有新事物出现,最好的工具也在不断变化。这不是一个错误的说法。相比之下,后端看起来更像是一个慢节奏的生态系统,尤其是在众所周知的、成熟的环境和工具中,而且编写良好的后端可以让人感觉多年都很现代,而我们不能在前端说同样的话。

当然,在后台,我们有自己的问题集。例如,如何在数据库中存储数据。如何选择正确的数据库。SQL vs NoSQL。Microservices vs架构。如何部署我们的应用程序,以及在哪里部署。如何处理更多的交通。如何安全地处理数据和请求。如何测试和处理错误处理。如何选择正确的体系结构。

然后我们有一些与DevOps重叠的主题,比如如何使用Docker和Kubernetes,如何建立持续集成和持续交付工作流,如何处理Linux,基础设施和服务器级网络。我们需要面对这样的选择:使用我们自己的VPS服务器,或者使用像Heroku这样的PAAS,或者使用AWS Lambda实现无服务器。根据你所在的公司和团队的不同,你可能也需要准备好处理这些问题。

当然,我们需要弄清楚如何将后端连接到前端。如何构建API。GraphQL vs rest。如何处理身份验证。如何使API在规模上快速发展。这些主题都涉及到前端和后端,以便让它们相互交流。

这是很多东西,你可以找到关于这些主题的整本书,这就是为什么我们有前端和后端开发人员之间的分离,以及为什么作为一个全栈开发人员能够浏览所有这些问题是一个有价值的技能。

当然,你不需要知道所有这些才能成为一个合格的前端或后端开发人员。您需要在较高的层次上了解这些事情,以便了解您(还)不知道的事情。但是专注于一个特定的领域并在这方面变得出色也是一个好主意。

例如,您可能是一个不知道如何处理高级Linux配置的后端开发人员,而依赖像Heroku这样的PAAS为您完成这些工作。或者使用AWS Lambda来避免这种情况。

我认为最重要的是要知道什么时候自学和自己动手比使用支持你工作的工具更好。

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/3518.html

发表评论

登录后才能评论

评论列表(4条)