About this Course
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem. Not only do design patterns can make a programmer significantly more efficient, but they also provide a useful common language to conceptualize repeated problems and solutions when discussing with others or managing code in larger teams.
In this course, you’ll get an introduction to software design patterns as well as distributed and component-based architectures. You’ll learn about the highly used software design patterns such as Factory, Singleton and Adapter, which are commonly used in most software applications. You’ll also learn about distributed systems, web services as well as how and when to choose between relational and non-relational databases. By the end of the course, you’ll be familiar with several critical aspects of software architecture, such as scalability, performance, latency and security.
What You'll Learn
- Ways to apply software design principles and design patterns to build components of a software application
- How to define system architecture and concepts such as service-oriented architecture (SOA) and micro-services
- Techniques for answering and solving common software developer job interview problems
Get Hands-On Experience
You’ll complete a design software of a single component and then build an architecture of a larger system that includes the interactions between multiple components.