Цели занятия
-
после занятия вы сможете:
-
использовать фундаментальные принципы построения приложений.
Краткое содержание
-
«когда мы пишем код — мы придерживаемся какой-то парадигмы.
-
в этом занятии мы обсудим различные парадигмы программирования и увидим, что не ООП-единым, на примере использования функциональной парадигмы.»
-
функции высшего порядка, каррирование, замыкания;
-
детальное изучение ООП.
Задачи вебинара
Результаты
-
выделять и улучшать модули своего приложения.
Преподаватель
-
Дмитрий Кириллов
-
Дата: 31.03.2022
/**/
Объектно-ориентированное программирование
Архитектура ОО-программ
Пример взаимодействия объектов
Персонажи в игре World of Warcraft
Ключевые Концепции ООП
Строительные блоки (сущности) ООП
Чем важны классы
в php нет множественного наследования классов, но есть множ. наследование и интерфейсов и трейты как общий функционал: это допустимо:
Примеры ОО-кода
Создадим классы для работы с продуктами в магазине, в ОО-стиле:
Класс Product
Класс ProductMapper
Класс ProductController
Плюсы и минусы ООП
Преимущества ООП
Недостатки ООП
Функциональное программирование
Популярные языки прошлого
Концепции функц. программирования
Пример функции: как объелинения двух функцийй
Основные концепции ФП
Иммутабельность ~ константность
Анатомия функции
Параметр — то что в декларации функции, аргумент — значение параметра в теле функции
“Чистые функции” — те , которые не меняют состояний переменных и объектов, передаваемых ей
в php отмечаются как Pure в подсказках
Функции первого класса: те, которые можем передать в другие функции
Пример: сравнение двух товаров по цене (компаратор):
Функции высшего порядка
Анонимные функции
-
используются для мини-операций
Работа со списками
Фильтрация списка: array_filter
Пример: фильтрация товаров, которые есть в наличии
То же самое с использованием стрелочной функции:
Отображение списка : array_map
Пример:
Пример №2:
Реализация:
Свертка списка: array_reduce
Пример: общее кол-во всех товаров
можно доб. отладку :
Сравнение функций
Преимущества ФП
Недостатки ФП
4. Реактивное программирование
Суть РП
Пример
Практика РП
Задача: на Vue.js (исп. его) / Angular / React написать прайс-листа
(Vue удобен, то что в одном файле можно хранить стили, код и html; хорошо совместим с TypeScript)
Выводим товары:
Результат:
Добавляем реактивность: фича добавления нового товара
В веб-формах:
при добавлении тут новых товаров, они попадают в массив, на который подписаны наши функции, т.о. все перерисуется автоматически.
Домашнее задание:
-
поиграться с лямбда-функциями
-
поиграться с array- функциями выше
-
+ решить задачку, до 07.04.2022 :
FAANG ~ Facebook, Amazon, Apple, Netflix, Google
Доп. материалы
-
Ликбез по типизации в языках программирования https://habr.com/ru/post/161205/
-
λ-исчисление. Часть первая: история и теория https://habr.com/ru/post/215807/
-
λ-исчисление. Часть вторая: практика https://habr.com/ru/post/215991/
Это фрагменты урока из полного курса, доступного на офиц. сайте Otus : “PHP Professional“
Нет комментариев