Курс: дизайн-принципи в ООП

Складні принципи простими словами: проєктування класів та взаємодія між ними на прикладах з реальних проєктів.

Менторка: Наталія Ништа, Senior Software Engineer, 15+ років досвіду в IT, авторка статей на тему дизайн-принципів та програмування
Курс: дизайн-принципи в ООП
Курс: дизайн-принципи в ООП

На цьому курсі ви пройдете 6 навчальних сесій з проєктування класів і взаємодії між ними з точки зору інженерних ризиків, а також навчитесь ідентифікувати їх та керувати ними.

Менторка: Наталія Ништа, Senior Software Engineer, 15+ років досвіду в IT, авторка багатьох статей на тему дизайн-принципів та програмування

Ви поринете у захоплюючу “гру” моделювання об’єктів і зв'язків між ними.

    Під час цього, ви дізнаєтеся:
  • чому саме такі правила існують у світі ООП
  • яке в них підґрунтя
  • коли використовувати той чи інший принцип проєктування
  • коли можна нехтувати цими принципами
  • і як все це пов’язано між собою.

Чому курс зосереджується саме на принципах проєктування, а не на шаблонах? Якщо ви хочете круто грати в шахи, то вам потрібно почати спочатку розібратися, як шахові фігури мають рухатися по дошці (аналог принципів проєктування), а не зубрити одразу відомі шахові комбінації (аналог патернів програмування). Після проходження курсу, ви зрозумієте, чому принципи проєктування лежать в основі дизайн-патернів, та чому без них майже неможливо використати та адаптувати патерни під вашу конкретну задачу.

Курс включає приклади з реальних проєктів, а також велику кількість цікавих та захоплюючих вправ на проєктування після кожної секції.

Цей курс буде ідеальним для тих, перед ким стоять наступні питання:

  • Чому я вчу дизайн-паттерни, але ясніше нічого не стає?
  • Чому на співбесідах мене питають про принципи SOLID? Що такого важливого в них?
  • SOLID+? Який ще плюс?
  • Принципи проєктування? Я все це розумію, але як це використовувати на практиці?

Формат

  • Теоретична частина
  • Приклади з реальних проєктів: розбір коду, чому так не можна робити, і як треба
  • Розбір домашнього завдання з попередньої лекції: як би це завдання виконав автор курсу.
Матеріали в доступі:
  • Презентації
  • Відеозаписи лекцій
  • Приклади коду з репозиторія.
  • Домашні завдання з використання принципів проєктування
  • Додаткові матеріали та посилання.
  • Тести для перевірки теоретичних знань.

Всі посилання ми відправимо вам на пошту, вказану при реєстрації.

Програма

    Не повторюй себе: інкапсулюй
  • Вступ. Коротенько про китів ООП: базові принципи.
  • Рівень абстракції.
  • Принцип єдиної відповідальності (SOLID: SRP).
  • Лезо Оккама та KISS.
    Спираємось на інтерфейси
  • API та Client.
  • Принцип розділення інтерфейсів (SOLID: ISP).
  • Інтерфейс проти Абстрактного класу: епічна битва.
  • Інтерфейс як абстракція.
  • Інкапсуляція змінних аспектів.
  • Закон Конвея.
    Питання контролю: хто чим керує
  • Принцип відкритості та закритості (SOLID: OCP).
  • Закон Деметри.
  • Які бувають залежності.
  • Публічний та опублікований інтерфейси.
  • Інверсія контролю в Голлівудському принципі.
    Джерело неподільного Моноліту
  • Принцип інверсії залежностей (SOLID: DIP).
  • Проблеми зі словом "new".
    Таке дуже "просте" Наслідування
  • Невідоме наслідування.
  • Що таке композиція та делегування: шаблон проектування "Стратегія".
  • Stateful та Stateless об'єкти.
  • Коректне використання заборони наслідування: шаблон Immutable Object.
  • Однопоточність та багатопоточність і при чому тут заборона наслідування.
    Міксуємо LSP із забороною наслідування та інверсією залежностей
  • Принцип підстановки Барбари Лісков в теорії (SOLID: LSP).
  • LSP людською мовою.
  • Наслідки порушення LSP в деталях.
  • IoC + LSP + final.
  • Заборона наслідування у зовнішніх бібліотеках.

