proglibrary | Technologies

Telegram-канал proglibrary - Библиотека программиста | программирование, кодинг, разработка

77044

Все самое полезное для программиста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Учиться у нас: https://proglib.io/w/a32a0d94 Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Subscribe to a channel

Библиотека программиста | программирование, кодинг, разработка

🔄 Наглядный обзор различий между популярными моделями жизненного цикла разработки софта

👉 Источник

#инфографика

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

✨Мы хотим провести большой розыгрыш и подарить победителю смартфон на выбор. Помимо iPhone, предлагаем вам выбрать, какой ещё смартфон вы бы хотели видеть среди призов👇

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤯 Оверинжиниринг и поиск правильного баланса

Среди разрабов ведутся жаркие споры о том, писать ли код для сегодняшних проблем или создать универсальное решение для будущих потребностей. Оба подхода имеют свои плюсы и минусы.

Код специального назначения может быстро стать запутанным. Но слишком общий код может добавить ненужную сложность. Но есть ли золотая середина?

Ответить на этот вопрос попытался Eliran Turgeman, бэкенд-инженер из Microsoft. Он разбирает опасности чрезмерного обобщения и отсутствия обобщения на двух примерах: корзина для покупок и система аренды транспортных средств.

👉 Читать

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования

🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

☕Java

Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👍 25 полезных HTML тегов, элементов и атрибутов, которые должен знать каждый фронтендер

В HTML есть средства для создания раскрывающихся виджетов, индикаторов прогресса и скалярных значений, переадресации на нужный URL, воспроизведения аудио/видео, сохранения форматирования кода и валидации с помощью regex.

🔗 Читать статью
🔗 Зеркало

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🐬🐘 PostgreSQL или MySQL: что лучше подойдет для вашего проекта

Новый бесплатный и познавательный контент от Proglib


На нашем сайте Proglib.io регулярно выходят статьи на разные айтишные темы.

Представляем наши статьи в виде коротких роликов ⚡️

❗️ Внутри:
▪️ Мемасики
▪️ Котики
▪️ Весь полезный материал за минуту

🔥 — Понравилось

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤔 «Почта России» переходит на отечественное ПО

На протяжении ближайших трёх лет «Почта России» планирует перевести 130 тысяч рабочих мест с Windows на российскую операционную систему «Альт»

Этот шаг направлен на повышение технологической независимости и безопасности госкомпании, сообщает ТАСС


Похоже, мемы с замедленной доставкой почты России будут всё чаще появляться в ленте. А вы что думаете?

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🥇 Итоги конкурса: победитель определён

Надеемся, что все отлично отпраздновали день программиста. А нам за два дня пришло много ответов на нашу задачу.


У нас есть победитель, он выбран рандомно среди правильных ответов:
erdnya — аккаунт закрытый. Свяжитесь с @mdudarevcontact

Мы с ним свяжемся и дадим доступ к любому из следующих курсов

Курсы на выбор:
🔵 Архитектуры и шаблоны программирования
🔵 Основы программирования на Python
🔵 Базовые модели ML и приложения
🔵 Frontend Basic: принцип работы современного веба

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💬 Поделитесь опытом: на каком ноутбуке вы сейчас работаете и почему он вам нравится (или не нравится)? 🌟

Ждем ваши ответы в комментариях! Самые полезные советы войдут в нашу статью. 📝💡

Спасибо за участие! 🙌

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Пивной бар-хоппинг для айтишников
12 сентября в 20:00


Финтех-компания Точка приглашает в пять московских баров в День программиста! Выпьем пива, пройдём квест про технологии и обсудим холиварные темы. Пройди задания, собери пасхалки и получи подарок — пивной бокал с гравировкой.

Подробнее что будет:

● Бесплатное пиво — по стакану в каждом из пяти баров.
● Квест по пяти барам — грохнем прод, поугадываем звуки ностальгии и найдём ошибки джуна с помощью УФ-фонарика.
● Холивары — обсудим наболевшее с инженерами из Точки:
– Свобода выбора в технологиях: рай разработчика, ад тимлида.
– Техдолг — копить или платить.
– Алгоритмы и задания на собеседованиях — кринж или база.
– 7 столпов ML — нужны ли они все.
– Куда исчезли сисадмины.

Ждём разработчиков, продактов, аналитиков и всех, кто работает в IT. Приходите сами и приводите друзей!

Зарегистрироваться и узнать больше про активности.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

👨‍💻 Шпаргалка по проектированию реляционных баз данных

Реляционная база данных — это составленная по реляционной модели база данных, в которой данные, занесенные в таблицы, имеют изначально заданные отношения.

Сами таблицы в такой базе данных также соотносятся друг с другом строго определенным образом. Реляционные базы данных используют целый комплекс инструментов, которые обеспечивают целостность данных, т. е. их точность, полноту и единообразие.

