design
design copied to clipboard
架构设计相关知识
DESIGN
☕ DESIGN 是个人对于软件系统架构的心得和总结。
架构之道,在于权衡;权衡之术,在于取舍。
- 🔁 项目同步维护:Github | Gitee
- 📖 电子书阅读:Github Pages | Gitee Pages
📖 内容
设计步骤
解决方案(Solution),就是针对某些已经体现出的,或者可以预期的问题、不足、缺陷、需求等等,所提出的一个解决整体问题的可行性方案。就软件系统而言,解决方案就是一个可以解决具体业务问题,并且可以落地的软件系统。
解决方案,毫无疑问是顶层系统设计,这需要设计者既懂技术,也懂业务。
第一步:需求分析
把所有需要的东西聚集在一起,审视问题。不停的提问,以至于我们可以明确使用场景和约束。讨论假设。
- What:系统的作用是什么?系统的目标是什么?
- Who:系统的用户群体是谁?
- How:用户希望怎样使用系统?系统如何为用户提供服务?
-
How many:有多少用户?日活/月活有多少?——用户体量会极大的影响系统的性能要求,从而影响系统的规模和复杂度。
- 容量:系统需要处理多少数据?
- 并发量、吞吐量:系统需要每秒钟处理多少请求?
- 读写比率:系统的读写比率是多少?——读多写少或写多读少决定了不同的架构方案。
- How much:系统的预算是多少(包括物料、人力成本等)?
- 输入输出:系统的输入输出分别是什么?
第二步:顶层设计
使用所有重要的组件来描绘出一个高层级的设计。
- 画出主要的组件和连接
- 证明你的想法
第三步:组件设计
对每一个核心组件进行详细深入的分析。
第四步:扩展设计
确认和处理瓶颈以及一些限制。举例来说就是你需要下面的这些来完成扩展性的议题吗?
- 负载均衡
- 水平扩展
- 缓存
- 数据库分片
设计
架构
综合
- 如何设计系统
- 系统架构面试总结
- 系统架构概述
- 系统高性能架构
- 系统高可用架构
- 系统伸缩性架构
- 系统扩展性架构
- 系统安全性架构
- 大型系统核心技术
- 系统测试架构
微服务
- 微服务简介
- 微服务基本原理
安全
- 认证和授权
- OAuth2.0
设计模式
面向对象原则
创建型模式
创建型模式提供了创建对象的机制, 能够提升已有代码的灵活性和可复用性。
- 简单工厂模式 (Simple Factory)
- 工厂方法模式 (Factory Method)
- 抽象工厂模式 (Abstract Factory)
- 建造者模式 (Builder)
- 原型模式 (Prototype)
- 单例模式 (Singleton)
结构型模式
结构型模式介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。
- 适配器模式 (Adapter)
- 桥接模式 (Bridge)
- 组合模式 (Composite)
- 装饰模式 (Decorator)
- 外观模式 (Facade)
- 享元模式 (Flyweight)
- 代理模式 (Proxy)
行为型模式
行为模式负责对象间的高效沟通和职责委派。
- 模板方法模式 (Template Method)
- 命令模式 (Command)
- 迭代器模式 (Iterator)
- 观察者模式 (Observer)
- 解释器模式 (Interpreter)
- 中介者模式 (Mediator)
- 职责链模式 (Chain of Responsibility)
- 备忘录模式 (Memento)
- 策略模式 (Strategy)
- 访问者模式 (Visitor)
- 状态模式 (State)
重构
- 代码的坏味道和重构
- 代码坏味道之代码臃肿
- 代码坏味道之滥用面向对象
- 代码坏味道之变革的障碍
- 代码坏味道之非必要的
- 代码坏味道之耦合
UML
- UML 快速入门
- UML 结构建模图
- UML 行为建模图
📚 资料
-
书籍
- 《大型网站技术架构:核心原理与案例分析》 - 浅显易懂的将解大型网站架构演进之路;简介了大型系统所面临的挑战以及核心技术点。
- 《亿级流量网站架构核心技术:跟开涛学搭建高可用高并发系统》
- 大型网站系统与 Java 中间件实践
- 企业 IT 架构转型之道:阿里巴巴中台战略思想与架构实战 - 阐述阿里巴巴中台系统发展,更多的是讲解应用场景和能力,没有讲解技术细节。
- 逆流而上:阿里巴巴技术成长之路 - 主要以运维的视角阐述系统运维中遇到的困难,定位思路以及解决方法。
- 《Head First 设计模式》
- 《大话设计模式》
- 《重构——改善既有代码的设计》
-
教程
- system-design-primer
- 从 0 开始学架构
- 从 0 开始学微服务
- RPC 实战与核心原理
- 微服务架构核心 20 讲
- DDD 实战课
- Sparx UML 教程
- UML Tutorial
- W3Cschool UML 教程
- https://sourcemaking.com/refactoring
🚪 传送
你可能会感兴趣:
- Java 教程 📚
- JavaCore 教程 📚
- JavaTech 教程 📚
- Spring 教程 📚
- Spring Boot 教程 📚
- 数据库教程 📚
- 数据结构和算法教程 📚
- Linux 教程 📚
- Nginx 教程 📚