Подход реализации фильтров для интернет магазина на Laravel
Новый ролик из рубрики “Плохой/хороший коД“ по просьбам подписчиков;) Разберем на этот раз неудачную реализацию фильтров. Очень распространённая задача для интернет магазинов.
#интернетмагазин#laravel#cutcode
---------------------------------------------------------------------------------
❗️❗️❗️Поддерживайте канал, оформите доступ на моём проекте cutcode! Это очень модно -
🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут -
---------------------------------------------------------------------------------
⏰ Таймкоды:
00:00 Введение
01:34 Обзор проекта
03:28 Что выполнено
04:39 Обзор , сервис провайдера и фильтров
08:48 RangeFilter
09:28 Как добавлять новые фильтры
10:22 Фильтр с датой
11:37 Аргумент values
12:22 Тестирование
12:40 Подведение итогов
Всех приветствую на канале Cutcode! Мы продолжаем рубрику плохой хороший код.
Я заметил по недавнему опросу в сообществе, что это одна из наиболее интересных вам рубрик и как раз недавно мне попал проект в руки на код review . Проект с реализацией фильтров подобно тем что мы часто видим в интернет магазине. Сам проект простой, скажем так mvp на данном этапе реализуется с целью протестировать будет ли он иметь спрос на рынке. У меня же стояла задача провести небольшое code review и доработать немного логику фильтров. Но то что я увидел меня серьезно смутило и в дальнейшем я набросал свою реализацию. Ну а сейчас продемонстрирую вам как было на мой взгляд плохой код и как стало - хорошей гибкий расширяемый и легко тестируемый код. Немного отходя от темы могу сказать что заказчик крайне ограничивает во времени и просто спешит получить хотя бы какой-то рабочий продукт поэтому не стоит винить предыдущего разработчика в отсутствии рефакторинга иногда обстоятельства скажем так не позволяют. Но я же категорично отношусь к таким моментам и избегаю работу в коде с явным запашком, который в целом не так сложно исправить. А если нет, то проблемы будут наслаиваться и со временем ударят огромным комом. Ладно давайте взглянем о чем речь - погнали!
Визуально - как я уже говорил проект без дизайна. Frontend накидал разработчик - здесь мы имеем проект скажем так фриланс биржа среди психотерапевтов и на странице поиска присутствуют фильтры с большим набором критериев. Давайте взглянем чтобы понимать что мы будем обсуждать. Вот такой набор фильтров многие из них похожи по принципу работы, но на уровне запросов к базе имеют и расхождения в условиях. А теперь давайте взглянем на первоначальный код реализации.
На главной странице у нас все хорошо есть выборка всех необходимых психотерапевтов с пагинаций, а сама магия фильтрации уходит в scope filtr и это отличное решение. Но давайте взглянем на сам scope. Мы с вами только что видели что на проекте огромное количество различных фильтров и процесс реализации запросов к базе выглядит вот так - просто полотно условий, где что не разобрать. Большое количество дублей одних и тех же условий. Заказчик планирует расширять фильтры, добавлять новые, усложнять как визуальную часть так и часть логики и работать с тем что есть сейчас согласитесь мягко говоря неприятно. А тестировать так вообще боль. Ну и давайте также взглянем на фронт-энд часть вывода фильтров.
Ну друзья я честно говоря если на backend еще можно закрыть глаза и скрипя зубами работать, то фронт-энд совсем боль здесь дубли кода даже не вынесены в отдельные файлы и такой простой механизм казалось бы у нас оброс давайте посмотрим - практически на 1000 строк кода. Думаю тут даже не стоит что-то комментировать.
---------------------------------------------------------------------------------
📹 делитесь этим видео с друзьями:
🔔 подпишитесь на YouTube-канал:
📼 Курс по Laravel с нуля:
Подход реализации фильтров для интернет магазина на ларавел
---------------------------------------------------------------------------------
🔗 наш сайт:
📷 наш instagram:
📱 Наш telegram-канал:
1 view
694
213
14 hours ago 00:05:22 6
Секрет идеального бассейна: ЧТО СКРЫТО ЗА СТЕНАМИ? Все, что важно знать о техническом обслуживании
17 hours ago 03:18:23 49
1-я Международная Научно-практическая конференция «Север-Юг. Экоинициативы по стратегическому планированию»
18 hours ago 01:25:56 166
Вебинар «ПРАВИЛЬНЫЙ ПОДХОД К РЕАЛИЗАЦИИ ГЕНЕТИЧЕСКОГО ПОТЕНЦИАЛА В ПТИЦЕВОДСТВЕ»
18 hours ago 01:09:30 323
Бесплатный вебинар “Новый 2025 год с новыми энергиями и возможностями“. ЦИОТ “Сфера“
21 hour ago 00:00:52 5
Кухня по индивидуальным размерам и косметический ремонт под ключ
21 hour ago 00:28:18 11
Ноябрь 2024: шестой тест Starship, непонятный запах из «Прогресса», «сухопутный авианосец» от XPeng
23 hours ago 00:06:10 665
Для Камчатки 2024 год стал годом больших перемен. Нам удалось добиться начала реализации важнейшего для региона проекта, в котор
23 hours ago 00:01:29 1
В продаже экодом 114 м2 из соломита с ремонтом под ключ
1 day ago 00:00:44 1
Продажа дома, Криводановка, Новосибирский район, ул. Рябиновая. Агентство недвижимости “Жилфонд“
1 day ago 00:00:43 1
Продажа дома, Красный Яр, Новосибирский район, днт Созвездие. Агентство недвижимости “Жилфонд“
1 day ago 01:51:43 946
Осторожно, ваши желания будут сами хотеть вас 🧲 Научный подход и 100% результат реализации ваших целей в 2025 году
1 day ago 00:02:27 1
▶️ Продолжается приём заявок на участие в программе «Инициативное бюджетирование» на 2025 год. На реализацию из областного бюдже
1 day ago 00:45:12 358
По следам 1BRC: трюки и подходы к оптимизации производительности / Позитивный JVM Митап. Никакого Spring
2 days ago 00:58:46 1K
Периоперационное ведение пациентов с ИБС и синусовым ритмом: ключевые шаги до и после вмешательства.
2 days ago 00:02:27 1.1K
На Брянщине продолжается прием заявок на конкурс инициативных проектов на 2025 год
2 days ago 00:05:24 4
В продаже 3-я квартира 72 м2 звоните :89386510588 Олеся
2 days ago 00:03:09 124
Планеты в астрологии: МАРС
2 days ago 00:01:26 34
Масштабирование бизнеса и построение отделов продаж. Константин Пономарев. «Бизнес перезагрузка»
2 days ago 00:03:28 139
Волонтеры «РН-Юганскнефтегаза» за год реализовали более 30 проектов
2 days ago 00:22:14 155
Контейнеры под защитой: как справиться с вызовами безопасности в эпоху виртуализации
2 days ago 00:03:00 4
⚠ Какие профессии можно выбрать 💯 Работа в саратове свежие вакансии для студентов ⚠
2 days ago 00:00:57 4
В новых регионах досрочно приступили к реализации проектов, запланированных на 2025 год
2 days ago 00:05:30 6
[Консультации по недвижимости [Сергей Заводских]] Стоит ли жестко торговаться, обзванивая объявления о продаже недвижимости на Ц
2 days ago 00:06:59 1
Серия совещаний по ключевым статьям бюджета 2025-го подходит к концу