• На чём писать клиентское приложение с GUI?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Avalonia - если надо dotnet с обоих сторон и кроссплатформенность.
    - MAUI - если надо dotnet с обоих сторон и кроссплатформенность без линукса.
    - WebView2 - если надо dotnet на сервере, и css/html/js на клиенте, только винда.
    - ElectronJS или Tauri - любой сервер, css/html/js на клиенте, кроссплатформенность.
    Ответ написан
    3 комментария
  • Что в сленге означает "замапить"?

    @majstar_Zubr
    C++, C#, gamedev
    Это англицизм-синоним слову "отобразить". Но обычно относится к смыслу "сопоставление значений".

    Обычно это означает "произвести отображение контекста А на контекст Б". Результатом отображения является набор соответствий значений.
    Это очень высокоуровневое и обобщённое понятие.
    Но оно обозначает прямой процесс построения отображений с помощью лишь одних значений и соответствий.

    Англицизм употребляется потому, что весь процесс программирования состоит из отображений, это слово настолько перегружено, что просто бесполезно.

    Трансляция - процесс передачи из одного контекста со своей терминологией в другой контекст со своей терминологией. Если информация в одном контексте кодируется определённым набором символов, то в процессе трансляции построится абстрактное синтаксическое дерево для контекста А, потом оно будет по каким-то правилам отображаться в АСД для контекста Б, по которому будет сконструирована
    новая форма отображения информации, но уже в терминах контекста Б.

    Если вместо трансляции произвести "маппинг", то у нас информация в контексте А будет разбита на куски, информация в контексте Б будет разбита на куски, и маппинг выдаст нам набор стрелочек вида кусок А-> кусок Б.

    Маппинг - это всегда про значения. Значения кодов клавиатуры символам или функциям, enum и все задачи, в которых вы используете key-value storage и т.д. и т.п.
    Ответ написан
    Комментировать
  • Что не так с этой Диаграммой IDF0?

    Snakecharmer
    @Snakecharmer
    Широкопрофильный менеджер и аналитик
    Ваш вопрос, по сути, представляет собой задание, вряд ли вам помогут на этом сайте. Вам нужно на фриланс-биржи. Допускаю, что в профильных чатах телеграма бесплатно и подробно проконсультируют. Только не упоминайте, что не знаете нотации - вы себя так дискредитируете, лучше просто закиньте в чат задание.

    А когда вы признаетесь в своих "незнаниях", то что получается? Парень нарисовал диаграмму не зная нотации, а другой парень, тоже не зная нотации, уточняет правильная ли диаграмма на ресурсе, где вопросов по IDF0 раз-два и обчелся.
    6585be6eb29a1311450940.jpeg
    Ответ написан
    Комментировать
  • Доступ к localhost из докер контейнера?

    lssssssssssl
    @lssssssssssl Автор вопроса
    В docker-compose надо добавить
    extra_hosts:
          - "host.docker.internal:host-gateway"

    В коде использовать для обращения к localhost:8080 host.docker.internal:8080
    Ответ написан
    Комментировать
  • Как лучше организовать очередь сообщений для их разбора по графику?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы разобрался с дублями. Если есть система которая продуцирует их - то наверное можно
    как-то решить этот вопрос на уровне источника. Это performance issue который нужно обусждать.

    Можно строить всякие архитектуры на базе очередей или идемпотентных баз но при этом главная
    причина (сетевой траф) будет непофикшена а по сути спрятана под ковер.
    Ответ написан
    4 комментария
  • Как верно выбрать коммуникационный протокол для взаимодействия между микросервисами?

    Viji
    @Viji
    DevOps Engineer
    Смотрите - вы должны смотреть на требования бизнеса. Те процессы, которые не требуют немедленного подтверждения могут быть сделаны через мессаж брокер, типа Кролика или Кафки (лучше имхо). Остальные могут быть сделаны через обычный http(s) протокол - советую через ssl, тк у вас серьезные данные. Теперь как выбирать прямое взаимодействие между сервисами по https? Я советую использовать какой-либо API Gateway со своим - внутреннем доменом и все взаимодействие между сервисами вести через него, а не напрямую внутри кластера K8S или Docker Swarm итд. Получается гораздо более организованно. Не знаю, нужно ли вам gRPC, по-моему и разрабам и девопсам легче будет работать со старым добрым http для устранения неполадок и tracinga.

    После окончания дизайна проводите what-if анализ с ведущими разрабами и админом бд. А что если сообщение потерялось, брокер или база перегружена, или сеть отказала в соединении... как откатить деньги обратно итд. Все надо серьезно со всех сторон продумать! После этого вносите изменения в систему.

    На всем протяжении одного длинного действия создавайте transaction_id, которое будет распространятся по системе, включая сообщения Кролика/Кафки и записи в базе, чтобы можно было легко его найти в логах или восстановить, если где-то произошла проблема.
    Ответ написан
    5 комментариев
  • Как лучше\проще реализовать работу с серийными номерами\лицензиями чтобы не особо пиратили?

    Griboks
    @Griboks
    Забудьте все, что вы знали о лицензии. Только бесконечные серверные проверки каждую секунду. Интернет прервался на 5 секунд = приложение превратилось в картошку.

    Любые оффлайн методы защиты ломаются за пол дня.
    Ответ написан
    9 комментариев
  • Как оптимизировать задачу?

    GigaLORDex
    @GigaLORDex
    Бизнес-Системный аналитик
    Я бы еще уточнил по бизнес-процессу, а действительно ли надо каждые 6 часов дергать всех клиентов и запрашивать по ним, как вариант, можно пойти таким путем:
    - Первично дергаем всех клиентов (50к) и проверяем на долг.
    - Далее каждые 6 часов запросом дергаем только тех клиентов, по которым были взаиморасчеты. (ведь в базе могут быть клиенты, с которым взаиморасчеты уже 5 лет никто не вёл, они исторически там лежат, зачем по ним каждый раз запрашивать)
    Ответ написан
    Комментировать
  • Как оптимизировать задачу?

    Lorien_Elf
    @Lorien_Elf
    Keep calm and drop database
    Я сварщик ненастоящий, но вижу два пути:
    - Отсылать на сервер данные массивом, а не поштучно.
    - Отправлять штучные запросы параллельно.

    Оба решения требуют чтения доков на этот сервис или разговора с местными инженерами. Так как первый может не поддерживаться, а второй может вас забанить за спам :)
    Ответ написан
    Комментировать
  • Как организовать архитектуру кода для взаимодействия с БД в Golang?

    DollyPapper
    @DollyPapper
    Тут все зависит от того как вам удобно, кто бы что не говорил, нет единого стандарта нужно/не нужно. Я наоборот чаще вижу что вместо прямого источника данных подают репозитории в сервисы. И сам так делаю. Это банально удобней тестировать.
    Ответ написан
    Комментировать
  • На основе чего генерируются чертеж?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Обычная алгебра с капелькой тригонометрии и какая-то библиотека для формирования PDF.
    Ответ написан
    Комментировать
  • На чем написан десктоп-клиент telegram?

    @selyakowadim
    Ответ написан
    Комментировать
  • Как исправить ошибку в mysql бекап?

    @yurybykov
    Если не используете TABLESPACE, то новых прав добавлять НЕ НАДО!
    Нужно при вызове mysqldump указать опцию --no-tablespaces.
    Ответ написан
    Комментировать
  • Nginx no resolver defined to resolve domain.com - в чем ошибка?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Либо пропишите
    resolver 8.8.8.8;

    Либо (если не доверяете гуглу):
    apt-get install bind9Потом в конфиге:
    resolver 127.0.0.1;
    Ну а самое правильное - прописать ip адрес вместо domain.com и передавать заголовок Host на бэкэнд:
    proxy_set_header Host $host;
    Ответ написан
    6 комментариев
  • Как создать систему профилей пользователя?

    progribof
    @progribof
    живу в интернете
    Чтобы получить нужный опыт и хоть как-то начать двигаться, начните примерно по такой необязательной схеме:

    1. В базе данных создать таблицу profiles с полями user_id, avatar_path, description, nickname
    2. Создать user_profile_model.php для добавления, удаления или изменения строк таблицы
    3. Создать контроллер user_profile_controller.php для работы с моделью данных
    4. Создать страницу отображения профиля user_profile_view.php
    5. Добавьте маршрут к профилю в ваш маршрутизатор сайта (попробуйте fastrouter, он хороший) и назначьте ему ваш user_profile_controller.php

    Пользователь запрашивает страницу профиля, контроллер обращается к модели данных и получает данные, отдает их в user_profile_view.php и получает их назад обернутыми в html, после чего отдает пользователю.

    Чтобы другие пользователи не лезли к друг другу в профиль, нужна идентификация обращающихся в профиль.
    Давайте браузеру токен при авторизации и проверяйте его при попытках читать профиль. Ваши сценарии обязаны быть недоверчивыми в отношении всего, что касается важных данных. На хабре много статей на эту тему, есть куда закопаться
    Ответ написан
    1 комментарий
  • Обработка обращений пакетами?

    Stalker_RED
    @Stalker_RED
    Есть такие штуки как брокеры сообщений, они специально придуманы для быстрого приема сообщений из разных источников, и передачи их обработчикам или клиентам по требованию.
    Там по ссылке их целый список, разной степени навороченности.

    примеры:
    https://habr.com/ru/post/488654/ RabbitMQ
    https://habr.com/ru/post/496182/ Apache Kafka

    Какой именно вам лучше подойдет - сложно сейчас сказать.
    Также можно Redis с этой целью применить.

    В общем виде схема примерно такая:
    Принимаете все подряд сообщения, ставите им статус "в очереди".
    Обработчик берет сообщение, ставит статус "в работе" и дату.
    Если обработал - меняет статус на "обработано".
    Какой-то вотчер периодически проверяет те что в работе, и если времени прошло много - меняет статус "в работе" на "в очереди" и ставит счетчик ошибок. Если Ошибки повторяются - меняет статус на "здесь ошибка в сообщении, разберитесь"

    С доставкой абонентам история похожая, только статус не "в работе" а "ожидает отправку", "отправлен", "принят" и т.д.
    Ответ написан
    Комментировать
  • Можно ли заказать кресла Herman Miller из США?

    @vyhuhol
    Та заказать и привезти не проблема. Вопрос только в гарантии, она 12 лет и как в случае необходимости решать? Я брал на hmstore.com.ua и хоть знаю, к кому обращаться.
    Ответ написан
    Комментировать
  • Почему локальная переменная просто берёт и обнуляется?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Либо я чего-то не понимаю
    Не понимаете значение слова асинхронный
    console.log отрабатывает раньше любого errorsOnLines.push
    Ответ написан
    4 комментария
  • Что значит «Модуль А ничего не знает о модуле В»?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Либо про область видимости, либо про скрытие внутренней логики за интерфейсом
    Ответ написан
    Комментировать
  • В чем разница между внедрения зависимостей и наследованием?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Если честно, то это принципиально разные вещи.
    Есть принципы ООП - наследование, абстракция, инкапсуляция, полиморфизм.
    Наследование (inheritance):
    {class} extends {superClass} это способность класса или объекта базироваться на другом классе или объекте.
    Например, Dog -> Animal Cat -> Animal

    Внедрение зависимостей (dependency injection) является разновидностью IoC (inversion of control - инверсия управления). Например, есть класс, внутри которого есть объект для подключения к БД. Притом connection является интерфейсом. То какая реализация в зависимости от используемой БД будет внедрена во время рантайма на данный момент не определена.
    UserService {
    Connection connection;
    }


    Т.е. если разработчик хочет подключить БД MySQL, то будет внедрена реализация connection для работы с MySQL. Например, MySqlConnection
    Т.е. класс UserService не решает какая именно зависимость должна быть внедрена туда. За него это делает отдельный механизм согласно конфигурации.

    Я привел абстрактные примеры, чтобы лучше была видна разница между DI & inheritance
    Ответ написан
    Комментировать