На иллюстрации представлены ключевые моменты, которые следует знать о проектировании реляционных баз данных.

👉 Источник

#инфографика #проектирование_систем

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🆒 Дарим наш курс за ответ на задачу

В предверии дня программиста проводим конкурс: решите нашу задачу на тему программирования — рандомно выберем победителя


Подробные условия:
➡️ Решаем задачу со следующего поста
➡️ Решение присылаем в бота @ProglibContest_bot
➡️ Рандомно среди правильных ответов разыгрываем курс на выбор

Курсы на выбор:
🔵 Архитектуры и шаблоны программирования
🔵 Основы программирования на Python
🔵 Базовые модели ML и приложения
🔵 Frontend Basic: принцип работы современного веба

Таймлайн:
11-12 сентября — принимаем ответы
⬇️
13 сентября — подводим итоги

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Привет, друзья! 👋

Мы готовим статью о будущем AI и его влиянии на разработку. Нам важно ваше мнение! ✨

1️⃣ Как вы думаете, AI действительно изменит мир разработки? 🤖
2️⃣ Какие плюсы и минусы использования AI в разработке вы видите? 💡
3️⃣ Есть ли у вас примеры успешного применения AI в ваших проектах? 🛠️

Поделитесь своими идеями в комментариях! Самые интересные идеи и предложения мы обязательно включим в нашу статью. Спасибо за участие! 🙌

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Telegram представил обновление Bot API 7.10 с рядом нововведений

Telegram продолжает активно развивать свою платформу, добавляя полезные функции и улучшения.

Что там по Bot API 7.10?

Добавлен новый класс PaidMediaPurchased и поле purchased_paid_media в классе Update, которые позволяют отслеживать обновления о покупке платного медиа.

Теперь можно указывать payload в sendPaidMedia, который бот получает обратно в TransactionPartnerUser и обновлениях о платном медиа.

А что ещё завезли? 👀

Также, как все заметили добавили новый способ взаимодействия с аудиторией — звёздные розыгрыши ⭐️

👉 Подробнее смотрите по ссылке

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🍹 Удалёнка становится роскошью

Жителям регионов становится сложнее получать достойную зарплату:

По данным "Коммерсантъ", на дистанционном формате работает всего около миллиона человек — чуть больше 1% всех занятых. Основную часть сотрудников уже вернули в офис или вовсе уволили.

На удалёнке больше всего айтишников — 7%


Теперь удалёнка становится привилегией для избранных. Так, Amazon отменяет удалёнку с 2024 года: всех переводят на пятидневку в офисе, а работать из дома смогут только те, кому это нужно по здоровью или должности.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

📌 SKUF с гитхаба

SKUF — система сетевой загрузки SKUF позволяет загружать операционную систему Arch Linux 2 на компьютер, подключенный к сети через Ethernet, с помощью USB-флеш-накопителя (минимум 150 МБ) и общего файлового ресурса SMB.

Наконец-то, долгожданный сиквел Arch Linux 2

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

💵 Кто в IT зарабатывает больше всего на одного сотрудника

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

Как думаете: кто следующий поднимется в топ по выручке на сотрудника?

Пока можно только сказать, что INTEL будет бить антирекорды. И NVIDIA с 2023 выросла в ~10 раз

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Модель OSI 🆚 Стек протоколов TCP/IP

Ключевые отличия TCP/IP от OSI:

☑️ Первый уровень — канальный. Он объединяет L1 и L2 уровни OSI.
☑️ Второй уровень — межсетевой. Он идентичен L3 OSI.
☑️ Третий уровень — транспортный. Он идентичен L4 OSI.
☑️ Четвертый уровень — прикладной. Он объединяет L5 — L7 уровни OSI.

И главное: TCP/IP — это практическая модель, которая решает конкретные проблемы связи и опирается на стандартизированные протоколы; OSI служит всеобъемлющей, независимой от протокола структурой, разработанной для охвата различных методов сетевой связи.

#этобаза

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🦀 Embedded Software Engineering 101 — курс по основам разработки встроенного ПО, начиная с основ микроконтроллеров и постепенно переходя к более сложным встроенным системам.

👉 Пройти курс

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

😈 Осторожно — Regex! 3 эпических сбоя, вызванных регулярками

Регулярные выражения — мощный, гибкий и многофункциональный инструмент для обработки текста и валидации данных. С их помощью можно решать сложные задачи буквально одной строкой кода. Однако неправильно составленное регулярное выражение может превратиться в настоящую бомбу замедленного действия, готовую взорваться при определенных входных данных. Последствия могут быть сложноустранимыми, а иногда катастрофическими — как в этих реальных кейсах.

