Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Лайвкодинг 2022.02.08: рефакторинг фильтров компонента таблицы в объектно-ориентированной парадигме

Автор: Михаил Влазнев

Загружено: 2022-02-08

Просмотров: 12

Описание:

Практическая часть:
мы рефакторили фильтр в стандартной таблице
до рефакторинга фильтр хранился в виде массива объектов типа type TableParam = string|TableParamElement|TableParamElement[]|TableDate
после рефакторинга фильтр стал храниться в виде массива экземпляров классов из иерархии TableParam, TableParamString, TableParamObject, TableParamArray, TableParamDaterange
родительский класс определяет сигнатуры методов для конверсии фильтров в параметры запроса на бек и их визуального представления
дочерние классы содержат их реализацию
в результате код для работы с каждым конкретным типом данных в фильтре переехал из самой таблицы в классы фильтров
добавлять новые типы фильтров в шапку таблицы теперь легко и приятно
Теоретическая часть:
мы разбиваем код на слои абстракции, отделяя обобщенный алгоритм работы с параметрами фильтра от алгоритма работы с каждым конкретным типом данных в фильтре
используем наследование из ООП для построения иерархии классов фильтров
используем инкапсуляцию из ООП - каждый дочерний класс содержит внутри себя функционал для работы со своим внутренним состоянием
используем полиморфизм из ООП, переопределяя методы родителя в потомках, и вызывая их там, где по сигнатуре ожидается родительский класс
используем Liskov Substitution Principle из SOLID - обобщенный код работает с родительским классом, хотя по факту везде передауются экземпляры конкретного дочернего класса
используем Dependency Inversion из SOLID - сначала пишем клиентский код, чтобы опытным путем определить наиболее удобный для нас контракт класса TableParam, потом пишем реализацию функционала в конкретных классах
Полезные приемы:
использовать type guards, чтобы перейти от общего типа типа(родителя) к конкретному(дочернему классу)
не стесняться выкидывать читаемые исключения в местах, где процесс выполнения программы может пойти не так, чтобы облегчить себе отладку

Лайвкодинг 2022.02.08: рефакторинг фильтров компонента таблицы в объектно-ориентированной парадигме

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

array(10) { [0]=> object(stdClass)#4526 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "QWx6QBlpvns" ["related_video_title"]=> string(88) "1. Встреча на Патриарших. Мастер и Маргарита. Full HD" ["posted_time"]=> string(19) "1 год назад" ["channelName"]=> string(19) "NightHORROR_Channel" } [1]=> object(stdClass)#4499 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "_jVL2-x1vXQ" ["related_video_title"]=> string(128) "⚡️Трамп внезапно запросил помощь у Путина || Зеленского бросает НАТО?" ["posted_time"]=> string(23) "9 часов назад" ["channelName"]=> string(23) "Время Прядко" } [2]=> object(stdClass)#4524 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "96bE3Hwcq68" ["related_video_title"]=> string(65) "Лайвкодинг 2021.10.07: СЕО и Yandex Cloud Functions" ["posted_time"]=> string(21) "3 года назад" ["channelName"]=> string(27) "Михаил Влазнев" } [3]=> object(stdClass)#4531 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "70Mo8v_S7Mg" ["related_video_title"]=> string(62) "УАЗ ПАТРИОТ - Качественный провал?" ["posted_time"]=> string(24) "20 часов назад" ["channelName"]=> string(26) "ASATA “BORODA” channel" } [4]=> object(stdClass)#4510 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "f5vLvG-P73c" ["related_video_title"]=> string(126) "ООП На Простых Примерах | Объектно-Ориентированное Программирование" ["posted_time"]=> string(27) "5 месяцев назад" ["channelName"]=> string(14) "Vlad Mishustin" } [5]=> object(stdClass)#4528 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "7B8300C4bRk" ["related_video_title"]=> string(110) "Comedy Club: Отдых в Дубае | Скулкина, Шкуро, Бутусов @TNT_television ​" ["posted_time"]=> string(23) "5 часов назад" ["channelName"]=> string(6) "ТНТ" } [6]=> object(stdClass)#4523 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "i-FFVM4cIXQ" ["related_video_title"]=> string(138) "База по Базам Данных - Storage (Индексы, Paging, LSM, B+-Tree, R-Tree) | Влад Тен Систем Дизайн" ["posted_time"]=> string(22) "11 дней назад" ["channelName"]=> string(15) "Влад Тен" } [7]=> object(stdClass)#4533 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "L7zBT613GXw" ["related_video_title"]=> string(108) "Проклятый Поезд - Крупнейшая Катастрофа / Подсосенка 1992 год" ["posted_time"]=> string(24) "19 часов назад" ["channelName"]=> string(14) "PRO МЕТРО" } [8]=> object(stdClass)#4509 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "TxZwqVTaCmA" ["related_video_title"]=> string(80) "SOLID ПРИНЦИПЫ простым языком (много примеров)" ["posted_time"]=> string(21) "3 года назад" ["channelName"]=> string(7) "Ulbi TV" } [9]=> object(stdClass)#4527 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "rhPFV1qtE1o" ["related_video_title"]=> string(142) "План нападения России на Европу. Наступление в Сумской области захлебывается" ["posted_time"]=> string(21) "4 часа назад" ["channelName"]=> string(18) "The Breakfast Show" } }
1. Встреча на Патриарших. Мастер и Маргарита. Full HD

1. Встреча на Патриарших. Мастер и Маргарита. Full HD

⚡️Трамп внезапно запросил помощь у Путина || Зеленского бросает НАТО?

⚡️Трамп внезапно запросил помощь у Путина || Зеленского бросает НАТО?

Лайвкодинг 2021.10.07: СЕО и Yandex Cloud Functions

Лайвкодинг 2021.10.07: СЕО и Yandex Cloud Functions

УАЗ ПАТРИОТ - Качественный провал?

УАЗ ПАТРИОТ - Качественный провал?

ООП На Простых Примерах | Объектно-Ориентированное Программирование

ООП На Простых Примерах | Объектно-Ориентированное Программирование

Comedy Club: Отдых в Дубае  | Скулкина, Шкуро, Бутусов   @TNT_television    ​

Comedy Club: Отдых в Дубае | Скулкина, Шкуро, Бутусов @TNT_television ​

База по Базам Данных - Storage (Индексы, Paging, LSM, B+-Tree, R-Tree) | Влад Тен Систем Дизайн

База по Базам Данных - Storage (Индексы, Paging, LSM, B+-Tree, R-Tree) | Влад Тен Систем Дизайн

Проклятый Поезд - Крупнейшая Катастрофа / Подсосенка 1992 год

Проклятый Поезд - Крупнейшая Катастрофа / Подсосенка 1992 год

SOLID ПРИНЦИПЫ простым языком (много примеров)

SOLID ПРИНЦИПЫ простым языком (много примеров)

План нападения России на Европу. Наступление в Сумской области захлебывается

План нападения России на Европу. Наступление в Сумской области захлебывается

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]