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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Т.к. мы не можем сделать выборку всех заказов в статусе X, т.к. их очень много, но мы и не можем сделать выборку с лимитом т.к. не знаем точно, что данные заказы будут оплачены платёжной системой Y и наоборот, если будем строить выборку от оплат. В общем получается, что мы решаем вопросы, которые легко решены в БД, но мы их пытаемся решить в коде. Как поступать то?

    Это типичная проблема которая возникает после распила монолита на части. Если раньше
    монолит ходил в базу и делал любые SQL, то после разделения отвественностей уже такие
    игры не работают.

    Вы говорите что не знаете точно какие заказы оплачены. Вам нужно создать новый метод
    который в правильном сервисе выдает только оплаченные заказы. А в базу ходить не надо.
    Она вообще может быть недоступная по инфо-безопасности для прочих модулей.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почитай про GraphQL https://graphql.org/ . Многим - нравится. Можно декларировать гетерогенные структуры и типы данных.
    Ответ написан
  • Как правильно реализовать алгоритм Дейкстры в Python с применением ООП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Графы и графовые алгоритмы являются хорошим краш-тестом для memory. Очень сложно придумать оптимальную структуру для графа чтоб было и экономно и быстро искать исходящие и входящие ребра в вершину.

    Есть компактные структуры из примитивов такие как матрицы смежности например. Но они могут быть плохие
    в другом. Например в поиске в глубину. Насколько Алгоритм Дейкстры пригож для этих структур - никто не знает.

    Я-бы предложил брать большой граф на несколько тысяч вершин и гонять его в разных структурах добиваясь
    хорошего соотношения скорости к размеру потребляемой памяти.
    Ответ написан
    2 комментария
  • Какую книгу выбрать для изучения паттернов проектирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Переходить на паттерны следует когда "седина" уже тронет виски. Я сильно сомневаюсь что начинающий вообще сможет обосновать применение паттерна в каком-то продуктовом кейсе. Да что там начинающий. Там синьоры-помидоры спорят до хрипоты и рвут бороды.

    Есть также такая философия что самый лучший паттерн - тот который вы не внедрили.

    Книгу можете брать любую. Но начните с паттерна Singleton, Facade, Compositor...
    Ответ написан
    Комментировать