Course: Design Principles within OOP

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

Mentor: Natalia Nyshta, Senior Software Engineer, 14+ years of IT experience, author of many articles on design principles and programming
Online
Course: Design Principles within OOP
Course: Design Principles within OOP

In this course, you will look at the design of classes and the interactions between them from the perspective of engineering risks, and learn how to identify and manage them.

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

    During this, you will learn:
  • why exactly such rules exist in the world of OOP
  • what is their basis
  • when to use one or another design principle
  • when these principles can be ignored
  • and how it all relates to each other.

You will understand why design principles are the basis 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 and exciting design exercises after each section.

This course will be ideal for those facing the following questions:

  • Why do I learn design patterns, but nothing becomes clearer?
  • Why do I get asked about SOLID principles in interviews? What is so important about them?
  • SOLID+? What is another plus?
  • Design principles? I understand all this, but how to use it in practice?

Format

Start: September 21, 10:00.
Six 2-hour live lectures on Saturdays:
  • Theoretical part
  • Examples from real projects: code analysis, why you can't do it this way, and how it should be done
  • Analysis of the homework from the previous lecture: how the author of the course would have completed this task.
Available materials:
  • Presentations
  • Video recordings of lectures
  • Code examples from the repository.
  • Homework on the use of design principles
  • Additional materials and links.
  • Tests to test theoretical knowledge.

Program

    21.09. Don't repeat yourself: encapsulate
  • Introduction. Briefly about OOP whales: basic principles.
  • The level of abstraction.
  • Principle of single responsibility (SOLID: SRP).
  • Ockham's Edge and KISS.
    28.09. We rely on interfaces
  • API and Client.
  • Principle of separation of interfaces (SOLID: ISP).
  • Interface vs. Abstract Class: An Epic Battle.
  • Interface as an abstraction.
  • Encapsulation of variable aspects.
  • Conway's law.
5.10. The question of control: who controls what
  • Principle of openness and closure (SOLID: OCP).
  • Law of Demeter.
  • What are the dependencies.
  • Public and published interfaces.
  • Inversion of control in the Hollywood principle.
    • 12.10. The source of the indivisible Monolith
    • Dependency inversion principle (SOLID: DIP).
    • Problems with the word "new".
      19.10. Such a very "simple" Imitation
    • Unknown imitation.
    • What is composition and delegation: The Strategy design pattern.
    • Stateful and Stateless objects.
    • Correct use of no-imitation: Immutable Object pattern.
    • Single-threading and multi-threading and what is the prohibition of imitation here.
      26.10. We mix LSP with prohibition of imitation and inversion of dependencies
    • Barbara Liskov's substitution principle in theory (SOLID: LSP).
    • LSP in human language.
    • Consequences of LSP violation in detail.
    • IoC + LSP + final.
    • Prohibition of imitation in external libraries.

    Mentor: Natalya Nyshta, Senior Software Engineer

    —has a higher professional education as a software engineer

    — 14+ 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



    Check out Natalie's talk "Analysis and Design Principles within OOP. Inheritance forbiddance problem in a singlethreading PHP" at the PHP fwdays'21 conference

    Ticket price

    Attendee's ticket

    Access to the course

    Workshop presentation

    Access to the course recording (1 year)

    Access to the telegram chat, where the speaker will answer questions

    Certificate of the participant

    Available payment in installments from Monobank and purchase in installments from Privatbank
    13 000 UAH ≈€325
    till 21 September 4 days left
    till 25 August — 9000 UAH≈€225
    till 15 September — 11000 UAH≈€275
    Buy ticket

    Fwdays is Ukrainian company, that is why payment for services is made in the national currency of Hryvnia. You can see the approximate price in Euros at blocks with the price.

    Group discounts are available  
    Напишіть нам на academy@fwdays.com для прорахування вашої знижки.
    Sign in
    Or by mail
    Sign in
    Or by mail
    Register with email
    Register with email
    Forgot password?