• Зачем асинхронность?

    sarapinit
    @sarapinit
    Точу водой камень
    Асинхронное исполнение кода позволяет более эффективно использовать процессорное время.
    Если взять синхронный сценарий исполнения, то какое-то время поток приложения загружает процессор работой, далее обычно наступает ситуация, когда поток приложения ждет завершения какой-то операции ввода\вывода. Это может быть ожидание срабатывания таймера, ожидание данных от сетевой карты, ожидание пользовательского ввода и т.п. Пока происходит ожидание поток приложения не использует процессор. В некоторых случаях это нас устраивает, если другой полезной работы мы не можем совершить. В других ситуациях мы хотим одновременно что-то делать, например иметь возможность обрабатывать клики мышкой пользователя в то время как идет запрос к БД, например.
    Тогда мы задействуем асинхронный подход. В этом случае когда поток приложения доходит до ожидания окончания операции ввода\вывода, он не ждет а может быть использован для другой работы, а в момент когда закончится операция ввода\вывода и поток не будет занят другой работой, он сможет продолжить исполнение кода с того места на котором остановился.

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

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    но для чего ее можно использовать еще?

    Например, заваривание чая человеком:
    Включаете чайник с водой. Пока вода греется, кладёте пакетик чая, сахар в кружку. Тут можно и посуду начать мыть. Когда чайник выключится, наливаете в кружку и размешиваете. Продолжаете мыть посуду.

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

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

    @Zolg
    пакет это целостная сущность
    если у вас два пакета не могут работать друг без друга - это один пакет
    Ответ написан
    5 комментариев
  • Как создать обменник?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Хочу создать онлайн обменик валют, но не могу понять как он устроиен

    Может это не ваше? Есть куча других видов заработка, устройство которых вы вполне сможете понять.
    Ответ написан
    Комментировать
  • Ruby on rails???

    Sanes
    @Sanes
    Ответ написан
    Комментировать
  • Сколько может стоить альтернатива обычному хостингу на AWS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ни один архитектор наперед не скажет вам сколько вы заплатите за AWS услуги. Формула биллинга там - сложная и учитываем и транзакции и трафик и каллбеки (AWS-lambda) и ресурсы времени для инстансов. Поэтому единственные правильный путь - собрать работающий макет. Задеплоить его в AWS и понаблюдать под нагрузкой в течение месяца. Посмотреть какой пришел счет. И соотвествтенно экстраполировать на другие объемы.
    Ответ написан
    Комментировать
  • Использование Linux для различных яп?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    а можно ли использовать Python на Linux?

    Это что, стеб такой?
    Ответ написан
    Комментировать
  • Разная длина strlen на разных машинах?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как правильно тебе написали в комментариях, скрипты сохранены в разных кодировках.
    Несмотря на то что ты думаешь, что кодировки одинаковые, факты, которые ты можешь наблюдать в реальности, говорят об обратном.

    Учись верить фактам, а не своим фантазиям. Очень важное качество для программиста.

    И заодно учись скромности. Если тебе мерещится, что в твоих проблемах виновата страшная бага в пхп, то присмотрись повнимательнее. Увидишь дурацкую опечатку в своем коде.
    Ответ написан
    9 комментариев
  • Почему размноженные данные дают прирост качеству модели?

    profesor08
    @profesor08
    Конкретно на эти данные лучше натренирована. Все. Показывая одно фото каждый раз, тренируется лучшая способность распознавать это фото.
    Ответ написан
    Комментировать
  • Как распараллелить парсинг и загрузку в БД на php?

    Mouvdy
    @Mouvdy
    Похожую задачу решил для себя иначе.

    Поле в БД сделал уникальным по которому должна была идти проверка.

    При импорте делаю только INSERT. В итоге данные или записываются или нет и можно распараллелить :)

    1 млн записей на слабеньком сервере за +/- 1-3 минуты выполняется.
    Ответ написан
    Комментировать
  • Не включается монитор, хотя лампочка горит. В чём может быть проблема?

    Вот с кнопок и надо начать. Для проверки можно панель с кнопками просто отключить. А дальше нужны приборы, знания, и лучше если заведомо исправный инвертор для проверки ламп подсветки. Лучше - в сервис, если Вы этим не занимаетесь. Иначе для ремонта одного монитора нет смысла приобретать/изготавливать всё это.
    Лампы покупать под 1-4 штуки слишком дорого выходит, удобнее сразу десятками брать, чтобы в итоге цена ремонта не стала заоблачной. Конденсаторы, как сказали уже, вздуваются не все, до 100мкф никогда практически не вздуваются - проверять только прибором (ESR-micro, например, или аналогичным). Ну и дальше, может быть много всего, и слёт прошивки, и ещё что-нибудь.
    Ответ написан
    2 комментария
  • Как изменить netbeans.conf в ubuntu 18.04 если пишет, что файл только для чтения?

    Xuxicheta
    @Xuxicheta
    инженер
    Local: To make individual changes that will apply only to a specific user, put them into the etc/netbeans.conf file in the user's userdir .

    ${userdir}/etc/netbeans.conf

    The local file does not exist by default! If you don't see a ${userdir}/etc directory you have to create the file yourself. The easiest way to do that is to copy the global netbeans.conf file from the NetBeans installation folder to the local ${userdir}/etc folder, and then make the desired changes.
    Ответ написан
    1 комментарий
  • Как стать хорошим backend, C# программистом?

    2chevskii
    @2chevskii
    Если бы каждый мог в поиск, тостер бы вымер.
    отпало, информация на английском языке

    Мимо, программирование не для вас.
    Ответ написан
    3 комментария
  • Какое даст понимание язык программирование ассемблер, абсолютному новичку?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Может дать понимание как работает железо - как устроена память, что происходит с регистрами при операциях, что такое прерывания, стек, и прочее...
    ООП - это совершенно другой уровень абстракции. Как раз чтобы абстрагироваться от железа и работать с некими абстрактными сущностями - объектами, не задумываясь особо о том как это будет реализовано в железе.
    Ответ написан
    Комментировать
  • Как порциями по 200 штук распределить файлы по папкам в Linux?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Покурить мануалы mkdir, mv и башевские циклы. Ну или да, руками.
    Ответ написан
    Комментировать
  • Как обновить множество строк sql в одном запросе?

    DevMan
    @DevMan
    DUPLICATE KEY UPDATE работает по уникальному индексу, который можно (и нужно) навесить на группу полей.
    Ответ написан
    3 комментария
  • Нужно ли прорабатывать масштабирование / шардинг при использовании облачных БД?

    @vitaly_il1
    DevOps Consulting
    Отлично работает в масштабе одного сервера при текущей (довольно невысокой) нагрузке, но возникает интерес, как оно будет работать, если вдруг внезапно на нем окажется в тысячу раз больше пользователей

    Ответ очень простой - проверить с помощью stress test. То есть проанализировать текущий запросы к базе и симулировать х1000 кол-во пользователей. 90% что можно обойтись без шардинга, но опят покажет.
    Плюс - с самого начала пишите аппликацию так, чтобы read-only запросы можно было направлять на отдельный ДБ сервер, это уменьшит нагрузку на master.
    Ответ написан
    5 комментариев
  • Нужно ли прорабатывать масштабирование / шардинг при использовании облачных БД?

    inoise
    @inoise Куратор тега Amazon Web Services
    Solution Architect, AWS Certified, Serverless
    Буду довольно резким, но зато без воды:
    - облачные провайдеры не умеют в магию, только в создание ресурсов
    - реляционные базы даже сегодня умеют только в вертикальное масштабирование
    - да, думать приходится самостоятельно
    - для облегчения жизни можно использовать Read Replicas, но готовьтесь к задержкам
    - спайковую нагрузку реляционные базы выдерживать не умеют (да и остальные делают это из рук вон плохо)

    Рекомендации:
    - планируйте масштабирование
    - научитесь понимать как используются ваши данные
    - научитесь в микросервисы (и не по тому что это популярно, а по тому что так происходит изоляция данных)
    - научитесь в другие виды баз данных, например то же DynamoDB, хотя если не вникать то можно огрести еще больше проблем
    - вспомните что есть кэширование
    - прочитайте что есть такие паттерны как CQRS
    - научитесь в проектирование PWA (Progressive Web Applications)
    - выбросите это все по тому что это будет очень дорого по итогу
    Ответ написан
    6 комментариев
  • Как в консоли переименовать несколько файлов по маске?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    rename 's/-en.srt$/\.srt/' *-en.srt
    Ответ написан
    Комментировать
  • Как решить ошибку "AttributeError: 'sqlite3.Connection' object has no attribute 'fetchone'"?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Прочитать документацию к модулю sqlite3. Должно стать понятно, что fetchone - метод курсора, а не соединения.
    Ответ написан
    Комментировать