letsCode Channel
1.69K subscribers
105 photos
4 videos
396 links
Интересное и полезное из мира разработки. Обсуждения тут: https://t.me/joinchat/FeiP9xEhqHajfqhLr4z-Nw
Download Telegram
Очередное крышесносящее видео от Boston Dynamics
https://www.youtube.com/watch?v=kHBcVlqpvZ8&feature=youtu.be
Яндекс готовится к запуску своей облачной платформы-аналога AWS. Будут сервера и службы. Также для обучения-подсадки дают первую дозу бесплатно - годовое обслуживание с одним слабым сервером.
https://cloud.yandex.ru/
Неочевидная вещь, иногда сбивает с толку при встрече в тексте (тупо надо запомнить):
i18n - это сокрашение интернационализация ( i(internationalizatio)n )
l10n - это сокращение локализация ( l(ocalizatio)n )

циферка в скобках означает "мы дохера умно сокращаем и это количество пропущенных букв"
Коллективный разум в чатике даёт плоды: собрали документ по разворачиванию Spring приложения на Heroku с подключением к БД
Инструмент, помогающий протестировать работу приложения в условиях плохой сети.
Эмулирует не только задержки и низвкую скорость, но и потерю пакетов.
https://github.com/tylertreat/comcast
Расставляем точки над всеми буквами по поводу многопоточности и асинхронности.

Эти два понятия часто путают, но они решают разные проблемы.

Что есть многопоточность: разделение логики приложения на выполнение в физически разные потоки. Данный механизм помогает нам распределить нагрузку равномерно между всеми ядрами системы. Даёт профит только тогда, когда речь идёт о алгоритмах, жадных до процессорного времени. Как пример сложные математические расчёты: рендер изобраений, расчёт хэшей (привет, крипта!), перекодирование видео, расчёт физических (или химических) явлений и процессов, и прочая инженерная хрень. Как работает: берём алгоритм, отдаём ему какую-то задачу и он в отдельном треде решает её от начала и до победы, не прерываясь на перекуры.

Асинхронность же всего лишь способность разбить процесс выполнения задачи на этапы, отпускающие поток выполнения в моменты простоя. Даёт профит только на задачах с повышенной нагрузкой на IO (ввод-вывод). Тут примером могут быть обращения к БД, сетевые запросы, работа с файловой системой или внешними устройствами. Как работает: берём задачу, например запрос к rest серверу, и отдаём исполнителю (executor), который выполняет запрос к серверу, после чего натыкается на что-то вроде await или wait и паркует задачу (или ложит её на стек) и идёт выполнять следующую аналогичную задачу, возвращаясь к первой только когда она получит ответ от сервера и оповестит об этом исполнителя.
👍1