Задать вопрос
Привет меня зовут Илья

Сейчас я работаю как Team Lead и в свободное время продолжаю делиться своим опытом с другими людьми.

И кстати я еще не выгорел и так же как и 8 лет назад люблю учиться новому. Ты всегда можешь связаться со мной - по мере сил я всем отвечу

Так же меня есть свой маленький уголок в интернете это канал на Youtube и Telegram ✍️

Всех обнял ❤️
Контакты
Местоположение
Россия, Москва и Московская обл., Москва

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (27)

Лучшие ответы пользователя

Все ответы (57)
  • Какую админ-панель в Laravel выбрать?

    agoalofalife
    @agoalofalife
    Team Lead
    Из бесплатных могу вам порекомендовать orchid
    Перечислю плюсы:
    - Хорошо поддается кастомизации
    - Бесплатен
    - Документация на русском + разработчик тоже русский(я не приверженец только русского, наоборот за все английское) но часто напрямую обращался к разрабу решал какие то вопросы, на русском было конечно проще.
    - Отличная поддержка, регулярно обновляется и telegram постоянная движуха.
    - Из коробки есть сортировка, фильтры
    - Из коробки некий свой UI Kit которой сводит к минимуму трату времени на отрисовку интерфейса
    Минусы:
    - Свой подход к разработке и термины, надо потратить время для изучения, но это такое, любое решение требует время для изучения.

    Остальное можете прочитать в документации.
    Ответ написан
    2 комментария
  • Что думаете о Livewire и Inertia.js?

    agoalofalife
    @agoalofalife
    Team Lead
    И тот и другой инструмент под свой круг задач вполне подходит.
    Livewire - как вам ответили выше, хорошо подходит mvp, небольших сайтов, где нет большой нагрузки и грандиозных планов.
    Хотя кто-то берет на себя риски и делает все на нем. Из подводных камней, это у вас связаны руки в js, так же на каждое действие, он будет слать запрос на сервер. То есть написали букву в input, запрос на сервер(хотя можно оптимизировать, но тем не менее), в итоге получается такой оверхед на все.
    Стоит иметь в виду о смеси ответственностей, точнее livewire будет вас постоянно склонять к этому, так как в классах php у вас постоянно логика фронта.
    Еще могут быть не очевидные проблемы, при синхронизации данных, и вам надо будет подставлять задержки.
    У меня была проблема с загрузкой файла, в кратце есть две настройки в вашем php.ini и отдельно в файле livewire, в каждом стоит свое максимальное значение размера файла.
    Так вот- грузил я картинку по событию change, после загрузки была написана валидация, в кратце файл не грузился и в блок с валидации было пусто.
    Проблема заключалось в том, что livewire не как об этом не сообщал и не намекал, просто не грузил файл и валидация не проходила.
    Так что будьте готовы решать такие нюансы.
    Мой субъективный опыт получился двоякий, с одной стороны мне понравилась скорость, с другой стороны что-то не работает, возможно это временно пока все шишки не набьешь.

    С Inertia опыт пока только теоретический, но он уже ближе к нормальному стеку. Просто вам не надо думать о роутинге, api, вывода ошибок.
    Врать не буду, ибо фраза:
    В теории нет разницы между теорией и практикой. А на практике есть

    Поэтому я дополню свой ответ позже - если посчастливиться его попробывать

    Вывод
    Рекомендую попробовать оба варианта несколько раз, тогда вы составите для себя полноценное мнение об этих инструментах.
    Любой продукт который поддерживается и используется сообществом - уже лучше N фреймворка который знаете вы и еще двое людей.
    Повторюсь еще раз, имеет место быть, так как для всех копеечных проектов которые живет два понедельника - писать spa - очень дорогое и бессмысленное удовольствие.
    Ответ написан
    Комментировать
  • Можно ли использовать один метод для 2-х роутов?

    agoalofalife
    @agoalofalife
    Team Lead
    С точки зрение работы кода, у вас по двум маршрутам, обрабатывается request в одном контроллере и в одном методе, работать конечно будет.
    Но с точки зрения кода - это конечно не perfect. Тут как в классике, "Все смешалось в доме Облонских".
    - Контроллер кончено ж должен быть другой, и в данный момент не потому что просто так должно быть, а просто название route и контроллера вызывают диссонанс в первую очередь.
    - Во вторых есть такой термин как REST API, и в духе Laravel больше подходит метод show, документация

    Еще мне не нравиться ваш namespace Front, и есть ощущение что он больше не нужен, чем нужен.
    И наверное category всегда лучше чем cat или c.
    Еще можете прочитать про resources

    Ну и главное, про сокращение кода:
    - "Чтобы не создавать еще метод"(где-либо)
    - Чтобы не создавать еще класс
    - Чтобы не создавать еще таблицу в базе
    - Чтобы не создавать еще ...
    Более вероятно будет приводить к плохому коду и путаницы. Мало кода это не равно хороший код. В коммерческой разработке часто очень большая предметная область, с этим надо работать, поддерживать и тому подобное - это порождает больше кода, потому что:
    - Лучше (иногда) создать еще метод
    - Лучше (иногда) вынести в отдельный класс
    - Лучше (иногда) нормализовать и вынести в отдельную таблицу
    Advice - Прочтите документацию Laravel✌️
    Ответ написан
    Комментировать
  • Как реализовать корзину на LARAVEL?

    agoalofalife
    @agoalofalife
    Team Lead
    1. Хранить на сервере можно по-разному, в базе данных, сессии(временные файлы на диске), любой другой драйвер хранения.
    2. Надо определиться как долго будут храниться товары в корзине. Лучше хранить сессии в базе(в laravel есть такой драйвер) и корзину тоже, соответственно они будут между собой в отношении. Получается некие таблицы, для временных хранений.
    Тут как и в localStorage данные привязываются к уст-ву и клиенту(браузер), может произойти несколько сессий.
    Данные у вас временные, можно их просто подчищать, через cron например.
    Ответ написан
    Комментировать
  • Какой подход в написании тестов предпочтительнее?

    agoalofalife
    @agoalofalife
    Team Lead
    Как написал коллега выше это абсолютно разные тесты.
    - Первый пример: это модульный тест или unit. Обычно им тестируют класс и несколько классов когда они в зависимостях. Для примера если в аргументах примитив(число) в тестах можно передать все случаи 0 или даже отрицательные числа. Если у вас подход (DDD) можно протестировать инварианты.
    - Функциональные(интеграционные или E2E - end to end) тесты - (в Laravel папка Feature) тестирование черного ящика. Например вы делаете запрос и ожидаете определенного ответа. В laravel это сделано не совсем корректно - так как предлагается в тестах лезть в базу
    $this->assertDatabaseHas('users', [
                'email' => 'some@something.com'
            ]);

    Функциональное тестирование не про базу, оно о том как приложении работает в целом.
    Ответ написан
    Комментировать