📨 Как работают очереди и брокеры сообщений
Очередь сообщений — структура данных, которая хранит сообщения в порядке FIFO. Представьте, что вашему приложению нужно обрабатывать файлы, которые загружают пользователи. Очередь сообщений в этом случае может выступать как очередь задач, обрабатывающая задания асинхронно:
1️⃣ Пользователь загружает большой файл для обработки.
2️⃣ Веб-сервер принимает файл и создает задание.
3️⃣ Задание добавляется в очередь задач, а файл загружается в объектное хранилище.
4️⃣ Позже рабочий процесс забирает задания из очереди одно за другим и обрабатывает их, получая файл из хранилища.
Это самый простой пример. Очереди сообщений можно использовать для:
✔️ Планирования и управления фоновыми задачами.
✔️ Распределения задач между несколькими рабочими процессами.
✔️ Управления сервисами подписки и уведомлений.
✔️ Буферизации данных.
✔️ Повторных попыток обработки платежей и многого другого.
Подробнее читайте в нашем гайде 👇
🔗 Читать статью
🔗 Зеркало
💡 Полезные паттерны для интеграции/проектирования систем: на заметку разработчику
👉 Источник
#инфографика
🪶 Как следовать принципу DRY при настройке Apache APISIX
DRY — один из самых известных принципов разработки ПО: он помогает избежать ненужного повторения фрагментов кода, которые выполняют одни и те же действия. DRY также стоит применять при настройке конфигурации сложных систем, поскольку этот принцип:
☑️ Делает конфигурацию более компактной и легкой для понимания.
☑️ Упрощает поддержку — когда нужно внести изменения, вы делаете это только в одном месте.
☑️ Повышает читаемость — конфигурация становится более структурированной и логичной, что облегчает ее понимание.
☑️ Улучшает масштабируемость — при усложнении конфигурации принципы DRY помогают сохранять ее управляемой и расширяемой.
☑️ Сокращает время на настройку — используя переиспользуемые компоненты, можно быстрее создавать новые конфигурации или модифицировать существующие.
В качестве примера в статье рассматриваем, как применять DRY при настройке конфигурации API-шлюза Apache APISIX.
🔗 Читать статью
🔗 Зеркало
🤯 Что вам помогает работать, когда устаете? Когда в отпуск ну вообще никак, а сил уже нет.
💬 Может быть, чтение отвлеченной литературы, спорт, дневной сон, прогулки, встречи с друзьями, что-то ещё?
#интерактив
⚒️ Redis для VS Code — официальное расширение Visual Studio Code, предоставляющее интуитивно понятный и эффективный графический интерфейс для баз данных Redis,.
👉 Основные возможности:
➕ Универсальная поддержка Redis: подключение к любому инстансу Redis, включая Redis Community Edition, Redis Cloud, Redis Software и Redis в Azure Cache.
➕ Расширенные возможности подключения: поддержка TLS-сертификатов и SSH-туннелей, а также автоматическая распаковка данных в форматах GZIP, SNAPPY, Brotli и других.
➕ Типы данных: поддерживает строки, хэши, списки, множества, отсортированные множества и JSON.
➕ Представление данных в удобном формате.
➕ Интегрированный интерфейс командной строки Redis: использование Redis CLI с предварительным просмотром синтаксиса при вводе команд.
📦 Скачать
Mojo – новый язык программирования, претендующий на звание «круче Python»
Разработчики представили Mojo — простой язык для разработки ИИ.
Его главная фишка — скорость, Mojo заявляет, что в некоторых задачах может быть до 35 000 раз быстрее, чем Python. Но такие заявления обычно относятся к определенным оптимизированным вычислительным задачам, особенно в контексте работы с AI и числовыми расчетами, где Python изначально имеет слабые места из-за интерпретируемости и ограничений GIL.
У Mojo есть все шансы вытеснить Python на задачах с интенсивной обработкой данных, особенно в AI и MLЧитать полностью…
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🍉 Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных
⚛️🔄 Улучшенная обработка асинхронных операций в React 19
🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста
🏗 3 основных шаблона событийно-ориентированной архитектуры
🐘🔧 Расширение pg_variables: мощная альтернатива временным таблицам в PostgreSQL
👍 25 полезных HTML тегов, элементов и атрибутов, которые должен знать каждый фронтендер
🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода
🛠 Сага: эффективный шаблон микросервисной архитектуры
🏃 Самоучитель по Go для начинающих. Часть 16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
💡🎨 Источники вдохновения для UI/UX-дизайнеров и фронтендеров: 50 полезных ресурсов
Помянем пиратские APK: Google начал блокировать пиратские приложения, которые установлены не из Play Market.
Самое обидное, что у школьников перестал работать Minecraft. Но есть выход — не обновляться до последней ОС. Тогда есть шанс ненадолго остаться «пиратом».
На форумах уже вовсю идёт поиск, как обойти блокировку.
Российские компании начали активно нанимать программистов из Африки
Наши компании массово набирают дешевых кодеров из Африки, чтобы сбить зарплаты российских специалистов. Количество вакансий для африканских разработчиков выросло в 10 раз, преимущественно для специалистов из Зимбабве, Камеруна и Кении. Российские бизнесы предпочитают платить зарубежным сотрудникам гораздо меньше.
Конечно, есть сомнения по качеству таких сотрудников
💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры
В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.
Читать статью
#почитать
😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных
Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу. Рекурсивные CTE состоят из двух частей:
• Нерекурсивная часть (базовый случай) — создает начальные данные.
• Рекурсивная часть — может выполняться много раз, каждый раз используя результат предыдущего шага.
Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Энтузиасты уже сделали:
• Визуализацию множества Мандельброта с помощью ASCII-графики.
• pallada-92/sql-3d-engine">3D-движок для рисования объемных фигур.
• GPT на 500 строках SQL-кода. Подробная статья о реализации этого проекта опубликована здесь.
• Трассировку лучей (это метод создания реалистичных изображений).
На прошлой неделе коллекция крутых SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».
Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:
• Игровой цикл. В основе игры – рекурсивное общее табличное выражение (CTE). Оно создает бесконечный цикл, который инициализирует состояние игры, обновляет его на основе ввода пользователя и отрисовывает игру. Цикл продолжается, пока игра не закончится.
• Вывод игры. Поскольку SQL-запрос обычно возвращает результат только после завершения, для отображения игры в реальном времени используется команда RAISE NOTICE. Эта команда выводит информацию в стандартный вывод, позволяя отображать игровое поле и другую информацию в процессе игры.
• Пользовательский ввод. Обработка пользовательского ввода реализована через отдельную таблицу в базе данных. Эта таблица служит коммуникационной шиной между игрой и пользователем. Пользователь добавляет команды в эту таблицу, а игра их считывает.
• Решение проблемы изоляции данных. Чтобы игра могла видеть новые команды, добавленные в таблицу ввода во время выполнения запроса, используется расширение dblink. Оно позволяет создавать новое подключение к базе данных с новым снимком данных, что дает возможность считывать самые последние команды пользователя.
• Предотвращение кэширования. Чтобы PostgreSQL не кэшировал результаты запроса к таблице ввода, к запросу добавляется уникальный идентификатор итерации. Это заставляет базу данных выполнять запрос заново на каждой итерации игрового цикла.
Для управления состоянием игры и обработки игровых событий используются подзапросы и агрегатные функции.
• Подзапросы позволяют вычислить новое состояние игры после каждого хода, включая позицию фигуры, состояние поля, счет и т. д. К примеру, рекурсивный подзапрос используется для вычисления максимального количества линий, на которые может упасть текущая фигура.
• Агрегации применяются для подсчета очищенных линий, выбора фигуры с наименьшим рангом, обновления счета и уровня игры. Например, BOOL_OR()
применяется для определения, есть ли хотя бы одно столкновение между фигурой и занятыми клетками на поле.
🔗 Подробнее читайте в статье
🔗 Зеркало
Опрос «Как вы учитесь с помощью телефона: поделитесь своим опытом!»
Дорогие подписчики, мы на миссии улучшений, и вы — наш ключ! 🔑
🤖 AIHawk: Автоматизация поиска работы с помощью ИИ
AIHawk — это скрипт на Python, который помогает автоматически отправлять резюме на различные вакансии. Проект поддерживает интеграцию с сайтами по поиску работы (LinkedIn) и использует ИИ для оптимизации процесса подачи заявок.
Cуть такая: ИИ берёт ваши данные и подгоняет под резюме, а потом отправляет работодателю
⚠️ Что происходит: подборка важных новостей
👨🏫 Нобель по физике присужден за работы о машинном обучении нейросетей.
🔵 Discord заблокировали в России — за нарушение требований законодательства
🔒 Группировка DumpForums заявила о взломе «Доктор Веб»
⌨️ Мини-ПК в виде складной клавиатуры появился на Kickstarter
🐍 Питон: что нового в версии 3.13
👁 Qt 6.8 принёс разработчикам возможность творить для Vision Pro и OpenXR
Поделитесь тем, о чём забыли написать
LibreCUDA: Альтернатива фирменной CUDA от Nvidia
LibreCUDA — проект, который позволяет использовать API драйвера CUDA, не прибегая к фирменным инструментам Nvidia. Проще говоря, LibreCUDA — это замена стандартной среды выполнения CUDA.
Из плюсов: программа поддерживается сообществом и не потеряет свою актуальностьЧитать полностью…
🐍🍽 Питон съел GIL на завтрак: что нового в версии 3.13
Ты сидишь? Лучше сядь. После года разработки они реально сделали это — JIT-компилятор, улучшенная типизация, и, ты не поверишь, GIL наконец-то отправляется на пенсию!
В ближайшие время начнётся альфа-тестирование ветки Python 3.14.
Читайте подробнее в нашей статье:
🔗 Ссылка
Привет, друзья! 👋
Мы готовим статью о распространенных ошибках в карьере программиста и хотели бы услышать ваше мнение! Поделитесь своими мыслями и опытом, и самые полезные советы мы включим в нашу статью.
Вот несколько вопросов для вас:
🤔 С какими ошибками в своей карьере программиста вы сталкивались? Как вы их преодолели?
📚 Какие советы вы бы дали начинающим разработчикам, чтобы избежать распространенных ловушек в программировании?
🖥️ Что, по вашему мнению, важно учитывать при планировании своей карьеры в IT, чтобы минимизировать сожаления в будущем?
Спасибо за ваше участие! 🚀
Highload буткемп, системный дизайн, производительность и масштабирование
Приглашаем на курс для прокачки навыков архитектора и проектировщика, которые важны для профессионального роста программиста.
🌐 С онлайн-буткэмпом «Производительность и масштабирование» вы:
▪️ погрузитесь в highload за короткий срок: в первый же день получите в управление свою инфраструктуру, и на практике изучите производительность и масштабирование веб-серверов, серверов приложений, баз данных, кеш-серверов и др.
▪️ изучите ключевые фундаментальные паттерны и получите навыки проектирования проектов с миллионной аудиторией (балансировка, масштабирование апп/кешей/субд, высокая доступность и кластерные решения, шардинг, CAP/PACELC, консистентность, саги, транзакционные очереди и многое другое)
▪️ поупражняетесь в проектировании и получите обратную связь на реальных задачах: магазин/маркетплейс, такси/доставка, обьявления, соцсети, дейтинг, игры, википедия, мессенжер, CDN, хранилище файлов, онлайн-кинотеатр, счетчики, удаленный мониторинг, интеграционные вебхуки, рассылки и тд.
▪️ научитесь планировать нагрузку и связывать бизнес-показатели с нефункциональными требованиями к системе
▪️ попрактикуемся в проведении и прохождения секций системного дизайна на интервью
Всё в формате «живых» онлайн-сессий (лекции, брейнштормы, презентации домашних проектов).
🥸 Кто мы: школа Devhands, основатель школы и автор курса Алексей Рыбак (/channel/rybakalexey), ex-СТО Badoo, с 20-летним опытом высоконагруженных проектов и и управления глобальными технологическими организациями, член программного комитета Highload.
🗓 Старт 22-го октября, изучаем программу, записываемся здесь
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2Vtzqv8dwE1
«Awesome» — огромный репозиторий всего самого полезного для разработчиков
Это одна из крупнейших коллекций ссылок на ресурсы, инструменты, языки программирования, фреймворки и библиотеки для самых разных областей в программировании и не только
Лучший способ сэкономить время и всегда иметь под рукой мастхев ресурсы для разработки.⚡️Читать полностью…
Мы часто говорим об AI, но так ли он полезен в работе кодера?
Исследование Uplevel среди 800 программистов выявило неожиданные результаты: использование ИИ-инструментов, таких как GitHub Copilot, не повысило продуктивность и привело к увеличению ошибок в коде на 41%
В ходе двух трёхмесячных периодов программисты сначала работали с традиционными инструментами, а затем с GitHub Copilot.
OpenAI выпустила новый инструмент — Canvas
Canvas — это визуальный инструмент для ChatGPT. Теперь можно взаимодействовать с моделью, перемещать и редактировать текст, создавать новые документы и анализировать большие объемы данных.
Основные преимущества для кодеров в Canvas:
▪️ Подсказывает, как оптимизировать код
▪️ Добавляет логи для отладки кода
▪️ Держит в голове проект целиком
▪️ Переносит код на другие языки программирования
Доступ будет доступен в ChatGPT
Гарвардские студенты создали умные очки с технологией распознавания лиц
На самом деле они использовали Meta Smart Glasses, в которые добавили своего софта. Теперь, когда смотришь через очки на чьё-то лицо, они его идентифицируют, включая их имя, адрес и место работы, но не всегда выдаётся верный результат.
Разработчики приняли решение не публиковать код, так как их целью было продемонстрировать проблему неконтролируемого доступа к личным данным.Читать полностью…
🤯 Знаете ли вы этот хак на GitHub?
1️⃣ Откройте любой GitHub-репозиторий
2️⃣ Замените .com
на .dev
3️⃣ Просмотрите код репозитория в инстансе VS Code!
И да, можно просто на клавиатуре нажать кнопку «.
».
💡8 ключевых концепций в предметно-ориентированном проектировании (Domain-driven design, DDD): на заметку разработчику
👉 Источник
#инфографика
MyLens.ai — нейронка мастхев для ютуба
Нейронка пересказывает видео с ютуба. Может справиться с часовыми видео за пару секунд.
▪️ Можно закинуть любое видео
▪️ Саммари появляется мгновенно. Нейросеть создаст план, схемы и выделит ключевые цитаты
▪️ Если загружаете свой собственный ролик — программа даст советы, как сделать контент вирусным
Единственный минус: ограничение на три видео в день
📌 Шпаргалка по Linux администрированию
Эта шпаргалка представляет собой краткое руководство по основным темам администрирования Linux для начинающих и мидл+ инженеров DevOps.
Стоит отметить пункты: «Infrastructure as Code» и «Monitoring & Logging»
Что вы считаете полезным?