Ответы пользователя по тегу Проектирование программного обеспечения
  • Как улучшить контроллер, метод, архитектуру?

    @jazzus
    В первую очередь нужно использовать сервисы Ларавел. Они очень хорошо работают и постоянно улучшаются. См документацию. Далее свои классы, но не просто "тупо выносить код в сервис", а разделять классы на задачи. Все не нужно выносить в сервис, т.к. тогда без разницы, что засирать - контроллер или сервис. Лучше тогда простыня в контроллере без доп файлов. Разделяй классы на логические действия, чтобы их можно было изолированно переиспользовать. Нужно активировать юзера со сложной логикой? Класс UserActivate, который ты можешь использовать в разных местах. А не UserService, который и активирует, и удаляет, и ничем от простыни в контроллерах не отличается. Жизнь тебе не упрощает. А UserActivate упрощает, делает код легким в поддержке/рефакторинге, понятным для человеческого глаза и чистым. В такое приложение можно быстро вносить изменения, а не разгребать простыни. Простыни не из-за феншуя не любят, а потому что поддерживать их с ростом приложения все труднее. Простые по функционалу приложения превращаются в "сложнейший проект". Поэтому сервисы обязательно, но в первую очередь классы Ларавел, т.к. они покрывают большую часть потребностей.
    Ответ написан
    Комментировать
  • Допустим мне нужно по-быстрому слепить MVP для небольшой CRM - есть ли средства более быстрые, чем PHP-фреймворки?

    @jazzus
    модули типа Auth, User, Profile и пр.

    Laravel Jetstream - здесь будет аутентификация, лк юзера, загрузка фото, смена паролей ит.д. вместе с фронтом. Дальше тебе нужна админка. Я юзал Backpack, т.к. не знал, что у Laravel есть своя админка чья документация в разы логичнее и понятнее. Для много чего еще - куча пакетов на гитхабе. Например, у Spatie есть хорошие решения.
    Ответ написан
    1 комментарий
  • Контроллер одного действия в MVC?

    @jazzus
    Смотря для каких целей - посмеяться, ок. В реальном проекте говнокод и неудобно поддерживать. Не надо путать метод и класс. Для crud в Ларавел используют ресурсные контроллеры которые тянут за собой плюхи типа политик, подключаемых одной строчкой кода через конструктор и роутов для каждого метода. Одобрено тысячами разработчиков. Другие методы можно вынести в новый контроллер.
    Ответ написан
    Комментировать
  • Laravel pivot or model при связи трёх таблиц, что лучше использовать?

    @jazzus
    movie_person (movie_id person_id) person_role (person_id role_id)
    связать все belongsToMany.
    Только я бы role переименовал т.к. это ближе к системным ролям юзеров, а не контенту.
    Ответ написан
    6 комментариев