NOTE
Software Architecture
What architecture is, why it is needed, its categories, architecture patterns, and the hard and soft skills needed to become an architect.
This is a historical learning note and may contain outdated or incomplete understanding.
1. What Is Architecture
Describe the whole, the parts, and the relationships between them at an abstract level.
2. Why Architecture Is Needed
To solve the problems brought by the complexity of software systems.
3. Architecture Categories
3.1. Infrastructure Architecture
- For example, cloud platforms, operating systems, networks, storage, databases, compilers, etc.
3.2. Middleware and Big Data Platforms
- Middleware architecture: for example, distributed service middleware, message middleware, database middleware, cache middleware, monitoring systems, workflow engines, rule engines, etc.
- Big data architecture: for example, the open-source Hadoop ecosystem, Hive, Spark, Storm, Flink, etc.
3.3. Business System Architecture
- General-purpose software systems: for example, commonly used office software, browsers, media players, etc.
- Offline business systems: for example, various BI analysis, data mining, reporting, visualization, etc. based on big data.
- Large-scale online business systems: for example, search, recommendation, instant messaging, e-commerce, games, advertising, enterprise ERP, or CRM, etc.
Business Architecture, Technical Architecture, and Organizational Architecture
Different business architectures lead to different technical architectures and organizational architectures. Business architecture has different roles.
4. Architecture Patterns
5. How to Become an Architect
5.1. Hard Skills
5.1.1. Languages
5.1.2. Operating Systems
5.1.3. Networks
5.1.4. Databases
5.1.5. Middleware
Redis.md Zookeeper.md Introduction to Message Queues.md Elasticsearch.md Nginx.md
5.1.6. Algorithms
Data Structures and Algorithms.md
5.1.7. Security
5.1.8. System Design
5.1.9. Architecture Diagrams
5.2. Soft Skills
6. References
- The Role and Relationship of the 4+1 View in Architecture Design - Zhihu
- Detailed Explanation of the System Architecture “4+1” View - Zhihu
- The Difference Between Hexagonal Architecture and Layered Architecture
- Detailed Explanation of Three-Tier Architecture | Runoob
- Still Using Three-Tier Architecture? Learn About DDD Layered Architecture! - SegmentFault
- Chronicle of Software Architecture | Lenix Blog
- What Are Architecture Patterns and Architectural Styles - SegmentFault

Discussion
Sign in with GitHub to comment. Discussions are stored as GitHub Issues.View on GitHub