1️⃣ Сбой Stack Overflow

В 2016 году Stack Overflow испытал 34-минутный перебой в работе. Причиной стало регулярное выражение, используемое для обработки пользовательского ввода:

^[\s\u200c]+|[\s\u200c]+$


Это выражение должно было находить пробелы в начале и конце строки. Проблема возникла, когда какой-то пользователь запостил комментарий, содержащий около 20 000 последовательных пробелов. Механизм обработки регулярных выражений начал проверять каждый пробел. Когда после 20 000-го пробела встретился другой символ, движок начал откатываться назад, пытаясь найти соответствие, начиная со второго пробела, третьего и так далее.

Это привело к катастрофическому возврату (catastrophic backtracking) — ошибке, которая возникает, когда движок регулярных выражений тратит чрезмерное количество времени на попытки найти соответствие шаблону, перебирая различные комбинации. Количество проверок начало лавинообразно увеличиваться и быстро достигло 199 990 000 — это вызвало значительную задержку и в итоге сбой системы.

Для решения проблемы потребовалось 10 минут на обнаружение причины, 14 минут на написание исправления и еще 10 минут на развертывание решения. В результате регулярное выражение было заменено на функцию подстроки.

2️⃣ Сбой Cloudflare

2 июля 2019 года произошел крупный сбой в работе платформы Cloudflare. Один из инженеров написал регулярное выражение, которое привело к действительно катастрофическому возврату — вызвало экстремальную перегрузку всей инфраструктуры. Использование процессоров выросло до 100%, а большинство сайтов, подключенных к Cloudflare, замедлились до крайности или вовсе оказались недоступными.

Коварная регулярка выглядела так:

