Небольшое код ревью, тесты и рефакторинг в Laravel. Плохой/хороший коД
Сегодня будем смотреть код реального проекта, где я работаю в команде с другими разработчиками. Сделаем код ревью и рефакторинг. Буду делиться с Вами процессом работы #рефакторинг#laravel#cutcode --------------------------------------------------------------------------------- ❗️❗️❗️как делать сложные сайты на laravel? Это просто с cutcode! Поддерживай мой проект - к нашему комьюнити в телеграм - там и советом помогут и много интересного - 🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут - Таймкоды: 00:00 Введение 00:43 Обзор проекта 04:10 Создание тестов 05:53 Рефакторинг Всех приветствую на канале Cutcode! Сегодня стартует новая рубрика, которую я назвал хороший плохой код. Будем смотреть на код, который имеет вопросы, серьезные вопросы, либо с небольшим запашком. И рассматривать детально проблемы, а потом буду демонстрировать код после рефакторинга. В общем и плохой и хороший код нас ждет сегодня. Вы обязательно напишите имеет ли это рубрика право на существование, либо предложите свое решение, если увидеть еще проблемы. Все это приветствуется, обязательно с вами обсудим. Но меньше слов друзья - погнали! На обзоре у нас сегодня реальный проект, работаем в команде и в процессе рефакторинга и code review сразу делюсь с вами. Думаю это заслуживает хотя бы лайка. Итак у нас класс контроллер, который отвечает за импорт данных из crm. Данные у нас приходят в json формате каждую ночь. Да возможно в целом подход не из лучших, но мы иногда привязаны к обстоятельствам и особенностям ТЗ. Импорт реализовал один из разработчиков моей команды и скажем так у нас живое code review по проблемам которые здесь есть. Сразу скажу что код рабочий импорт работает без ошибок. Но все-таки что же с ним не так? Во-первых что самое странное, это то, что код писался без тестов. Хотя на мой взгляд и я бы пошел именно таким путем, я бы использовал TDD паттерн и начал именно с тестов. Почему? Ну смотрите разработчик явно действовал следующим образом: писал код, а проверял пуля тестовый запрос либо прямо из crm, либо эмулировал через скажем postman в итоге каждый раз при любом изменении отправлял запрос и ждал ошибку, а в случае если ее нет, то смотрел все ли хорошо в базе, все ли там создалось и именно так как нужно. Лично я слишком ленив для такого подхода и определенно сразу бы написал тесты и далее контролировал бы поведение за счет тестов. Видел бы что запрос прошел валидацию, что все записи создались и они имеют правильные значения. Здесь же помимо того что каждый раз нужно самостоятельно все смотреть, но даже при таком подходе ошибиться и не углядеть что-то крайне легко. Это во-первых и это крайне критично. Во-вторых мне не нравится что здесь нет валидации данных и что мы здесь сразу делаем декодирование, хотя можно было бы перенести этот процесс в отдельный класс как раз валидации. В-третьих у нас идет метод апдейт либо create по полю ID. ID у нас явно уникальное поле. Дублей здесь быть не может и мы получается что на каждый город сразу отправляем к базе два запроса на поиск записи и на обновление либо добавление. --------------------------------------------------------------------------------- 📹 делитесь этим видео с друзьями: подпишитесь на YouTube-канал: Курс по Laravel с нуля: код ревью, тесты и рефакторинг в Laravel. Плохой/хороший коД --------------------------------------------------------------------------------- 🔗 наш сайт: наш instagram: 📱 Наш telegram-канал:
86 views
945
272
4 weeks ago 00:27:40 2
ВЕЛИКІ ТАЄМНИЦІ МАЛЕНЬКОГО КОРОЛІВСТВА
1 month ago 00:51:49 1
О новогодних книгах, жизни в маленьком герцогстве и умении создавать королевства своими руками
2 months ago 00:14:45 1
Как инвестировать с маленькой зарплатой? 3 варианта до 1 000 рублей. Инвестиции для новичков
2 months ago 00:18:01 1
Как улучшить кровообращение в ногах и лимфоток нижних конечностей не вставая с постели
2 months ago 00:16:05 1
Black Desert BDO: Коротко о Приёме 2024 FEST 10 - летие .
3 months ago 01:01:47 1
Александр Зацепин - о «Маленьком принце», силе музыки, культурном коде и важных песнях в своей жизни
3 months ago 00:55:49 1
Как стать лучшим аниматором в своём городе?
4 months ago 00:29:16 1
ПОСТНОЕ МЕНЮ из 30 БЛЮД - 30 ПОСТЫХ БЛЮД на КАЖДЫЙ ДЕНЬ! (Завтрак, Обед, Ужин, Выпечка)
4 months ago 01:25:00 1
Это Невероятно! Как Не Пропустись Своё Счастье?! | Путь К Стабильности И Гармонии! Никошо и Нго Ма
4 months ago 00:13:43 1
Типичные задачи junior разработчика в компании | Как работают джуниоры? (мой опыт)
4 months ago 01:02:49 1
Как не разрушить себя в отношениях, а создать счастливую семью?
4 months ago 00:34:07 1
Опасные и вредные яблоки. Не ешь их!
4 months ago 00:41:54 1
👼АНГЕЛ КРЮЧКОМ 🎄 (как связать рождественского ангела, новогоднюю игрушку)
4 months ago 09:28:44 1
Конференция “Наследие“ | Церковь “Посольство Иисуса“, г. Нижний Новгород
4 months ago 01:29:19 6
Шикарные носки с узором “Мелкая шотландская клетка“
4 months ago 00:00:00 1
Праздничный конгресс церквей «Посольство Иисуса» г. Нижний Новгород | Прямая трансляция
4 months ago 00:21:26 1
🍇 Когда и как НАРЕЗАТЬ ЧЕРЕНИ ВИНОГРАДА для укоренения и прививок. Как выбрать, нарезать, проверить
4 months ago 00:07:48 1
Что такое руны на самом деле (+Подарок! внутри видео)
4 months ago 00:10:54 1
Что такое UEFI и BIOS?🤔 КОРОТКО и ЯСНО обо всём!✅
4 months ago 00:50:06 1
Anivar про пустоту души, прошлое и миллионы просмотров / Чай с Жасмин
4 months ago 00:00:00 1
КАК СОХРАНИТЬ ОТНОШЕНИЯ И НЕ РАЗРУШИТЬ СЕБЯ?
4 months ago 00:05:39 8
Мои заметки про подводную охоту на Сахалине
4 months ago 00:36:22 1
Мультивселенная острова Пасхи| Истуканы, птицелюди, петроглифы
4 months ago 00:28:59 1
#УСПЕТЬПОХУДЕТЬ №1 Программа Тренировок для Похудения. Фитнес Дома.