> ## Documentation Index
> Fetch the complete documentation index at: https://writer.wjstar.top/llms.txt
> Use this file to discover all available pages before exploring further.

# 架构设计考虑因素

> 在进行架构设计时需要考虑的主要因素

## 业务理解

* 拆解功能型需求与非功能型需求
* 考虑业务后期的发展前景（具备行业经验更佳）
* 前期开发阶段重视代码设计，减少技术债务

## 技术标准化

* 单体架构、分布式架构、微服务架构、事件驱动架构
* 架构的无状态性
  * 用户 token，本地内存->分布式缓存，平滑迁移会耗费大量的人力
* 标准化的技术组件
  * 容易重复造轮子

## 可维护性和稳定性

* 提前考虑后续可能会遇到的非功能型的问题，例如业务灵活变化，数据容量激增，流量激增，恶意攻击
* 考虑服务的稳定性，容错性，高可用性，可维护性等

## 安全性

* 敏感数据保护，例如手机号，身份证信息等这类数据需要做加密存储，密钥需要做定期更换
* 保障系统链路安全性，例如预防 SQL 注入攻击，Dos攻击，XSS攻击，核心交易接口被刷等风险问题

## 架构方案梳理小结

架构设计需要综合考虑多个维度，确保系统既能满足当前需求，又具备良好的扩展性和维护性。

### 核心考虑因素

* **业务理解**：深入理解业务场景和发展路径
* **技术标准化**：选择合适的技术栈和架构模式
* **可维护性与稳定性**：确保系统长期稳定运行
* **安全性**：保护数据和系统免受威胁

### 实践建议

在实际架构设计中，建议：

1. 先进行充分的业务调研和需求分析
2. 选择团队熟悉且社区活跃的技术栈
3. 从小规模开始，逐步演进架构
4. 建立完善的监控和告警机制
5. 定期进行架构评审和优化
