Подход реализации фильтров для интернет магазина на Laravel

Описание к видео Подход реализации фильтров для интернет магазина на Laravel

Новый ролик из рубрики "Плохой/хороший коД" по просьбам подписчиков;) Разберем на этот раз неудачную реализацию фильтров. Очень распространённая задача для интернет магазинов.

#интернетмагазин#laravel#cutcode
---------------------------------------------------------------------------------
❗️❗️❗️Поддерживайте канал, оформите доступ на моём проекте cutcode! Это очень модно - https://cutcode.ru/

🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - https://cutcode.ru/chat-bot
---------------------------------------------------------------------------------
⏰ Таймкоды:
00:00 Введение
01:34 Обзор проекта
03:28 Что выполнено
04:39 Обзор app.php, сервис провайдера и фильтров
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-канал: https://www.youtube.com/c/CutCodeRu?s...

📼 Курс по Laravel с нуля:
   • Курс по Laravel 8 обучение с нуля. Бе...  

Подход реализации фильтров для интернет магазина на ларавел

---------------------------------------------------------------------------------
🔗 наш сайт: https://cutcode.ru/
📷 наш instagram:   / cutcoderu  
📱 Наш telegram-канал: https://t.me/laravel_cutcode

Комментарии

Информация по комментариям в разработке