The ability to create an end-to-end system design differentiates a developer from principal engineers and architects. One of the most important aspects of system design is the ability to create a functional design outlining all the components and how they work together. This course provides a step-by-step approach to create a functional design for a system using single responsibility principle and architectural patterns.
In this course, you will learn how to
1) Define the users of a platform you want to build
The ability to create an end-to-end system design differentiates a developer from principal engineers and architects. One of the most important aspects of system design is the ability to create a functional design outlining all the components and how they work together. This course provides a step-by-step approach to create a functional design for a system using single responsibility principle and architectural patterns.
In this course, you will learn how to
1) Define the users of a platform you want to build
2) Understand the most important problems for the users the platform is meant to solve and define the core functions that solve this problem.
3) A depth-first based approach to design the core functions one-by-one.
4) Define the components and their integration framework using the single responsibility principle.
5) Understand the difference between frontend and backend design and the need for a BEFE layer like GraphQL.
6) Detailed design of each component
7) Creating an end-to-end system view from the component design.
We will use a running example throughout this course to apply the approach described in this course. There are a set of assignments that every student should complete as part of this course. Finally, it is important for you to apply the learnings in your day-to-day work and improve your system design skills with time.
How is an architect different from a developer? This lecture covers how an architect, responsible for functional design, needs to think differently from a developer.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.