Python: SOLID Principles and Top Design Patterns
Python: SOLID Principles and Top Design Patterns, available at $94.99, has an average rating of 4.57, with 60 lectures, 22 quizzes, based on 302 reviews, and has 2629 subscribers.
You will learn about *Master* the most important and fundamental design patterns in modern Software Engineering within the *Python* ecosystem Learn and internalize the S.O.L.I.D principles of design like seasoned *Senior Developers* do. Get a deep understanding of the WHAT, WHY, and HOW for those *Fundamental Design Patterns*. Get a full Architectural exposition (with UML) of each pattern as well as *real-world* scenarios with hands-on coding examples for each pattern. Work on and complete Object Oriented *Python* assignments that will push your understanding of those patterns deeper and more fundamentally. Learn how to *identify* the *best pattern* for the given Architectural challenge. This course is ideal for individuals who are *Python* developers who want to learn to Design, Architect, and ultimately develop *better code*. or Developers who want to get a deep understanding of what makes GREAT *Software Architecture*. It is particularly useful for *Python* developers who want to learn to Design, Architect, and ultimately develop *better code*. or Developers who want to get a deep understanding of what makes GREAT *Software Architecture*.
Enroll now: Python: SOLID Principles and Top Design Patterns
Summary
Title: Python: SOLID Principles and Top Design Patterns
Price: $94.99
Average Rating: 4.57
Number of Lectures: 60
Number of Quizzes: 22
Number of Published Lectures: 60
Number of Published Quizzes: 22
Number of Curriculum Items: 82
Number of Published Curriculum Objects: 82
Original Price: $22.99
Quality Status: approved
Status: Live
What You Will Learn
- *Master* the most important and fundamental design patterns in modern Software Engineering within the *Python* ecosystem
- Learn and internalize the S.O.L.I.D principles of design like seasoned *Senior Developers* do.
- Get a deep understanding of the WHAT, WHY, and HOW for those *Fundamental Design Patterns*.
- Get a full Architectural exposition (with UML) of each pattern as well as *real-world* scenarios with hands-on coding examples for each pattern.
- Work on and complete Object Oriented *Python* assignments that will push your understanding of those patterns deeper and more fundamentally.
- Learn how to *identify* the *best pattern* for the given Architectural challenge.
Who Should Attend
- *Python* developers who want to learn to Design, Architect, and ultimately develop *better code*.
- Developers who want to get a deep understanding of what makes GREAT *Software Architecture*.
Target Audiences
- *Python* developers who want to learn to Design, Architect, and ultimately develop *better code*.
- Developers who want to get a deep understanding of what makes GREAT *Software Architecture*.
We all want to become better software developers and be able to call ourselves “Software Engineers” or “Software Architects”, but to do that you first have to master a number of design patterns.
This course will put you on a track to that destination.
We will teach you how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted.
But rather than learning all the design patterns out there, we have curated the most important, the top fundamental GoF Design Patterns for you.
All of that in the context of the Object Oriented Python.
We start with full understanding of the S.O.L.I.D Design Principlesand how they in turn relate to those design patterns. We explain everything in the context of real-world problems as well as specific code examples.
if you need a Python OOP Refresher, we have that for you. everything from classes to interfaces and abstract classes is covered. We will also show you how to code using pygame(Python Game Platform.)
At the end of the course you will get to Architect a solution by coding John Conway’s Game of Life simulation which will run on your mobile device.
Complex software systems are plagued with three major issues:
-
Timelines are stretched as requirements change.
-
Multiple developers have a hard time coordinating their efforts.
-
Code redundancy.
This in turn creates issues with maintenance and overall flexibility for adding new features. In general this means poorly designed systems that are hard to maintain and are not adaptable.
One answer to all the above problems is having a proper design and architecture. Think of a skyscraper being built. There is always a high-level blueprint. This blueprint is used to show everybody involved (from architects to supply chain to construction workers to machinery scheduling etc…) what is being worked on.
That way, everybody understands and follows the same vision.
A blueprint has a number of commonly understood elements which repeat themselves across many projects. For example all buildings need electrical wiring and plumbing, they might need elevators, and cooling systems, and underground parking lots, and of course stairs. They also usually are connected to the electrical grid and water supply as well as… roads.
All these common elements follow certain standards that have been improved over many many years and across many many projects. They are well understood and can be used almost like recipes.
In Software Engineering we also have a set of elements that repeat themselves across many projects. For example all software applications need to create objects, they need to communicate state change across those objects, they need to be able traverse over collections of those objects. In other words, if you want to be a better developer then you need to become proficient in those elements that have been time-tested. In the Software Engineering world these elements are known as “Design Patterns”
This course will teach students how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted.
This will help you to design projects in an Architectural manner before any major development happens and can be used to shorten development time and reduce maintenance costs.
Design patterns are important because they are time-tested recipes or solutions to well-known software engineering problems. When creating software applications certain problems recur in a pretty predictable fashion so rather than ‘reinvent’ the wheel we will have an assortment of, if you will, wheels to choose from.
We will teach you this in a slightly different manner than you probably have been taught before. We will take a practical approach (i.e. specific examples) but the power of Design Patterns comes from their ‘concept’ and we will teach you the concept of those design patterns so that you are fully able to change them and modify them to your needs. In addition we will look at how to combine all those patterns into something greater: an architecture.
A well designed Architecture is this magical thing where the whole is greater than the sum of its parts.
This is what we will strive to teach you.
Course Curriculum
Chapter 1: Introduction
Lecture 1: What are Design Patterns and why do we need them?
Lecture 2: The Design Patterns Covered in This course.
Lecture 3: The WHY Of Software Architecture.
Lecture 4: Why use UML?
Lecture 5: Organized vs. Unorganized code.
Lecture 6: Setting Up the IDE and Python Environment
Lecture 7: *OPTIONAL*: UML Refresher.
Chapter 2: Python OOP *Refresher*
Lecture 1: Python OOP Refresher – Theory Part #1
Lecture 2: Python OOP Refresher – Theory Part #2
Lecture 3: Python OOP Refresher – Code Studies Part #1
Lecture 4: Python OOP Refresher – Code Studies Part #2
Lecture 5: Python OOP Refresher – Code Studies Part #3
Lecture 6: Python OOP Refresher – Code Studies Part #4
Lecture 7: Python OOP Refresher – Code Studies Part #5
Lecture 8: Python OOP Refresher – Code Studies Part #6
Lecture 9: Python OOP Refresher – Code Studies Part #7
Chapter 3: What makes a Great Architecture?
Lecture 1: Hallmarks of Good Architecture.
Lecture 2: S.O.L.I.D Design Principles.
Lecture 3: SOLID *Practice Session* – Single Responsibility Principle(SRP)
Lecture 4: SOLID *Practice Session* – Open/Closed Principle(OCP)
Lecture 5: SOLID *Practice Session* – Liskov Substitution Principle (LSP)
Lecture 6: SOLID *Practice Session* – Interface Separation Principle (ISP)
Lecture 7: SOLID *Practice Session* – Dependency Inversion Principle (DIP)
Chapter 4: Singleton Design Pattern
Lecture 1: Understanding the Singleton Pattern
Lecture 2: Singleton Pattern – Architectural Considerations Part#1 – Simple Approach
Lecture 3: Singleton Pattern – Architectural Considerations Part#2 – Using Metaclasses
Lecture 4: Singleton Pattern – Architectural Considerations Part#3 – Thread-Safety
Lecture 5: Coding Part#1 – Implementing Singleton Pattern in Python
Lecture 6: Coding Part#2 – Practical Examples of Singleton In Python
Lecture 7: Singleton Pattern Coding **Extra** Exercises
Lecture 8: Singleton Pattern Coding **Extra** Exercises **Solutions**
Chapter 5: Factory Method Design Pattern
Lecture 1: Understanding Factory Method Pattern
Lecture 2: Architectural Considerations for Factory Method Pattern
Lecture 3: Coding the Factory Method Pattern in Python
Lecture 4: Factory Method Pattern Coding **Extra** Exercises
Chapter 6: Builder Design Pattern
Lecture 1: Understanding Builder Design Pattern
Lecture 2: Architectural Considerations for Builder Design Pattern
Lecture 3: Coding the Builder Pattern in Python
Lecture 4: Builder Design Pattern Coding **Extra** Exercises
Chapter 7: Adapter Design Pattern
Lecture 1: Understanding the Adapter Design Pattern
Lecture 2: Architectural Considerations for the Adapter Pattern
Lecture 3: Coding the Adapter Pattern In Python
Lecture 4: Adapter Design Pattern Coding **Extra** Exercises
Chapter 8: Strategy Design Pattern
Lecture 1: Understanding the Strategy Design Pattern
Lecture 2: Architectural Consideration for the Strategy Design Pattern
Lecture 3: Coding the Strategy Design Pattern
Lecture 4: Strategy Design Pattern Coding **Extra** Exercise
Chapter 9: Observer Design Pattern
Lecture 1: Understanding the Observer Design Pattern
Lecture 2: Architectural Consideration for the Observer Design Pattern
Lecture 3: Coding with the Observer Pattern
Lecture 4: Observer Design Pattern Coding **Extra** Exercises
Chapter 10: State Design Pattern
Lecture 1: Understanding the State Design Pattern
Lecture 2: Architectural Consideration for the State Design Pattern
Lecture 3: Coding the State Design Pattern
Lecture 4: State Design Pattern Coding **Extra** Exercises
Chapter 11: Course Assignment – The Game of Life
Lecture 1: About John Conway's Game Of Life Simulation
Lecture 2: A Word about the "Game of Life" Architecture
Chapter 12: Final Thoughts
Lecture 1: Where do you go from here?
Lecture 2: Thank you!
Chapter 13: Bonus Section
Lecture 1: Bonus Lecture
Instructors
-
Piotr Paweska
Software Engineer
Rating Distribution
- 1 stars: 1 votes
- 2 stars: 2 votes
- 3 stars: 16 votes
- 4 stars: 81 votes
- 5 stars: 204 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024
- Top 10 Gardening Courses to Learn in November 2024