Video course: Design principles of SOLID+

Understand how class design works and the interaction between them using examples from real projects.

Mentor: Natalia Nyshta, Senior Software Engineer, 15+ years of IT experience, author of many articles on design principles and programming
Video course: Design principles of SOLID+
Video course: Design principles of SOLID+

    The course is dedicated to studying the principles of design, building effective solutions within the service when designing classes, their responsibilities and interactions:
  • How to effectively define the boundaries and responsibilities of structures and classes.
  • How to learn contract programming.
  • How to stop in time and not use unnecessary.
  • Analysis of the motives “for” and “against”, a critical approach to engineering challenges.
  • Design laws and reasons for their discovery.

Mentor: Natalia Nishta, Senior Software Engineer, 15+ years of experience in IT, author of many articles on design principles and programming


You will immerse yourself in an exciting "game" of modeling objects and the connections between them.

    During this, you will learn:
  • why these rules exist in the world of OOP
  • what is their basis
  • when to use a particular design principle
  • when to ignore these principles
  • and how it all relates to each other.

Why does the course focus on design principles, and not patterns? If you want to play chess well, you need to start by understanding how chess pieces should move on the board (analogous to design principles), rather than memorizing immediately known chess combinations (analogous to programming patterns). After completing the course, you will understand why design principles are at the heart of design patterns, and why without them it is almost impossible to use and adapt patterns to your specific task.

The course includes examples from real projects, as well as a large number of interesting interactive design exercises after each module.

You will learn to apply in practice:

Conway's Law, Demeter's Law, Interface Segregation, Barbara Liskov's Substitution Principle, Single Responsibility, Low Coupling, High Affinity, API Contracts, DRY, YAGNI, KISS, Occam's Razor, and much more.

We have recorded all the materials and divided them into modules: you can study at a pace convenient for you. And to ask any questions to the course author - join the live Q&A sessions!

Format

    All course materials and videos are located on the Workademy learning platform. After purchasing a ticket, you will receive access to the course at the email address specified during registration (within 1-2 business days):
  • Presentations
  • Lecture videos
  • Code examples from the repository.
  • Homework on using design principles
  • Additional materials and links.
  • To consolidate the topics covered, the program includes homework and theoretical tests that were written by a non-chat-gpt. We made sure that our students received high-quality content and our mentor wrote the tests herself, taking into account the educational benefit of passing them. She also solved the homework and explained her version of solving the problem in detail.

Program

Don't repeat yourself: encapsulate
  • Introduction. Briefly about the whales of OOP: basic principles.
  • Level of abstraction.
  • Single Responsibility Principle (SOLID: SRP).
  • Occam's Razor and KISS.
Relying on interfaces
  • API and Client.
  • Interface Separation Principle (SOLID: ISP).
  • Interface vs. Abstract Class: An Epic Battle.
  • Interface as an Abstraction.
  • Encapsulation of Variable Aspects.
  • Law Conway.
The question of control: who controls what
  • The Open and Closed Principle (SOLID: OCP).
  • The Law of Demeter.
  • What are dependencies?
  • Public and published interfaces.
  • Inversion of control in the Hollywood principle.
The source of the indivisible Monolith
  • The Dependency Inversion Principle (SOLID: DIP).
  • Problems with the word "new".
Such a very "simple" Inheritance
  • Unknown Inheritance.
  • What is Composition and Delegation: The Strategy Design Pattern.
  • Stateful and Stateless Objects.
  • Correct Use of Prohibition of Inheritance: The Pattern Immutable Object.
  • Single-threading and multi-threading and what does the prohibition of inheritance have to do with it.
Mixing LSP with prohibition of inheritance and dependency inversion
  • Barbara Liskov's substitution principle in theory (SOLID: LSP).
  • LSP in human language.
  • Consequences of violating LSP in detail.
  • IoC + LSP + final.
  • Prohibition of inheritance in external libraries.

The course concept and all course materials are the intellectual property of Fwdays. Copying of course content and materials is possible only with the consent of Fwdays.


Mentor: Natalya Nyshta, Senior Software Engineer

—has a higher professional education as a software engineer

— 15+ years of industry experience

— articles on design principles and programming

— in his company, he reads a course on design principles in OOP

- Nataliya is exactly the kind of person who knows how to understand the noodle code and explain to the management why such "architecture" is not the best option.

Linkedin

< strong>

Average rating 9.5

The course is being repeated, we share real feedback from the last time (with the permission of the participants)

"If you are in a small company, there is no one to review and beat you up, you have been programming for a year or two or more and you see that adding a small feature to your code leads to burnout, depression and rewriting the project from scratch - then this course is definitely for you." for you. To understand the basics and realize that these are just the first steps."

"To understand how to write code optimally so that it can be easily expanded and maintained."

"Definitely not for those who haven't had the reaction 'somehow the text is written a little bit moronic' from their own or someone else's code. :) The course helped me understand why experienced programmers spend 80% of their time explaining why they did it and 20% explaining how they did it. I also now know what to do and where to go when I get a terse comment on a pull request saying 'read about SOLID'."
"I would advise everyone to find time for this course to learn/repeat the material, because even my grandfather, a team leader with 20 years of experience, started playing with my homework when I asked him something, and I started wondering what kind of course I was taking. For beginners like me, who had only seen JavaScript so far, to be honest, it was difficult (because all the examples were in PHP). BUT! I definitely found the scary theoretical books less scary and I began to understand many concepts that seemed too abstract."

"You can go through the lectures simply as a listener and not strain yourself too much, but you can also get distracted and delve deeper - especially with homework, there's something to think about."

"P.S. A big thank you to the lecturer for answering Russian-language questions in Ukrainian!"
< /div>

Event price

Attendee ticket

Access to the course on the online platform (1 year)

Live Q&A sessions with mentor Natalia Nyshta

Access to TG chat, where the mentor will answer questions

Additional materials from the mentor

Participant certificate upon completion of the entire course

Important! After payment, you will receive two emails within a 1-2 business days: from Fwdays and from the Workademy platform with access to the course.

5 550 UAH ≈€115
Buy ticket
−10% for participants of previous conferences 
It will be added automatically to account where you made a purchase previously
−30% for students of full-time education 
Send us a photo or a scanned copy of your Student's ID to academy@fwdays.com and we will send a promo code to you
Group discounts are available for companies 
Напишіть нам на academy@fwdays.com для прорахування вашої знижки.
Sign in
Or by mail
Sign in
Or by mail
Register with email
Register with email
Forgot password?