API. Архитектура. Веб-сервисы | Глеб Учитель
3.37K subscribers
278 photos
53 videos
11 files
306 links
Говорим о том, как проектировать выносливые API и веб-сервисы, растить грейд и доход. Начни изучать канал с закрепа
Связь с автором канала: glebteach.ru
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
👍4🔥1
Тест на инженерное мышление: почему упал прод и произошло двойное списание? 🧠💥

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

Ниже классический кейс из реальной практики. Давайте проверим, как вы спроектируете этот узел, а заодно устроим конкурс с полезными призами.

📌 Дано (типичная архитектурная ловушка):
Платежный сервис принимает запрос на оплату, списывает деньги с баланса и отправляет HTTP-запрос во внешний банковский эквайринг.

В «черную пятницу» под нагрузкой эквайринг отвечает с задержкой, и внутренний сервис падает по таймауту (HTTP 504 Gateway Timeout). Аналитик заложил в ТЗ логику: «если получили таймаут, автоматически повторяем запрос каждые 3 секунды до победного».

На тестовом стенде всё работало безупречно. На проде у сотен клиентов произошло двойное (и тройное) списание денег за один заказ.

Разработчики предлагают просто «подкрутить таймауты до 30 секунд и добавить серверов». Но проблема зашита в самой логике взаимодействия.

❓ Вопрос к системным аналитикам и инженерам:
1. В чем фундаментальная ошибка в логике этой интеграции?
2. Какой архитектурный паттерн и механизм нужно внедрить, чтобы списания гарантированно не дублировались даже при обрывах сети и повторных запросах?

Призы:
🥇 Автору самого четкого и аргументированного ответа на выбор:
• Полный доступ к Веб API-симулятору
• ИЛИ большая пицца в ваш офис / домой

📄 Всем, кто оставит свой вариант решения в комментариях я или команда отправим в ЛС PDF-схему правильного проектирования этого шлюза с чек-листом по идемпотентности API.

👇 Пишите ваши гипотезы в комментариях! Итоги подведем в конце месяца (с публикацией победителя и пруфами отправки приза).
То есть выиграть доступ к API-симулятору не мотивирует?😁

П.с. Рад, что активно включились в решение задачи, скрин комментария к посту про конкурс и призы ВЫШЕ👈🏻
😁8
С 100к до 230к за полгода: почему база решает больше, чем «накрученный» опыт 🚀 #ученикиговорят

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

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

В итоге позвали в небольшую компанию на 100 000 руб., где пришлось быть и лоу-код разработчиком, и системным аналитиком одновременно.

Что стало переломным моментом?
«Мне сильно много дала глава самая первая, где объясняется вообще как интернет работает, про SOAP и REST... потом дальше все было легко. Курс мне помог, пусть я и не прошел его весь.»


Парадокс в том, что многие пытаются сразу зазубрить сложные термины из ChatGPT, не понимая физики процесса: как формируется HTTP-пакет, что такое заголовки, где границы ответственности клиент-серверной архитектуры и чем JSON отличается от XML на уровне контракта.

Когда эта картинка в голове сложилась - рабочий опыт начал наматываться в 5 раз быстрее.

Точка Б: 10 собеседований, 2 оффера и выбор в пользу 230 000 руб.
Спустя 6 месяцев реальной практики он снова вышел на рынок. И здесь уже включилась профессиональная зрелость:

1. Один оффер дали прямо на собеседовании со словами: «Документацию не пишем, интеграциями занимаются разработчики, а СА нужен просто чтобы был». Он отказался.

2. Выбрал второй оффер на 230 000 руб. - в команду со сложными интеграциями через Kafka и ESB, где системный аналитик реально проектирует архитектуру и прокачивает хард-скиллы.

Испытательный срок закончился, а задачи по шинам и брокерам он решает уже на уверенном мидл-уровне.

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


Ту самую первую главу (как устроен веб, клиент-серверное взаимодействие и архитектура запросов), которая дала такой буст, можно пройти в бесплатных вводных уроках курса «Проектирование архитектуры и интеграций сервисов» на Stepik.

Выбирайте трек под себя:
• Самостоятельный
• С поддержкой преподавателя
• С поддержкой преподавателя + упаковкой резюме, стратегией собеседований и доведением до оффера от 200к+


Нужен личный промо на скидку - пишите в лс: https://t.me/glebteach_bot

💬 Как вы искали свою первую работу в IT — честно признавались, что джун, или приходилось «докручивать» опыт в резюме? Делитесь в комментариях!

