9 层现代应用

在当今世界,构建软件意味着工作跨多个层,每个有自己角色、工具和技术。

1. 表示层(UI/UX)

  • 处理用户如何与应用交互
  • 聚焦视觉、布局和可用性

2. 边缘和交付(可选)

  • 通过全球交付网络 bringing 内容更靠近用户
  • 减少延迟并提高性能

3. 集成层(API)

  • 定义系统不同部分如何通信
  • 启用组件间互操作

4. 消息和异步处理(可选)

  • 在后台处理任务和事件
  • 提高可扩展性和响应性

5. 业务逻辑层

  • 实现核心规则、工作流和决策过程

6. 数据访问层

  • 作为应用逻辑和存储数据之间桥梁
  • 确保安全高效检索或更新

7. 数据存储层

  • 存储、组织和管理应用结构化和非结构化数据

8. 分析和 ML(可选)

  • 分析数据生成洞察、预测和智能功能

9. 基础设施层(托管/运行时)

  • 提供计算环境和资源用于部署、运行和扩展应用

并发不是并行

并发(Concurrency)

  • 设计方法任务可以开始、运行和完成在重叠时期,即使在单 CPU 核心
  • 关于管理多个任务在同一时间
  • CPU 快速切换在任务之间(上下文切换),创造幻觉任务在进步同时,虽然它们不是
  • 伟大用于涉及等待任务,如 I/O 操作
  • 允许其他任务在等待期间进步,提高整体效率

并行(Parallelism)

  • 指同时执行多个任务,使用多个 CPU 核心
  • 在重计算如数据分析或渲染图形卓越,任务可以分割和同时运行在不同核心
  • 需要硬件有多个处理单元
  • 主要目标是增加吞吐量和计算速度系统

它们如何一起工作

  • 虽然并发和并行是不同概念,它们密切相关
  • 良好设计并发程序可以扩展使用多个核心为并行当需要
  • 通过理解区别和相互作用之间并发和并行,我们可以设计更高效系统并创造更好性能应用

基于令牌认证

基于令牌认证已经变得相当流行在多年来。传统上,JWTs 主导这个空间。

JWT(JSON Web Tokens)

  • 开放标准用于安全传输信息在双方之间
  • 由头部、负载和签名组成
  • 可以用于实现无状态认证在客户端和服务器应用之间

PASETO(Platform-Agnostic Security Tokens)

  • JWT 现代替代
  • 通过实现安全默认解决 JWT 安全缺陷
  • 强制执行强、密码学健全算法,减少漏洞风险
  • 两种类型
    • Public PASETO:使用非对称密码签名并确保数据完整性,但不保密性
    • Local PASETO:使用对称加密算法加密,确保令牌内数据保密性

Cron 速查表

Cron 是基于时间作业调度器允许用户自动化重复任务通过运行命令或脚本在指定间隔。

Cron 使用

  • 系统维护
  • 备份
  • 日志轮转
  • 自动化任务如发送邮件或运行脚本在规律间隔

Cron 速查表覆盖

  • Cron 格式
  • 一些 Cron 示例
  • 特殊 Cron 字符串
  • 特殊字符

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

原文链接:EP177: The Modern Software Stack

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