本周系统设计复习:
- 终极软件架构师知识地图
- 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 扩展用途
时间序列:PostgreSQL 拥抱 Timescale,一个强大的时间序列数据库扩展,用于高效处理时间戳数据。
机器学习:通过 pgVector 和 PostgresML,Postgres 可以支持机器学习能力和向量相似性搜索。
OLAP:Postgres 可以使用 Hydra、Citus 和 pg_analytics 等工具支持 OLAP。
派生数据库:甚至派生数据库如 DuckDB、FerretDB、CockroachDB、AlloyDB、YugaByte DB、Supabase 等都提供 PostgreSQL 兼容性。
地理空间:PostGIS 扩展 PostgreSQL 与地理空间能力,使你能够轻松存储、查询和分析地理数据。
搜索:Postgres 扩展如 pgroonga、ParadeDB 和 ZomboDB 提供全文搜索、文本索引和数据解析能力。
联邦查询:Postgres 无缝集成各种数据源,如 MongoDB、MySQL、Redis、Oracle、ParquetDB、SQLite 等,实现联邦查询和数据访问。
图数据库: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。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。