本周系统设计复习:

  • 终极软件架构师知识地图
  • PostgreSQL 正在吞噬数据库世界吗?
  • 从初级到高级开发者的 11 个步骤
  • 技术职业基本要求

软件架构师知识地图

成为软件架构师是一段你始终在学习的旅程。但有些事情你必须 definitely 努力去知道。

1. 掌握一门编程语言

努力掌握 1-2 门编程语言,如 Java、Python、Golang、JavaScript 等。

2. 工具

熟练使用关键工具,如 GitHub、Jenkins、Jira、ELK、Sonar 等。

3. 设计原则

学习重要设计原则,如 OOPS、Clean Code、TDD、DDD、CAP 定理、MVC 模式、ACID 和 GOF。

4. 架构原则

精通多种架构模式,如微服务、发布 - 订阅、分层、事件驱动、客户端 - 服务器、六边形等。

5. 平台知识

了解多个平台,如容器、编排、云、无服务器、CDN、API 网关、分布式系统和 CI/CD。

6. 数据分析

建立对数据和分析组件的扎实知识,如 SQL 和 NoSQL 数据库、Kafka 数据流解决方案、对象存储、数据迁移、OLAP 等。

7. 网络和安全

学习网络和安全概念,如 DNS、TCP、TLS、HTTPS、加密、JWT、OAuth 和凭证管理。

8. 支持技能

除了技术,软件架构师还需要几种支持技能,如决策、技术知识、利益相关者管理、沟通、估算、领导力等。

PostgreSQL 的多功能性

似乎无论用例是什么,PostgreSQL 都支持它。当有疑问时,你可以简单地使用 PostgreSQL。

PostgreSQL 扩展用途

  1. 时间序列:PostgreSQL 拥抱 Timescale,一个强大的时间序列数据库扩展,用于高效处理时间戳数据。

  2. 机器学习:通过 pgVector 和 PostgresML,Postgres 可以支持机器学习能力和向量相似性搜索。

  3. OLAP:Postgres 可以使用 Hydra、Citus 和 pg_analytics 等工具支持 OLAP。

  4. 派生数据库:甚至派生数据库如 DuckDB、FerretDB、CockroachDB、AlloyDB、YugaByte DB、Supabase 等都提供 PostgreSQL 兼容性。

  5. 地理空间:PostGIS 扩展 PostgreSQL 与地理空间能力,使你能够轻松存储、查询和分析地理数据。

  6. 搜索:Postgres 扩展如 pgroonga、ParadeDB 和 ZomboDB 提供全文搜索、文本索引和数据解析能力。

  7. 联邦查询:Postgres 无缝集成各种数据源,如 MongoDB、MySQL、Redis、Oracle、ParquetDB、SQLite 等,实现联邦查询和数据访问。

  8. 图数据库:Apache AGE 和 EdgeDB 是构建在 PostgreSQL 之上的图数据库。此外,pg_graphql 是提供 Postgres GraphQL 支持的扩展。

技术职业基本要求

协作工具

软件开发是社交活动。学会使用协作工具,如 Jira、Confluence、Slack、MS Teams、Zoom 等。

编程语言

选择并精通一到两门编程语言。从选项如 Java、Python、JavaScript、C#、Go 等中选择。

API 开发

学习 API 开发方法的来龙去脉,如 REST、GraphQL 和 gRPC。

Web 服务器和托管

了解 Web 服务器以及云平台,如 AWS、Azure、GCP 和 Kubernetes。

认证和测试

学习如何用认证技术如 JWT、OAuth2 等保护你的应用。此外,掌握测试技术如 TDD、E2E 测试和性能测试。

数据库

学会使用关系型(Postgres、MySQL 和 SQLite)和非关系型数据库(MongoDB、Cassandra 和 Redis)。

CI/CD

选择工具如 GitHub Actions、Jenkins 或 CircleCI 学习持续集成和持续交付。

数据结构和算法

掌握 DSA 基础,主题如 Big O 表示法、排序、树和图。

系统设计

学习系统设计概念,如网络、缓存、CDN、微服务、消息、负载均衡、复制、分布式系统等。

设计模式

掌握设计模式的应用,如依赖注入、工厂、代理、观察者和外观。

AI 工具

为未来-proof 你的职业生涯,学会利用 AI 工具如 GitHub Copilot、ChatGPT、Langchain 和提示工程。

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

原文链接:EP128: The Ultimate Software Architect Knowledge Map

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