Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Software Architecture Essentials: Masterclass (بالعربي)
Rating: 4.7 out of 5(385 ratings)
1,624 students

Software Architecture Essentials: Masterclass (بالعربي)

Learn N-Layer, Onion, Hexagonal, Clean Architecture, and Modular Monolith Design
Created byHassan Ibrahim
Last updated 11/2025
Arabic

What you'll learn

  • Understand what Software Architecture means and why the industry struggled to precisely define what is software architecture
  • Get equipped with the tools needed to understand, evaluate and choose different architecture styles and patterns
  • Deep dive into common architecture styles and patterns such as unitary architecture, three tiers, Layered architecture, onion, Hexagonal, Modular Monolith
  • Assess design modularity by applying principles of modularity and analyzing communication effectiveness between modules
  • Complete case study and code applying what you learn throughout the course

Course content

5 sections51 lectures9h 3m total length
  • Preview2:17
  • Introduction1:06
  • What is Software Architecture?5:23
  • What Makes Up Software Architecture?9:21

    We will talk about the four core elements of software architecture, Architecture style, Architecture characteristics, Architecture decisions, and Design Principles

  • Repositories used for the code examples0:17

Requirements

  • I assume you already started your career, implemented or participated in a project, you know about OOP and Solid Principles

Description

Unlock the secrets of modern software architecture with this comprehensive course designed for developers and architects alike. Whether you’re new to architectural design or looking to refine your skills, this course provides the foundational knowledge and practical insights needed to build robust, scalable systems for today’s ever-evolving tech landscape.


We start with an introduction to software architecture fundamentals and progress through widely used patterns, including N-Layer, Onion, Hexagonal, and Clean Architecture. These patterns are explored in depth, helping you understand their structure, purpose, and best use cases.


You’ll gain expertise in designing modular monoliths using vertical slices, effectively organizing your application into manageable and autonomous modules. Learn how to integrate these modules seamlessly, leveraging communication techniques and event-driven architecture to ensure responsiveness, scalability, and flexibility in complex systems.


The course also dives into asynchronous event processing, a critical component of modern systems. Additionally, you’ll master testing modules at various levels, ensuring your architecture remains reliable, robust, and adaptable under real-world conditions.


By the end of this course, you’ll be equipped to design systems that balance scalability, maintainability, performance, and innovation, whether working with monoliths or transitioning to microservices. Also, you'll be equipped with multiple to choose from based on the situation. Join today and take your architectural skills to the next level!

Who this course is for:

  • This course is designed for software engineers, particularly backend engineers, regardless of their programming languages or frameworks. It’s essential for understanding the principles behind architectural decisions and the driving factors behind them.
  • Ideal for software engineers who are eager to explore the origins of various architecture styles and patterns, and why they were developed.
  • This course benefits those who need to grasp the differences between architecture styles, patterns, principles, and characteristics, and understand their significance in software development.
  • Perfect for engineers who feel overwhelmed by the multitude of patterns available and seek a systematic approach to determine which pattern to use. It provides guidance on whether to follow existing patterns or create tailored solutions.
  • Also for those who want to build better systems that are easy to maintain and scale by choosing the simplest approaches and evolving incrementally only when necessary, embracing the concept of "evolutionary architecture."