Мы в МАКС
🔥8
Почему кривой JSON Schema ломает и разработку, и ИИ-агентов: микро-урок по частым ошибкам 🛠📐

На днях под постом о будущем аналитиков подписчик Виталий оставил отличный комментарий (прикрепил на скрине выше): с развитием ИИ системным аналитикам придется проектировать контракты, воркфлоу и инструменты для ИИ-агентов.

И вот здесь кроется главный нюанс.

Если человек-разработчик при небрежно составленном Swagger еще может прийти в чат и переспросить: «Слушай, а в каком формате тут дата и может ли поле быть null?», то ИИ-агент или строгий валидатор просто упадут с ошибкой, либо агент начнет галлюцинировать.

Сегодня разберем 3 классические ошибки в JSON Schema / OpenAPI, которые ежедневно портят жизнь и бэкендерам, и ИИ-инструментам.

❌ Ошибка 1. Путаница между `required` и `nullable`

Частая картина в спеках: аналитик не добавляет поле в список required, думая, что этого достаточно, но не описывает, что делать, если поле передано как null.

Как надо - четко разделять:
* Поле обязательное (должно всегда присутствовать в JSON-объекте) → указываем в массиве `required: [id, amount]`.
* Поле опциональное (может отсутствовать в запросе).
* Поле nullable (может прийти с явным значением `null`) → в OpenAPI 3.0 указываем `nullable: true` (или `type: [string, "null"]` в JSON Schema Draft 7+).


❌ Ошибка 2. Вездесущий `type: string` без ограничений