(?:(?:\"|'|\]|\}|\\|\d|(?:nan|infinity|true|false|null|undefined|symbol|math)|\`|\-|\+)+[)]*;?((?:\s|-|~|!|{}|\|\||\+)*.*(?:.*=.*)))


Самую большую опасность в этом выражении представляет .*(?:.*=.*) — группа без захвата, которая может привести к чрезмерному использованию процессора при обработке определенных шаблонов. Эта конструкция вызвала серьезные проблемы с производительностью и в конечном итоге привела к массовому сбою.

3️⃣ Глобальный сбой Windows/CrowdStrike

19 июля 2024 года произошел самый массовый сбой в истории — из строя вышли около 8,5 млн Windows-компьютеров с ПО CrowdStrike. Причиной сбоя стало несоответствие между ожидаемым количеством входных параметров (21) и фактическим количеством параметров (20), которые были переданы в интерпретатор контента (этот компонент отвечает за обработку содержимого с использованием регулярных выражений). Когда система получила ввод с 21 параметром, интерпретатор контента попытался считать данные за пределами выделенной памяти, что и привело к сбою системы.

📨 Материал взят из нашей еженедельной email-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Пользователи из России больше не могут скачивать плагины в Android Studio из-за экспортных ограничений

Плагин Flutter/PyCharm Community Edition/ IntelliJ IDEA Community Edition не устанавливается у пользователей из России

Как обойти ограничение:
C помощью VPN

🌚 — как же они задолбали

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Привет, друзья! 👋

Готовим статью «Лучший ноутбук для программирования в 2024 году» и хотим узнать ваше мнение! 👇💻✨

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

Редактор Hex Editor

Как написано в репозитории:

Для реверс-инженеров, программистов и людей, которые ценят свою сетчатку, работая в 3 часа ночи.


А если серьёзно, то у него очень мощный язык паттернов, позволяет распарсить и визуализировать почти что угодно. Есть даже функции, которые позволяют визуализировать 3д модельки из данных о геометрии.

👉 Ссылка

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

❗️Задача для конкурса в честь дня программиста

Условие:

Даны две строки s и f (начальная и конечная) и словарь D (набор слов).

Нужно определить, можно ли преобразовать s в f, используя только слова из словаря D. При этом каждое преобразование должно менять только один символ, а длина слова должна оставаться неизменной. Если преобразование возможно, нужно найти кратчайшую последовательность таких преобразований и вернуть ее длину. Если преобразование невозможно, вернуть "Преобразование невозможно".

Пример ввода 1:

    D = ["cat", "cot", "dot", "dog", "bat", "dag"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': 3

Пример ввода 2:
    D = ["cat", "cot", "bat"]
    s = "cat"
    t = "dog"

Вывод:
Минимальное количество шагов для преобразования 'cat' в 'dog': Преобразование невозможно

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🔔 Полезный репозиторий для программистов

Юзайте как шпаргалку


jnv/lists это коллекция полезных списков, связанных с программированием и не только: от языков и библиотек до инструментов и обучающих материалов.

Репозиторий подходит:
➡️ Поиск ресурсов
➡️ Помощь в улучшение навыков разработки
➡️ Для того, чтобы быть в курсе последних трендов

Предлагаем тебе челлендж: найди список, который тебе нравится, и используй его в следующем проекте.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

⚠️ Что происходит: подборка важных новостей

📰 Time включил актёров и блогеров в список 100 самых важных персон в сфере ИИ

🖥 Новый процессор iPhone 16 будет построен на архитектуре armv9

📱Пользователи из России больше не могут скачивать плагины в Android Studio из-за экспортных ограничений

💻 Исследование: ПК с Windows 11 может показывать разную производительность без явной причины

🔐 За первое полугодие 2024 года в России утекло в сеть 986 млн строк персональных данных пользователей

📹 Runet: YouTube начал вводить технические меры против переноса контента на российские видеохостинги

📱 Telegram обновил раздел FAQ, касающийся нелегального контента, после задержания и выпуска под судебный надзор Дурова

💰 Бывший сотрудник OpenAI привлек $1 млрд на создание «безопасного сверхинтеллекта»

Какие новости пропустили? Расскажите в комментариях.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🚀 Продвинутый TypeScript: 15 приемов для создания надежного кода

От рекурсивных псевдонимов типов до дискриминированных объединений — эти приемы помогут вам писать более эффективный и безопасный код. Здесь разберем основные моменты, а полностью читайте в статье:

☑️ Интерполяция строковых литералов: позволяет динамически создавать новые типы строковых литералов на основе существующих типов.
☑️ Брендирование: позволяет создавать уникальные идентификаторы для предотвращения смешивания типов, даже если они принадлежат к одному и тому же типу данных.
☑️ Условные типы: позволяют извлекать информацию о типах из сложных структур с помощью ключевого слова infer.
☑️ Шаблонные литералы — комбинация литеральных типов и операторов для манипуляций со строками, которая позволяет создавать мощные ограничения типов на уровне строк.
☑️ Рекурсивные псевдонимы типов (алиасы): позволяют определять типы, которые ссылаются на самих себя.
☑️ Вариативные типы (TypeScript 4.0+): позволяют более гибко манипулировать кортежами.
☑️ Переименование ключей с помощью as: при работе с объектами типа ключ-значения можно использовать as для переименования ключей — это позволяет создавать производные типы с измененными именами свойств.
☑️ Константные утверждения в TypeScript: позволяют создавать более конкретные литеральные типы из массивов и объектов.
☑️ Дискриминированные объединения: позволяют создавать типы, которые могут представлять несколько различных вариантов объекта.
☑️ Фильтрация ключей по типам значений: типы ключ-значение можно комбинировать с условными — для фильтрации по типам значений.
☑️ Создание типобезопасных эмиттеров событий с помощью дженериков: типобезопасные эмиттеры событий могут существенно улучшить надежность кода, основанного на событиях.
☑️ Самоссылающиеся типы: позволяют создавать сложные, вложенные структуры данных, сохраняя при этом типобезопасность.
☑️ Непрозрачные типы с использованием unique symbol: позволяют создавать типы, которые структурно похожи, но рассматриваются типовой системой как разные.
☑️ Последовательности целых чисел на уровне типов: подход, который позволяет создавать более точные типы для операций с массивами, обеспечивая проверку длины массива на этапе компиляции.
☑️ Типобезопасный DeepPartial с использованием рекурсивных условных типов: позволяет работать с частичными данными сложных объектов безопасным способом.

Читать полностью…

Библиотека программиста | программирование, кодинг, разработка

🛠 Сага: эффективный шаблон микросервисной архитектуры

Полную бизнес-транзакцию, как правило, очень сложно описать с помощью одной транзакции в базе данных. Возьмем, к примеру, процесс покупки в онлайн-магазине — с момента нажатия кнопки «Купить» до момента доставки заказа к вашей двери происходит серия шагов:

🔸 Размещение заказа. Пользователь выбирает нужные товары, добавляет их в корзину и начинает процесс оформления заказа. Система сохраняет информацию о видах товаров, их количестве, имени заказчика, адресе и способе доставки.
🔸 Создание счета-фактуры. После размещения заказа создается счет-фактура, который служит основной записью о транзакции и используется для выставления счета и учета.
🔸 Обработка платежа. Инициируется процесс оплаты, пользователь предоставляет данные банковской карты или электронного кошелька. Оплата безопасно обрабатывается, и после успешного завершения заказ подтверждается.
🔸 Отправка товара. После обработки платежа заказ готовится к отправке: создается информация для отслеживания, система уведомляет пользователя об ориентировочной дате доставки.

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

Читать полностью…
Subscribe to a channel