Менторка: Наталя Ништа, Senior Software Engineer

— має вищу профільну освіту за фахом інженер-програміст

— досвід в індустрії 15+ років

— авторка статей на тему дизайн-принципів та програмування

— в своїй компанії 8 років читає курс з дизайн-принципів в ООП

— Розказує в школах про програмування та любить пояснювати складні речі просто і зрозуміло.

Linkedin

Відгуки:

Курс проводиться повторно, ділимось реальними відгуками з минулого разу (з дозволу учасників)

"Якщо ви у невеликій фірмі, вас нема кому рев'ювити і бити по пальцям, програмуєте вже рік-два-більше й бачите, що добавити маленьку фічу у ваш код веде до вигоряння, депресії і переписування проєкту з нуля - то цей курс точно для вас. Для розуміння основ і усвідомлення, що це лише перші кроки."

"Для розуміння, як писати оптимально код, щоб його легко можна було доповнювати та підтримувати."

"Однозначно не для тих, у кого ще не було від власного або чужого коду реакції 'как-то тєкст нємножка па-дебільнаму напісан'. :) Курс допоміг зрозуміти, нащо досвідчені програмісти витрачають 80% часу на пояснення чому вони так зробили і 20% на те, як вони це зробили. Також тепер знаю, що робити і куди йти, коли отримую лаконічний коментар до пулл-реквесту 'почитай про SOLID'."
"Порадила б всім знайти час на цей курс для засвоєння/повторення матеріалу, бо навіть мій дід-тімлід з 20-річним стажем почав гратись з моєю домашкою, коли спитала його дещо, і став цікавитись, що я там за курс проходжу. Таким початківцям як я, які поки що бачили лише джаваскрипт, чесно, - було важко (бо ще й всі приклади на php). АЛЕ! Мені точно страшні теоретичні книжки стали вже не такі й страшні і з'явилось розуміння багатьох понять, котрі здавались чимось аж надто абстрактним."

"Можна пройти лекції просто як слухач і не напрягатись сильно, а можна заморочитись і вникати глибше - особливо над домашкою є над чим поворушити мізками."

"П.С. Палке серденько лекторці за те, що на російськомовні запитання відповідає українською!"


Вартість квитків

Attendee ticket

Доступ до онлайн-трансляції курсу: 6 сесій по 2 години

Презентація та матеріали

Доступ до запису курсу на навчальній платформі (1 рік)

Доступ до чату в ТГ, де спікер буде відповідати на питання (1 місяць)

Сертифікат учасника

*Учасники курсу отримують знижку 10% на участь в конференціях Fwdays

Якщо після першого заняття ви зрозумієте, що очікування не співпадають, ми повертаємо гроші в повному обсязі.

Доступна оплата частинами від Монобанку та покупка в розстрочку від Приватбанку
11 000 UAH ≈€275
до 1 лютого залишилось 11 днів
до 1 березня — 13000 грн≈€325
до 22 березня — 14500 грн≈€362
Купити квиток

У зв’язку з тим, що Fwdays — українська компанія, оплата послуг відбувається у національній валюті Гривні. Орієнтовну ціну у Євро ви можете побачити на блоках цін.

Діють групові знижки 
Напишіть нам на academy@fwdays.com для прорахування вашої знижки.


Дивіться доповідь Наталі "Аналіз та Дизайн-Принципи в ООП. Проблема заборони наслідування в однопоточному PHP" на конференції PHP fwdays'21

Увійти
Або поштою
Увійти
Або поштою
Реєстрація через e-mail
Реєстрація через e-mail
Забули пароль?