Когда в схеме на статус заказа или код валюты пишется просто type: string, вы даете карт-бланш на любые данные. Разработчику приходится писать лишние проверки, а ИИ-агент при генерации вызова может передать "status": "completed" вместо "SUCCESS"`.

Как надо - Если набор значений конечен - всегда используйте `enum`:

status:
type: string
enum: [DRAFT, PENDING, COMPLETED, REJECTED]
description: Текущий статус обработки заявки


Если это дата, UUID или email - обязательно задавайте format: date-time, format: uuid или pattern (регулярное выражение).

❌ Ошибка 3. Массивы без описания элементов (`type: array`)

Классика на скорую руку: указать type: array и забыть блок items.

В итоге ни генератор автотестов, ни кодогенерация DTO, ни LLM не понимают, что именно лежит внутри — массив строк, чисел или сложных составных объектов.

Как надо: Любой массив обязан содержать спецификацию своих элементов:

items:
type: object
required: [itemId, quantity]
properties:
itemId:
type: string
format: uuid
quantity:
type: integer
minimum: 1


💡 Грамотно спроектированная схема данных - это не бюрократия. Это универсальный цифровой контракт, благодаря которому сервисы, разработчики и ИИ-агенты понимают друг друга без бесконечных созвонов и багов на проде.

Первые вводные модули по веб-сервисам и REST доступны бесплатно (скоро доступ к ним закроем).

💬 Какие самые дикие ошибки в Swagger и схемах данных прилетали к вам от коллег или смежных команд? Делитесь в комментариях!

Еще почитать в канале:
💥
5 ошибок в OpenAPI, которые обязательно дождутся вашего релиза.
💥
Эфир с Глебом «Что выбрать в 2026, чтобы расти, а не просто учиться?»
🔥5
Выхожу в люди просить бусты.
Прогресс-бар говорит - осталось 2 из 3 до релиза историй 🚀

Если есть Telegram Premium - буду благодарен и смогу постить всего 1 историю за 24 часа👇
https://t.me/boost/openstudyit
👍6😁1
Как прокачать проектирование API и интеграций без удара по бюджету: честно про тарифы и рассрочку на Stepik

Частая ситуация: аналитик или разработчик понимает, что уперся в потолок. На созвонах с бэкендом сложно аргументировать выбор Kafka вместо REST, в контрактах Swagger регулярно всплывают косяки, а на собеседованиях срезают на вопросах про идемпотентность и распределенные транзакции.

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

На Stepik доступна беспроцентная рассрочка (оплата частями без скрытых комиссий и переплат). Платеж делится на равные части, а доступ ко всем материалам и практике открывается сразу. Подробнее на сайте Stepik.

Какой формат обучения выбрать под ваши задачи:

🔹 1. Тариф «Без обратной связи» за 13 990 руб.
Подойдет тем, кто привык учиться самостоятельно и кому нужна только структурированная база: вся теория по архитектуре, брокерам сообщений, REST/gRPC, практические задания и бессрочный доступ к материалам.

🔹 2. Тариф «С проверкой преподавателя» за 25 000 руб.
 (🔥 Основной выбор) Фокус для тех, кто хочет максимального результата без иллюзий. Здесь каждое ваше домашнее задание и схема интеграции проходят детальное ревью от наших кураторов с разбором краевых кейсов и ошибок, которые обычно вскрываются только на проде.

🔹 3. Тариф с модулем «Карьера» за 44 000 руб.
Комплексный трек: помимо полной программы и проверки всех заданий, мы помогаем упаковать ваше резюме и портфолио кейсов, проводим тренировочные технические собеседования и готовим к каверзным вопросам лидов на интервью.

Все еще открыты бесплатных вводных уроки в разных модулях - лучший способ оценить подачу материала и глубину практики перед покупкой.

Любой из тарифов выше можно оформить в беспроцентную рассрочку прямо при оплате. Нужен личный промо на скидку - пишите в лс: https://t.me/glebteach_bot

👇 Коллеги, в какой момент работы вы поняли, что базовой теории из статей уже не хватает и нужно глубоко разбираться в архитектуре систем?
This media is not supported in your browser
VIEW IN TELEGRAM
🔥4
Победителя конкурса выбрал🔥Пиццу отправил
Мы к отпуску готовы😎 В понедельник команда напишет ответ (пока я буду без связи) и отправим всем участникам обещанные пдф-ки👍
❤‍🔥4
Итоги теста на инженерное мышление: разбор двойного списания и отправка пиццы 🍕🧠

Коллеги, спасибо за участие в разборе платежного кейса! Мы получили более 10 крутых комментариев с самыми разными гипотезами. Приятно видеть такой уровень инженерного мышления в канале.

Напомню задачу:
платежный сервис отправлял запрос во внешний эквайринг, падал по таймауту HTTP 504 и автоматически повторял запросы, что привело к двойным списаниям у клиентов на проде.


Разбор решения:

1. Фундаментальная ошибка: повторные запросы отправлялись как новые транзакции. Внутренний сервис никак не сообщал внешнему эквайрингу, что это повтор той же самой операции.
2. Как это чинить: единственный надежный способ: внедрение механизма идемпотентности. Клиент или ядро системы генерируют уникальный ключ операции (например, UUID в заголовке `Idempotency-Key`). Внешний эквайринг, получив запрос с уже знакомым ключом, возвращает сохраненный статус предыдущей операции без проведения повторного списания.

Также хорошей практикой является проверка статуса платежа через `GET`-запрос перед выполнением автоматических повторов.

🏆 Победитель: идеального ответа никогда не бывает, но быстрее и ближе к решению оказалась Анна (читать ее комментарий)

Анна выбрала пиццу, и мы её уже отправили (подтверждение и фото в карусели выше)!

🎁 Для участников, как и обещал, команда отправит в личные сообщения подробную PDF-схему проектирования платежного шлюза с чек-листом по идемпотентности API.

И последнее. Кто уже приобрел курс на Stepik в этом месяце, но еще не вступил в наш закрытый чат учеников, обязательно проверьте переходите по ссылке из первых уроках. Ждем вас в комьюнити!
🔥2👏1
Всех с Днем знаний, друзья! У нас свежий апдейт в курсе для всех действующих студентов🎒

Тех, у кого дети сегодня пошли в школу, университет или садик - с двойным праздником (и железного вам терпения 🤝). Учитесь, развивайтесь и будете умными))

В модуль по искусственному интеллекту выкатили новый практический урок «Вайбкодим прототип за 1 час». Он уже доступен в ваших личных кабинетах на всех тарифах. Заходите, тестируйте на практике и делитесь обратной связью!

На уроке в режиме реального времени (без монтажа и перемоток) за один час разбираем:

• Как с помощью Claude Code быстро собрать рабочий прототип сайта под задачу.

• Как работать с репозиторием и подготовить структуру проекта.

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

😎 Есть мысль в честь начала учебного года открыть этот урок бесплатно для всех подписчиков канала.

Насколько вам актуальна и интересна такая прикладная практика по связке ИИ + быстрый деплой?

Ставьте реакции 🔥 или пишите в комментариях интересно/не интересно. Посмотрим на отклик и решим!
🔥27
Media is too big
VIEW IN TELEGRAM
Вайбкодим прототип за 1 час и деплоим в сеть за 1 ₽ 🚀

Обещали подарок к 1 сентября за активность - держите! Реакций насыпали столько, что даже наш канал в MAX ожил. Выкладываем свежий урок из закрытого модуля по ИИ.

Сейчас на рынке продают «вайбкодинг» за 35 000 - 50 000 руб, хотя суть одна: задать требования нейросети, кликнуть и задеплоить. Мы отдаем эту практику бесплатно. Если напишете в комментариях, что это «турбо» и «классно» — запишем продолжение и оформим доступный мини-продукт.

Пара деталей перед просмотром:
• Без монтажа: видео в реальном времени — процесс разработки без прикрас.
• Озвучка голоса с помощью ИИ: текст мой, хотел записать сам, но дома сейчас очень громкий малыш))

Что внутри за 1 час:
• Прототип на Next.js: собираем статический Pomodoro-таймер через нейросеть.
• Репозиторий: связываем GitHub (или Gitverse) с VS Code, делаем коммиты и пуши.
• Деплой за 1 ₽: поднимаем сайт в прод на Timeweb Cloud App Platform с бесплатным SSL.
• Инженерия: привязка домена, переменные окружения и защита от ботов.

❗️Главная ценность: за один вечер поднять рабочий MVP для теста гипотез или показа команде, не дожидаясь свободных разработчиков.

Пишите в комментариях: как вам урок, зашел ли формат и хотите ли продолжение?

Если у вас есть коллеги, продакты, аналитики или друзья, которым актуально быстро собирать MVP - делитесь этим постом с уроком и нашим каналом.

П.с. скиньте скриншот репоста в моего личного бота - пришлю промокод со скидкой на любой наш курс и вам, и вашему другу. Промо - просто приятный бонус, главное, чтобы материал принес реальную пользу.
🔥22❤‍🔥2
API. Архитектура. Веб-сервисы | Глеб Учитель
Вайбкодим прототип за 1 час и деплоим в сеть за 1 ₽ 🚀 Обещали подарок к 1 сентября за активность - держите! Реакций насыпали столько, что даже наш канал в MAX ожил. Выкладываем свежий урок из закрытого модуля по ИИ. Сейчас на рынке продают «вайбкодинг» за…
Посмотрите на выходных? Нужна честная обратка по вайбкодингу 👀 Понимаю, что в будни выделить час успели не все)

Хотел сразу записать продолжение, но оказалось сложнее, чем думал. Если тема реально заходит - готов докрутить еще 2 урока и упаковать эти 2–3 части в отдельный мини-курс. Но делать «в стол» не хочу, поэтому важен ваш отклик.отклик.

Если уже посмотрели или есть идеи - напишите в комментариях, что разобрать дальше (базы данных, авторизацию или интеграцию по API).
«Скопирую программу с лендинга в ChatGPT / Claude / DeepSeek» или «Скачаю с торрента»: почему эти лайфхаки не делают вас сеньором👀

Периодически наблюдаю в IT-комьюнити 2 коронных «лайфхака» от тех, кто хочет на халяву прокачаться в архитектуре и системном анализе:

1. Скопировать оглавление с лендинга курса, закинуть в ChatGPT / Claude / DeepSeek с бодрым промптом: «Обучи меня по этой программе».

2. Пойти шерстить «сливы» на торрентах, складчинах и пиратских каналах.

Давайте по-чесному разберем, почему обе стратегии в 99% случаев приводят к провалу. Кто кстати, какой пользуется/пользовался?
«Учеба с нейросетью по оглавлению»

На лендинге вы видите только верхушку айсберга — названия тем: REST API, брокеры Kafka / RabbitMQ, идемпотентность, паттерн Saga, распределенные транзакции.

Но дьявол 😈 всегда в деталях и боевых нюансах. Если скормить эти термины модели, она выдаст стандартную «википедийную» жвачку и рафинированные примеры из документации.

В сухом остатке:
❗️ ИИ не знает ваш уровень и контекст. Модель понятия не имеет, к чему конкретно вас готовить. На выходе получается рандомная программа, где 70% инфы вам в работе не пригодится, а критически важные архитектурные блоки будут упущены.
❗️ А кто проверит, что вы учите правильный материал? Галлюцинации ИИ никто не отменял, нейросеть похвалит даже кривой контракт, потому что синтаксически JSON или YAML валиден. Но о реальных факапах на проде она не предупредит. Придется тратить время на проверку жизнеспособности схемы и перепроверку фактов.
❗️ Разрозненные промпты создают кашу в голове вместо системного мышления.

Ну и какая здесь мотивация? Одно дело переписываться с чатом, который на любой костыль радостно кивает «Отличная работа!», и совсем другое, когда твои решения разносит в щепки опытный сеньор. Без внешнего контроля запал испаряется ровно через три дня.

Что скажите, коллеги?
У меня еще заготовлены мысли по торренту, скоро напишу