Skip to main content

Menu

LEVEL 0
0/5 XP
HomeAboutTopicsPricingMy VaultStats

Categories

πŸ€– Artificial Intelligence
☁️ Cloud and Infrastructure
πŸ’Ύ Data and Databases
πŸ’Ό Professional Skills
🎯 Programming and Development
πŸ”’ Security and Networking
πŸ“š Specialized Topics
HomeAboutTopicsPricingMy VaultStats
LEVEL 0
0/5 XP
GitHub
Β© 2026 CheatGridβ„’. All rights reserved.
Privacy PolicyTerms of UseAboutContact

Software Architectures Cheat Sheet

Software Architectures Cheat Sheet

Back to Software Engineering
Updated 2026-04-29
Next Topic: Software Development Lifecycle (SDLC) Cheat Sheet

Software architecture is the high-level structure of a software system that defines how components interact, how responsibilities are divided, and how the system evolves over time. It sits at the intersection of business requirements and technical implementation, serving as the blueprint that determines scalability, maintainability, and long-term success. The right architecture isn't about following trends β€” it's about matching your system's actual constraints: team size, growth trajectory, complexity tolerance, and operational capabilities. Think of architecture as decision boundaries: each pattern constrains what you can change easily later, so understanding trade-offs upfront prevents costly rewrites down the line.

What This Cheat Sheet Covers

This topic spans 8 focused tables and 48 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.

Table 1: Foundational UI ArchitecturesTable 2: Layered and Modular ArchitecturesTable 3: Distributed System ArchitecturesTable 4: Data-Centric ArchitecturesTable 5: Communication and Integration PatternsTable 6: Resilience and Fault Tolerance PatternsTable 7: Concurrent and Reactive PatternsTable 8: Specialized Architectures

Table 1: Foundational UI Architectures

ArchitectureExampleDescription
MVC (Model-View-Controller)
Model β†’ Controller β†’ View
User input β†’ Controller updates Model β†’ View re-renders
β€’ Separates application into three components: Model holds data and business logic, View displays UI, Controller handles user input and updates Model
β€’ widely used in web frameworks (Rails, Spring MVC, Laravel) but can lead to tight coupling between Controller and View.
MVVM (Model-View-ViewModel)
View ← binds to β†’ ViewModel
ViewModel.property = data
View auto-updates
β€’ Introduces ViewModel as intermediary between View and Model using data binding
β€’ View observes ViewModel properties and updates automatically
β€’ dominant pattern in WPF, MAUI, and modern mobile (SwiftUI, Jetpack Compose) where declarative UIs benefit from reactive bindings.
MVP (Model-View-Presenter)
View.updateUI(data)
Presenter handles logic
View is passive
β€’ Presenter acts as middle layer between View and Model; View is completely passive (dumb UI) and Presenter contains all presentation logic
β€’ improves testability over MVC since Presenter has no framework dependencies
β€’ common in Android development pre-MVVM era.
Flux
Action β†’ Dispatcher β†’ Store β†’ View
View dispatches new Action
β€’ Facebook's pattern enforcing unidirectional data flow in React apps
β€’ Actions represent events, Dispatcher broadcasts to Stores, Stores hold state and notify Views
β€’ prevents complex bidirectional dependencies; foundation for Redux and similar state management libraries.

More in Software Engineering

  • Software Architecture Fitness Functions Cheat Sheet
  • Software Development Lifecycle (SDLC) Cheat Sheet
  • _Dependency_Injection_Patterns
  • Database Migration Strategies for Development Teams Cheat Sheet
  • Integration Testing Patterns and Strategies Cheat Sheet
  • Software Engineering Cheat Sheet
View all 47 topics in Software Engineering