Myvideo

Guest

Login

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

Uploaded By: Myvideo
1 view
0
0 votes
0

Новый ролик из рубрики “Плохой/хороший коД“ по просьбам подписчиков;) Разберем на этот раз неудачную реализацию фильтров. Очень распространённая задача для интернет магазинов. #интернетмагазин#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-канал:

Share with your friends

Link:

Embed:

Video Size:

Custom size:

x

Add to Playlist:

Favorites
My Playlist
Watch Later