🧩⚛️React + структуры данных = суперкод: 7 примеров для практики
Представляешь, оказывается, если правильно подобрать структуру данных, можно не только заставить приложение летать, но и сделать код настолько чистым и красивым, что глаз не оторвать. Серьезно, это как убраться в квартире — и жить приятнее, и гостей не стыдно позвать. Причем, это не какая-то там магия — это просто грамотный подход, который может освоить каждый разработчик, было бы желание!
Forwarded from Библиотека программиста | программирование, кодинг, разработка
📨Как работают очереди и брокеры сообщений
Очередь сообщений — структура данных, которая хранит сообщения в порядке FIFO. Представьте, что вашему приложению нужно обрабатывать файлы, которые загружают пользователи. Очередь сообщений в этом случае может выступать как очередь задач, обрабатывающая задания асинхронно:
1️⃣ Пользователь загружает большой файл для обработки. 2️⃣ Веб-сервер принимает файл и создает задание. 3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище. 4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.
Это самый простой пример. Очереди сообщений можно использовать для:
✔️ Планирования и управления фоновыми задачами. ✔️ Распределения задач между несколькими рабочими процессами. ✔️ Управления сервисами подписки и уведомлений. ✔️ Буферизации данных. ✔️ Повторных попыток обработки платежей и многого другого.
Akhenaten стремится сделать оригинальную игру Pharaoh совместимой с современными системами с помощью переработанного оригинального движка. В отличие от оригинальной игры, разработанной Impressions Games, Akhenaten — это результат усилий сообщества, направленных на то, чтобы сохранить игру и сделать её доступной. Позволяет загружать оригинальные сохранения из Pharaoh и проходить начальные миссии кампании без особых проблем.
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем: 👉контент-менеджеров для ведения телеграм-каналов 👉Переводчик и автор оригинальных статей
😱 Опасность устарела, неопределенность недопустима: undefined behavior в С++20/23/26
В современных стандартах С++ стало меньше UB. Разбираем на конкретных кейсах.
— Начиная с С++20 отрицательные целые числа обязательно должны быть представлены в дополнительном коде. — Введение std::ssize, возвращающего знаковый размер контейнеров, уменьшает количество ошибок и UB в циклах. — Расширение времени жизни временных объектов в циклах for, появившееся в С++23, решает неочевидные проблемы. — Казалось бы, мелочь, но инициализация std::string нулевым указателем раньше была UB, a теперь запрещена. — В С++23 появился эксклюзивный режим открытия файла (O_EXCL), что решает проблему гонок (time-of-check to time-of-use).
Некоторые конструкции языка признаются небезопасными и устаревшими, также проходимся по ним: — Осталось ли что-то от volatile? — Можно ли теперь делать неявный захват this по значению в лямбдах? — Какие операции с enum теперь не в почете.
🤼 Генеративно-состязательная нейросеть: ваша первая GAN-модель на PyTorch
Подробная инструкция построения генеративно-состязательных нейросетей (GAN) на примере двух моделей, реализованных с помощью фреймворка глубокого обучения PyTorch в нашей статье. 👇
Хочешь узнать, как обрабатывать миллионы событий в секунду и почему такие гиганты, как Netflix и Uber, без ума от Kafka? Давай разберемся, как этот инструмент может превратить поток данных в золотую жилу для твоего проекта.
После многолетнего обсуждения объявлено о переименовании игрового движка Minetest, который теперь будет развиваться под именем Luanti. Новое имя образовано путём комбинирования финского слова luonti, которое переводится как «создание» (создатель проекта из Финляндии), с названием языка программирования Lua, используемого в движке. Потребность в переименовании возникла из-за путаницы, вызванной схожестью имени Minetest с названием игры Minecraft, что вводило пользователей в заблуждение и давало повод думать, что проект развивает клон Minecraft. С другой стороны, наличие слова «test» в названии наталкивало на мысли, что это тестовый продукт.
«Библиотека программиста» разыгрывает один из трех смартфонов на выбор: 🔹Samsung Galaxy S24 Ultra на 1 ТБ 🔹Xiaomi 14 Ultra на 512 ГБ 🔹iPhone 16 Pro Max на 512 ГБ
🔥А еще 99 участников розыгрыша получат скидку 50% на наш курс Базовые модели ML и приложения! Промокод будет действителен до 20 ноября.
Итоги появятся 30 октября в 20:00 по московскому времени в нашем канале Библиотека программиста. Затем мы свяжемся с победителем, который сам выберет смартфон. Тем, кто получит промокод, мы вышлем его в течение недели после окончания розыгрыша.
⚠️Убедитесь, что вам можно написать в личные сообщения или следите за результатами — если мы не сможем с вами связаться, то не сможем и отправить приз. Доставить мы можем только в города России и Беларуси.