• Какие архитектурные решения можно применить?

    myks92
    @myks92 Куратор тега PHP
    Нашёл решение — пометь вопрос ответом!
    1. Нет деления по слоям из DDD. Нужно отделять бизнес логику от инфраструктуры. Ответственно контроллерах минимум кода и никакой логики.
    2. Анемичные сущности, которые не имеют контроля над своим состоянием агрегата.
    3. Сущности знают про то где они хранятся. Если завтра мы начнем хранить данные в другом месте, то ваш код придётся переписывать.
    4. Про структурные паттерны можете почитать тут: https://refactoring.guru/ru/design-patterns/struct.... Там есть примеры на PHP.

    В целом могу сказать, что код пишется для человека, а не для машины. Поэтому не нужно бездумно писать код и раскидывать всё в разные папки по всему проекту. Выделяйте модули и ложите всё рядом с ним. Можете почитать про модульный монолит.

    Например, у вас Request размазан по разным папкам: Events, Models, Listeners и т д. Вам завтра скажут вынести модуль заявок в отдельный сервис или вообще его удалить. Вместо того чтобы удалить одну папку, то вам нужно во всех папках найти где есть Request. Конечно, это не удобно. Не говоря о том, то вся логика, в том числе и бизнес логика хранится по всему проекту. И это у вас простой код. А что если будет 100 разных модулей. С вашей структурой вы точно увязните. Плюс у вас будет куча конфликтов при разработке. Нельзя за каждым программистом закрепить папку, за которую он отвечает. Каждому программисту придётся лезть в соседнюю попку, потому что они общие. Ревью делать тоже сложно.
    Ответ написан
    2 комментария
  • Какое существует ПО для построения информационно-аналитической системы?

    vabka
    @vabka
    Токсичный шарпист
    Вы описываете какое-то волшебное приложение, которое умеет работать с любыми данными и делать с ними что угодно.

    Такие продукты не совсем существуют.

    Скорее всего вам нужна какая-то платформа типа 1С, в которой вы сможете писать свой код для обработки данных.
    Но ИМХО смысла в этом нет и вы зря сразу так взяли требование

    минимальное количество самописного кода, вместо этого использовать готовые продукты

    Брать готовую ОС, СУБД, и веб-сервер - это нормально.
    Искать готовое решение прикладных задач - бессмысленная трата времени.
    Ответ написан
    2 комментария