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

    @MadridianFox
    Web-программист, многостаночник
    Вы не сказали что за приложение. Если это сервер, то делайте микросервисы на чём хотите. Если более-менее нагруженное десктопное приложение - то ищите способы вызвать код на каждом языке из, допустим, С/С++. Если не сильно требовательное к производительности десктопное приложение, то можно через stdout или соккеты данные передавать между несколькими приложениями на разных языках (как это в AI Russian Cup делается).
    Ответ написан
    4 комментария
  • Вынесение в трэйты работы с API платёжных систем, можно ли?

    @MadridianFox
    Web-программист, многостаночник
    Платёжные системы потому и можно назвать общим понятием "платёжные системы" потому что они предназначены для выполнения каких-то сходных операций. Если вы хотите иметь возможность подменять их или соединять друг с другом в разных комбинациях - вам необходимо привести их к общему интерфейсу, а все отличия инкапсулировать.
    Только так.. и это бигмак)
    Ответ написан
    Комментировать
  • "Сильные" книги по Symfony и архитектуре приложений?

    @MadridianFox
    Web-программист, многостаночник
    Мартин Фаулер - Шаблоны корпоративных приложений. Это как раз вторая ссылка что Вы сами указали. Эта книга не может быть старовата, т.к. поясняет общие принципы, которые применяются во всех фреймворках.
    Более того. Всякие Symfony-специфичные книги могут быть староваты, но не Фаулер.
    Ответ написан
    Комментировать
  • Как спроектировать сайт по поиску работы?

    @MadridianFox
    Web-программист, многостаночник
    Налицо неправильное разделение программы на модули. Наивно полагать что в модуле работника должна быть модель работника, поиск работника и, например личный кабинет работника из-за того, что все они относятся к работнику.
    Деление системы должно происходить после анализа предметной области и составления списка вариантов использования. При составлении вариантов использования, учитываются роли пользователей.
    В вашем случае чётко выделяются две роли - работник и работодатель. У каждого из них есть несколько возможностей на сайте - создать профиль/резюме/вакансию, искать чужой профиль/вакансию/резюме.

    При этом работодатель может создавать вакансию и искать резюме, а работник наоборот.
    Что это значит? Что во-первых модули надо компоновать именно так. А во-вторых - процессы, исполняемые представителями обеих ролей пересекаются. Модуль работодателя не имеет смысла, без модуля работника, т.к. если работник не создаст резюме, то работодателю нечего искать.
    Ну и в-третьих, оба модуля очень сильно связаны друг с другом. Модели придётся выносить наружу, чтобы использовать и там и там. Так зачем же модули?
    Ответ написан
    Комментировать