Цели занятия

  • после занятия вы сможете:

  • использовать фундаментальные принципы построения приложений.

Краткое содержание

  • «когда мы пишем код — мы придерживаемся какой-то парадигмы.

  • в этом занятии мы обсудим различные парадигмы программирования и увидим, что не ООП-единым, на примере использования функциональной парадигмы.»

  • функции высшего порядка, каррирование, замыкания;

  • детальное изучение ООП.

Задачи вебинара

Результаты

  • выделять и улучшать модули своего приложения.

Преподаватель

  • Дмитрий Кириллов

  • Дата: 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)

Выводим товары:

Результат:

Добавляем реактивность: фича добавления нового товара

В веб-формах:

(warning) при добавлении тут новых товаров, они попадают в массив, на который подписаны наши функции, т.о. все перерисуется автоматически.


Домашнее задание:

  • поиграться с лямбда-функциями

  • поиграться с array- функциями выше

  • + решить задачку, до 07.04.2022 :

FAANG ~ Facebook, Amazon, Apple, Netflix, Google


Доп. материалы


(warning) Это фрагменты урока из полного курса, доступного на офиц. сайте Otus : “PHP Professional

Tags

Нет комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.