在这篇文章中,我们将讨论以下话题:

  • 轮询 vs. Webhooks
  • 我们如何在系统中管理配置?
  • 什么是 CSS(层叠样式表)?
  • 什么是 GraphQL?它是 REST API 的替代品吗?

轮询 vs. Webhooks

轮询(Polling)

轮询涉及以固定间隔重复检查外部服务或端点以检索更新信息。这就像不断问”你有新东西给我吗?“,即使可能没有任何更新。这种方法资源密集且效率低下。此外,你只在询问时获得更新,因此错过任何实时信息。然而,开发者对何时以及如何获取数据有更多控制。

Webhooks

Webhooks 就像有一个内置的通知系统。你不连续询问信息。相反,你在应用服务器中创建一个端点,并将其作为回调提供给外部服务(如支付处理器或运输供应商)。每次发生有趣的事情时,外部服务调用该端点并提供信息。这使得 Webhooks 非常适合处理实时更新,因为数据一可用就推送到你的应用。

何时使用轮询或 Webhook?

轮询在存在某些基础设施限制阻止使用 Webhooks 时是一个可靠的选择。此外,使用 Webhooks 存在由于网络问题错过通知的风险,因此需要适当的重试机制。

Webhooks 推荐用于需要即时数据传输的应用。此外,Webhooks 在资源利用方面高效,特别是在高吞吐量环境中。

配置管理 vs. 基础设施即代码(IaC)

下图显示了传统配置管理和 IaC 之间的对比。

配置管理

该实践旨在通过系统化和可重复的过程管理和配置 IT 基础设施。这对于确保系统按预期执行至关重要。传统配置管理专注于在配置后维护系统配置项(如服务器、网络设备和应用)的期望状态。它通常涉及 DevOps 的初始手动设置。更改通过逐步命令管理。

什么是 IaC?

IaC 代表基础设施即代码,代表基础设施配置和管理方式的转变,将基础设施设置和更改视为软件开发实践。IaC 自动化基础设施配置,通过代码启动和管理系统。它通常使用声明式方法,其中基础设施的期望状态被描述。像 Terraform、AWS CloudFormation、Chef 和 Puppet 这样的工具用于在源代码控制的代码文件中定义基础设施。IaC 代表向自动化、可重复性和将软件开发实践应用于基础设施管理的演变。

CSS 基础

前端开发不仅需要内容呈现,还需要美观。CSS 是一种标记语言,用于描述网页上的元素应如何呈现。

CSS 做什么?

CSS 将文档的内容和表现分离。在 Web 开发的早期,HTML 同时充当内容和样式。CSS 将结构(HTML)和样式(CSS)分开。这有很多好处,例如,当我们更改网页的配色方案时,我们只需调整 CSS 文件。

CSS 如何工作?

CSS 由选择器和一组属性组成,可以认为是单个规则。选择器用于定位我们想要更改样式的 HTML 元素,属性是这些元素的具体样式描述,如颜色、大小、位置等。

例如,如果我们想让段落中的所有文本变为蓝色,我们编写这样的 CSS 代码:

p { color: blue; }

这里”p”是选择器,“color: blue”是声明段落文本颜色为蓝色的属性。

CSS 中的层叠

层叠概念对于理解 CSS 至关重要。当多个样式规则冲突时,浏览器需要根据特定的优先级规则决定使用哪个规则。权重最高的获胜。权重可以由多种因素决定,包括选择器类型和来源顺序。

CSS 的强大布局能力

过去,CSS 仅用于简单的视觉效果,如文本颜色、字体样式或背景。今天,CSS 已演变为能够处理复杂设计布局的强大布局工具。

“Flexbox”和”Grid”布局模块是两种流行的 CSS 布局模块,使创建响应式设计和精确放置 Web 元素变得容易,因此 Web 开发者不再需要依赖复杂的表格或浮动布局。

CSS 动画

动画和交互元素可以大大增强用户体验。CSS3 引入了动画功能,允许我们转换和动画元素而无需使用 JavaScript。例如,“@keyframes”规则定义动画序列,transition 属性可用于设置从一个状态到另一个状态的动画过渡。

响应式设计

CSS 允许网站的布局和样式适应不同的屏幕尺寸和分辨率,以便我们可以为手机、平板电脑和计算机等不同设备提供优化的浏览体验。

GraphQL 详解

下图解释了 GraphQL 的不同方面。

GraphQL 是一种用于 API 的查询语言,是一个运行时,通过使用你为数据定义的类型系统来执行这些查询。它由 Meta 在 2012 年内部开发,然后在 2015 年公开发布。

与更传统的 REST API 不同,GraphQL 允许客户端请求他们确切需要的数据,使得有可能通过单个查询从多个源获取数据。这种数据检索效率可以提高 Web 和移动应用的性能。

GraphQL 服务器位于客户端和后端服务之间。它可以将多个 REST 请求聚合到一个查询中。GraphQL 服务器将资源组织在图中。

GraphQL 支持查询、突变(对资源应用数据修改)和订阅(接收架构修改的通知)。

GraphQL 的优势

  • GraphQL 在数据获取方面更高效
  • GraphQL 返回更准确的结果
  • GraphQL 有强大的类型系统来管理实体结构,减少错误
  • GraphQL 适合管理复杂的微服务

GraphQL 的劣势

  • 复杂性增加
  • 设计上过度获取
  • 缓存复杂性

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP100: Polling vs. Webhooks

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。