软件架构师知识图&如何发布生产

软件架构师知识图

  • 掌握一门

编程语言 寻求掌握 1-2 种编程语言,例如 Java、Python、Golang、JavaScript 等。

  • 工具

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

  • 设计原则

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

  • 架构原则

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

  • 平台知识

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

  • 数据分析

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

  • 网络和安全

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

  • 支持技能

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

公司如何将代码运送到生产环境?

以下是从规划到生产的 11 个步骤:

  • 产品负责人通过在 Jira 等工具中创建用户故事来启动整个过程。

  • 开发团队执行 Sprint Planning 活动,并将用户情景添加到 Sprint。

  • 开发人员处理分配的故事。故事完成后,他们将代码提交到 Git 并将其推送到 GitHub。

  • Jenkins 通过测试和质量检查工具(如 JUnit、Jacoco 和 SonarQube)构建和运行代码。

  • 如果构建成功,则会将其存储在 artifactory 中,例如 JFrog。Jenkins 还通过 Docker 将构建部署到开发环境。

  • 接下来,该功能将部署到 QA 环境中。由于多个团队可能正在使用同一个代码库,因此将创建多个 QA 环境

  • QA 团队使用特定的 QA 环境并运行多种测试类型,例如 QA、回归和性能。

  • QA 验证完成后,功能将部署到 UAT(用户验收测试)环境。

  • UAT 测试验证功能是否满足用户的要求。

  • UAT 测试成功后,构建将成为候选版本。它们根据特定计划部署到生产环境。

  • SRE 团队使用 ELK 和 Prometheus 等工具来监控生产环境并在出现问题时处理警报。

提高 API 性能的 5 大常用方法

  • 结果分页

该方法用于优化大型结果集,将大型结果集推流回客户端,增强服务响应能力和用户体验。

  • 异步日志记录

此方法涉及将日志发送到无锁缓冲区并立即返回,而不是在每次调用时都处理磁盘。日志会定期刷新到磁盘,从而显著降低 I/O 开销。

  • 数据缓存

经常访问的数据可以存储在缓存中以加快检索速度。客户端在查询数据库之前检查缓存,Redis 等数据存储解决方案由于内存中存储而提供更快的访问。

  • 有效负载压缩

为了减少数据传输时间,可以压缩请求和响应(例如,使用 gzip),从而加快上传和下载过程。

  • 连接池

该技术涉及使用打开的连接池来管理数据库交互,从而减少每次需要加载数据时与打开和关闭连接相关的开销。该池管理连接的生命周期以实现高效的资源使用。

简化的 Git 工作流程

学习 Git 是每个开发人员的基本技能之一。以下是简单而基本的 Git 工作流程中的步骤。

  • 开发人员的工作目录 (未跟踪) 到暂存区 (索引)

相同的命令是git add。文件从未跟踪变为暂存。

  • 暂存区到本地存储库(头)

此移动的命令是 git commit -m message。它将更改保存到本地存储库 (HEAD),并标记版本历史记录。

  • 本地存储库到远程存储库 (Remote)

此移动的命令是 git push。它将提交的更改上传到远程存储库(例如 GitHub 上)以进行协作。

  • 远程仓库到本地仓库

命令 git pull 和 git fetch 有助于解决这个问题。git pull 使用远程更改更新本地文件。另一方面,git fetch 检索远程更改,但不合并它们。命令 git merge 组合来自不同分支的更改。

  • 检查差异

命令 git diff HEAD 显示开发人员的工作目录和最新提交之间的差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值