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.

Software Architecture & EngineeringCreated Updated 1 min readhistorical

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

  • Architecture

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

Architecture Patterns.md

5. How to Become an Architect

5.1. Hard Skills

5.1.1. Languages

Go Language Learning.md

5.1.2. Operating Systems

Operating Systems.md

5.1.3. Networks

Computer Networks.md

5.1.4. Databases

Relational Databases.md

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

Security.md

5.1.8. System Design

System Design.md

5.1.9. Architecture Diagrams

Architecture Diagrams.md

5.2. Soft Skills

Soft Skills.md

6. References

Discussion

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