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

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Если вы пытаетесь в контексты, то лучше в каждом контексте иметь свои сущности, плюс какие-то шаред сущности.
    Потому что User в контексте авторизации должен иметь логин-пароль, роли.
    В контексте Корзины это покупатель у которого другой набор аттрибутов вроде адреса доставки, списка покупок, вишлиста и т.д.
    Другое дело что если у вас мало опыта в таких вещах, то лучше в такому делению приходить через рефакторинг, а не пытаться сходу придумать высокоуровневую архитектуру.
    Ответ написан
    Комментировать
  • Как улучшить контроллер, метод, архитектуру?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Вам сейчас насоветуют создать сервисы, сделать репозитории, соединить это через интерфейсы и события. Потом залетит какой-то умник и расскажет про DDD, Saga, очереди, микросервисы.
    В итоге у вас простыня спагетти кода превратится в слоёный лазанья код, с огромной избыточностью и трудностями в поддержке.

    Я советую сразу начать писать тесты и начать с простых методов рефакторинга вроде извлечения метода для избавления от дублирования Ссылка удалена модератором. Есть книга Фаулера "Рефакторинг"
    Начинайте с этого, тогда вы будете хотя бы понимать что и зачем делаете, а не повторять карго культ.
    Ответ написан
    8 комментариев
  • Как правильно спроектировать Laravel приложение с уклоном в enterprise?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Главное правило счастливого энтерпрайза - не тащить методики и технологии в которых нет опыта. Если вы не работали на проектах с DDD, не делали своих пет проектов чтобы опробовать подход, то не надо тренироваться на больших проектах.
    Я уже 10 проектов в мире симфони видел и с тремя работал, везде попытки сделать DDD заканчивались невероятной сложностью поддержки после которой даже битрикс не кажется ужасом. 4 дня и изменения в 32 файлах чтобы добавить в список сортировку и фильтрацию... Наверное, можно писать на DDD правильно и с быстрой разработкой и лёгкой поддержкой, но я ещё таких проектов ни сам не создавал, не работал с чужими, не видел в качестве примеров. Поддерживать 10 летний легаси стартанутый на php4 с глобальными переменными гораздо проще чем любую поделку ddd-шников.
    Ответ написан
    Комментировать
  • Грамотная архитектура в Laravel?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Нелепица, в обоих примерах возвращается AR, смысла в таких репозиториях нет. Этим страдали 100500 лет назад, когда не было 100500 толковых db и придумывалось не под умирающий php, а под системы, где объекты долго хранятся в памяти и лишь иногда персистятся. Думал лет 10 назад все этой фигнёй отстрадали, так нет, вернулась мода на ddd.

    Репозитории должны оставаться простыми, если нужны дополнительные проверки, джойны, условия, сортировки, то создавайте критерии и спецификации https://en.wikipedia.org/wiki/Criteria_Pattern https://en.wikipedia.org/wiki/Specification_pattern
    Ответ написан
    1 комментарий
  • Как лучше спроектировать класс?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Создавать сервис(хелпер) напрямую это не лучший подход, инджекть его в метод-экшен. DI создаст и сам хелпер и заинджектит в него SpecificModel, и при тестировании мокать будете без проблем.
    class FooController {
        public function getIndex(\MyHelperClass $helper) {
            $helper->doWork([1, 2, 3, 4]);
        }
    }
    Ответ написан
    5 комментариев
  • Первые шаги в PHP, имет ли смысл начинать с MVC?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Begetan, фигня это
    1. потому что ты сам не умеешь и у тебя получитс кака.
    2. программист как раз и умет строить архитектуру под изменяющиеся требования, а вы будете каждый раз мереписывать с нуля.
    3.а твоё врем бесплатно? изучение php и программирования это в сотню раз больше времени, чем написание проекта.
    4. любой нормальный программист, даже не вкладывая душу, сделает проект лучше, чем самоучка без опыта пусть даже и пытающийся из-зо всех сил. Старанием не заменишь опыт.
    5. вы готовы выбросить кучу времени, жертвовать личной жизнью ради того, чтобы написать корявый стартап. который не выстрелит либо из-за плохих идей и пиара, либо из-за кривой технической реализации?

    бред, бред, бред. почему некоторые люди так ненавидят и не ценят себя любимого, придумывая приключения на свою пятую точку.
    Ответ написан
    5 комментариев
  • Первые шаги в PHP, имет ли смысл начинать с MVC?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    если это хобби для стартапа, то смысла нет. заказать нормальный проект у опытных программистов на несколько порядков выгоднее, чем изучать язык программирования. а затем убить стартап кривой реализации.
    Ответ написан