Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (18)

Наибольший вклад в теги

Все теги (151)

Лучшие ответы пользователя

Все ответы (812)
  • Как аргументировать начальству создание существующего проекта заново, с ноля?

    @lega
    В большинстве случаев это экономический не целесообразно, и профессионал должен это учитывать.

    В вашем случае лучше попытаться плавно интегрировать опыт в текущий проект, разграничивая старый и новый код, (компоненты, микросервисы, "черные ящики" и т.п.), так же по чуть чуть можно будет подменять компоненты старого кода, на новые.
    В итоге через какое-то время новый код будет превалировать, и может даже можно будет завернуть старый код в отдельный ящик чтобы не вонял на весь проект.
    Ответ написан
  • Как отказаться от проекта на Upwork?

    @lega
    несколько месяцев, 200 часов работы

    Не такая и большая нагрузка, можно сказать 1-му заказчику что вам предложили больше, и вы можете отказаться если он повысит до аналогичной суммы (что наврядли), поэтому предложите просто поддержку проекта по той же цене - небольшие доработки (т.к. нагрузка все равно не большая), что-бы завершить этап, помочь передать проект и т.п., бросать клиентов не хорошо особенно лояльных (может новый вас бросит через неделю).
    Если не будете успевать, то у нового клиента можно попросить временно уменьшенную нагрузку (30ч а не 40 например) для "закрытия" старого проекта.

    Наверно, как то так.
    Ответ написан
  • Зачем нужен Docker?

    @lega
    По мимо изоляции и т.п. Docker ценен тем что приложения превращаются в "продукт".

    * Например попробуйте настроить на сервере OpenVPN - нужно будет читать доки, настраивать конфиги, сертификаты, гуглить баги именно под ваш сервер. Вообщем - трата времени, а с доккером это одна команда за пару минут - и OpenVPN готов.
    * Нужен почтовый сервер уровня гугла и яндекса - одна команда докера (без него опять же трата кучи времени).
    * Хотите использовать cassandr'у - какую там версию джавы надо? а не пересечётся ли она уже с установленной? С докером вам не обязательно знать что-там внутри - работает и это достаточно.
    Т.е. докер дает вам как бы готовое решение.

    Кроме того что ваши приложения изолированы и хакнутое приложение не доберется до остальных, докер помогает защитить сам хост, т.к. дыры обычно в установленном ПО, а с докером это ПО просто не будет установлено на сам сервер (оно будет в контейнерах), а значит и дыр не будет.

    Ещё если вам нужно запустить 2 копии сервиса на одном сервере, например БД + приложение, у вас возникнут проблемы пересечения портов и путей (приложение может не дать возможности изменения портов), потом БД может возникать что один инстанс уже запущен, или БД будет возникать что в ОС уже установлена более новая версия БД и т.п. - с докером этих проблем просто нет.

    Так же бывает что на одной машине разработка работает (на дев-машине), а на сервере нет. - тут докер обещает что везде будет работать одинаково.

    // Забыл добавить
    с докером не нужно заморачиваться с логинами и паролями (я использую без пароля) т.к. база будет доступна только вашему приложению (или нескольким - как настроите).
    Ответ написан
  • Какие задачи решает реактивное программирование?

    @lega
    wikipedia говорит - в общем распространение изменений, как в формулах exсel таблиц

    Excel - наверно самый показательный пример, когда вы меняете одну ячейку, то все зависимые ячейки пересчитываются (сами), зависимые ячейки от зависимых тоже пересчитываются и т.д. Т.е. получается такой поток/разлив информации. Для реализации исходная ячейка должна обладать списком всех зависимых ячеек (первого уровня/напрямую зависимых).

    Если реализовывать такую таблицу в императивном стиле то после изменения одной ячейки нужно обходить все остальные ячейки и делать их пересчет (т.к. конечная ячейка сама тянет данные от которых зависит), после этого нужно делать ещё проход и ещё т.к. если более поздние ячейки изменяют более ранние ячейки, то ячейки зависимые от более ранних будут не актуальны. Вообщем это большая нагрузка и все будет тормозить в отличие от "точенного" изменения в реактивном стиле.
    Ответ написан
  • Как упростить код?

    @lega
    Как то так:
    totals = defaultdict(int)
    for order in orders:
        for k in ['qty', 'total_amount', 'cost', 'profit']:
            totals[k] += getattr(order, k)
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (5)