Войти в Y_LAB | IT развитие и юмор
رفتن به کانال در Telegram
Стажировки, вакансии, полезные материалы, развлекательный контент. Y_LAB — команда опытных IT-специалистов, которая готова помочь вам войти в мир технологий! Сотрудничество (ylab v it) @tamriko1_5
نمایش بیشتر745
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+47 روز
-230 روز
در حال بارگذاری دادهها
کانالهای مشابه
ابر برچسبها
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
اکتبر '26اکتبر '26
اکتبر '26
+7
در 0 کانالها
سپتامبر '26
+8
در 0 کانالها
Get PRO
اوت '26
+6
در 0 کانالها
Get PRO
ژوئیه '26
+5
در 0 کانالها
Get PRO
ژوئن '26
+10
در 0 کانالها
Get PRO
مه '26
+8
در 0 کانالها
Get PRO
آوریل '26
+13
در 1 کانالها
Get PRO
مارس '26
+11
در 0 کانالها
Get PRO
فوریه '26
+9
در 0 کانالها
Get PRO
ژانویه '26
+8
در 0 کانالها
Get PRO
دسامبر '25
+13
در 0 کانالها
Get PRO
نوامبر '25
+29
در 0 کانالها
Get PRO
اکتبر '25
+27
در 0 کانالها
Get PRO
سپتامبر '25
+15
در 0 کانالها
Get PRO
اوت '25
+6
در 0 کانالها
Get PRO
ژوئیه '25
+11
در 0 کانالها
Get PRO
ژوئن '25
+11
در 0 کانالها
Get PRO
مه '25
+19
در 0 کانالها
Get PRO
آوریل '25
+21
در 0 کانالها
Get PRO
مارس '25
+41
در 0 کانالها
Get PRO
فوریه '25
+24
در 0 کانالها
Get PRO
ژانویه '25
+22
در 0 کانالها
Get PRO
دسامبر '24
+18
در 0 کانالها
Get PRO
نوامبر '24
+20
در 0 کانالها
Get PRO
اکتبر '24
+26
در 0 کانالها
Get PRO
سپتامبر '24
+46
در 0 کانالها
Get PRO
اوت '24
+24
در 0 کانالها
Get PRO
ژوئیه '24
+22
در 0 کانالها
Get PRO
ژوئن '24
+28
در 0 کانالها
Get PRO
مه '24
+48
در 0 کانالها
Get PRO
آوریل '24
+155
در 0 کانالها
Get PRO
مارس '24
+33
در 0 کانالها
Get PRO
فوریه '24
+250
در 0 کانالها
Get PRO
ژانویه '24
+128
در 0 کانالها
Get PRO
دسامبر '23
+25
در 0 کانالها
Get PRO
نوامبر '23
+27
در 0 کانالها
Get PRO
اکتبر '23
+64
در 0 کانالها
Get PRO
سپتامبر '23
+583
در 0 کانالها
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 19 اکتبر | 0 | |||
| 18 اکتبر | 0 | |||
| 17 اکتبر | 0 | |||
| 16 اکتبر | 0 | |||
| 15 اکتبر | 0 | |||
| 14 اکتبر | +1 | |||
| 13 اکتبر | +2 | |||
| 12 اکتبر | 0 | |||
| 11 اکتبر | +1 | |||
| 10 اکتبر | +1 | |||
| 09 اکتبر | 0 | |||
| 08 اکتبر | 0 | |||
| 07 اکتبر | 0 | |||
| 06 اکتبر | 0 | |||
| 05 اکتبر | 0 | |||
| 04 اکتبر | 0 | |||
| 03 اکتبر | 0 | |||
| 02 اکتبر | +1 | |||
| 01 اکتبر | +1 |
پستهای کانال
| 2 | Новый пост Y_LAB_Learning! | Масштабирование баз данных: репликация, партицирование и шардинг
🗄️ БД, Python
О чем статья?
Как масштабировать базы данных с помощью репликации, партицирования и шардинга: чем отличаются эти подходы, какие задачи решают и с какими ограничениями связаны. Когда стоит применять каждую стратегию и как использовать её в Python-проектах.
📎 Читать статью
#Y_LAB_University #Y_LAB_Learning | 108 |
| 3 | Новый пост Y_LAB Actual | AI в разработке 🧠
LLM, Copilot и агент: где проходит граница?
На практике граница между LLM, AI-copilot и агентом может быть неочевидной. Современные инструменты часто объединяют сразу несколько подходов, поэтому удобнее сравнивать их не по названию продукта, а по тому, что AI способен сделать самостоятельно.
➡️Представим одну задачу:
в сервисе падает тест
🎯 LLM
Разработчик копирует ошибку и часть кода в чат.
⬇️
AI анализирует информацию и отвечает:
«Проблема, скорее всего, в том, что user может быть null. Проверьте условие перед вызовом метода».
⬇️
Дальше всё делает разработчик.
LLM → анализирует и отвечает.
🎯 AI-copilot
AI уже находится внутри IDE и видит проект.
Разработчик просит исправить ошибку. Инструмент находит соответствующий код и предлагает изменение прямо в файле.
⬇️
Разработчик проверяет diff, принимает изменения и запускает тесты.
Copilot → помогает выполнять действия в процессе разработки.
🎯 AI-агент
Разработчик ставит цель, а агент сам разбивает её на действия.
Он может найти нужные файлы, изучить зависимости, изменить код, запустить тесты и использовать полученный результат для следующего шага.
Если первый вариант исправления не работает, агент не обязательно останавливается на сообщении «тест всё ещё падает». Он может проанализировать новую ошибку и попробовать другой подход.
Агент → получает цель и самостоятельно проходит цепочку действий.
💬💬💬
Полезно смотреть не на вопрос:
«Это AI-агент или нет?»
а на вопросы:
• Может ли AI сам вызывать инструменты?
• Может ли он выполнять несколько последовательных действий?
• Может ли анализировать результаты этих действий?
• Может ли менять план по ходу работы?
• Может ли довести задачу до определённого результата без постоянных указаний человека?
Чем больше ответов «да», тем ближе инструмент к агентному подходу.
❗️Именно поэтому один и тот же продукт может использоваться и как обычный AI-помощник, и как агент: всё зависит от режима работы и доступных ему инструментов.
#Y_LAB_University #Y_LAB_Actual | 103 |
| 4 | Времена меняются 🤪
#Y_LAB_University #Y_LAB_Memes | 124 |
| 5 | Новый пост Y_LAB Videos! | Свежее видео
Всем привет! Рады сообщить, что на наших ютуб-канале и вк-сообществе вышел новый видеоролик “Как работает Kubernetes: контейнеры, Pod, Deployment и Service”.
О чем видео?
В данном видео вместе с нашим Java-разработчиком Максимом разбираемся, что такое Kubernetes, зачем он нужен и как помогает автоматизировать управление контейнерами. Обсуждаем устройство кластера, роль Pod, Deployment и Service, принципы масштабирования и отказоустойчивости, а также на практике запускаем собственный кластер и проверяем, как Kubernetes работает с приложениями.
📱 YouTube
———
📱 VK
#Y_LAB_University #Y_LAB_YouTube #Y_LAB_VK | 173 |
| 6 | Требования рынка ужесточаются с каждым днем
Пора нагонять 🏃♂️
Тем временем Claude существует 3 года 🤭
#Y_LAB_University #Y_LAB_Memes | 179 |
| 7 | Новый пост Y_LAB_Learning! | MyBatis и EclipseLink: два способа подружить Java с базой данных
📱 Java, БД
О чем статья?
Чем MyBatis и EclipseLink отличаются от Hibernate и друг от друга, и в каких задачах каждый подход подходит лучше. Рассматриваем работу с SQL, ORM и интеграцию с Spring.
📎 Читать статью
#Y_LAB_University #Y_LAB_Learning | 173 |
| 8 | Новый пост Y_LAB Actual | AI в разработке 🧠
Инструменты современного разработчика: от LLM до AI-агента
Ещё недавно AI в разработке ассоциировался в основном с чат-ботом, которому можно было отправить кусок кода и попросить найти ошибку. Сегодня разработчик может не только спросить AI, как решить задачу, но и поручить ему самостоятельно разобраться в проекте, изменить код и проверить результат.
Чтобы понять, что такое AI-агент, полезно сначала разобраться, какие уровни взаимодействия с AI существуют. ⬇️
💬 LLM: «ответь на мой вопрос»
Большая языковая модель (LLM) получает запрос и генерирует ответ на основе доступного ей контекста.
Например:
«Почему здесь возникает NullPointerException?»
Разработчик отправляет фрагмент кода, модель анализирует его и объясняет возможную причину.
LLM может написать функцию, предложить исправление, объяснить алгоритм или помочь разобраться с ошибкой. Но сама по себе модель не знает, что произошло с проектом после её ответа: она не запускает тесты, не открывает следующий файл и не проверяет, помогло ли предложенное решение.
💬 AI-copilot: «помоги мне написать код»
Следующий уровень — AI, встроенный непосредственно в рабочий процесс разработчика.
Copilot может видеть код вокруг курсора, предлагать продолжение функции, генерировать тесты, объяснять существующий код и помогать с рефакторингом.
Здесь AI уже работает не только как чат, а как часть IDE и понимает больше контекста проекта.
Но инициатива всё ещё в основном остаётся у разработчика: человек решает, что делать, принимает изменения, запускает проверки и определяет следующий шаг.
💬 AI-агент: «выполни задачу»
Агент работает иначе.
Вместо запроса «Как исправить этот баг?»
разработчик может поставить цель:
«Найди причину падения теста, исправь баг и проверь, что остальные тесты не сломались».
Дальше агент может самостоятельно:
🔵 Найти нужные файлы;
🔵 изучить код;
🔵 определить возможную причину;
🔵 изменить несколько файлов;
🔵 запустить тесты;
🔵 проанализировать ошибку;
🔵 скорректировать решение;
🔵 снова запустить проверки.
То есть главное отличие агента — не просто в способности генерировать код, а в способности самостоятельно выполнять последовательность действий для достижения цели.
#Y_LAB_University #Y_LAB_Actual | 157 |
| 9 | Работает — не трогай
#Y_LAB_University #Y_LAB_Memes | 155 |
| 10 | #Y_LAB_University #Y_LAB_Memes | 225 |
| 11 | Новый пост Y_LAB_Learning! | IndexedDB: база внутри браузера
🤨 Frontend
О чем статья?
Как работает IndexedDB и чем она отличается от привычных localStorage и sessionStorage. Когда IndexedDB действительно нужна, как хранить и искать данные, работать с транзакциями и файлами, а также использовать хранилище для офлайн-режима.
📎 Читать статью
#Y_LAB_University #Y_LAB_Learning | 203 |
| 12 | Новый пост Y_LAB Actual | Код под микроскопом 🔍
Когда Kubernetes перезапускает приложение, которое вовсе не сломалось 🚤
В Kubernetes есть три похожих механизма проверки состояния приложения: readiness probe, liveness probe и startup probe.
Сперва кажется, что все они нужны примерно для одного и того же — проверить, всё ли хорошо с контейнером. Но у каждой свой сценарий, и перепутать их может быть довольно дорого.
↔️ Представим приложение, которое после запуска несколько минут загружает конфигурацию, подключается к базе и прогревает кеш.
Разработчик добавляет:
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
Приложение стартует, но за 5 секунд не успевает подготовиться. /health отвечает ошибкой. ➡️
Kubernetes решает, что контейнер нездоров и начинает его перезапускать. ➡️
Приложение снова запускается, снова не успевает подготовиться, снова получает перезапуск.
🌀 И получается цикл:
старт → не успело прогреться → restart → старт → restart → …
Хотя приложение само по себе может быть полностью исправным.
💡 В данной ситуации поможет startup probe.
Она предназначена именно для приложений с долгим стартом. Пока startupProbe не прошла успешно, Kubernetes не запускает проверки liveness и readiness.
Например:
startupProbe:
httpGet:
path: /health
port: 8080
periodSeconds: 10
failureThreshold: 30
livenessProbe:
httpGet:
path: /health
port: 8080
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
В этом случае Kubernetes может дать приложению до 5 минут на запуск: 30 × 10 секунд.
☝️ Пока startup probe не прошла, liveness не будет считать медленный старт зависанием и не станет перезапускать контейнер.
После успешного старта startupProbe больше не используется для проверки контейнера, а Kubernetes начинает применять liveness и readiness по назначению.
💡Получается следующая логика:
Startup — «Приложение уже запустилось?»
Readiness — «Можно уже отправлять ему трафик?»
Liveness — «Приложение всё ещё живо или его пора перезапустить?»
При этом readiness может временно перестать проходить уже после запуска приложения, например, если сервис потерял соединение с зависимостью и пока не готов принимать запросы. В таком случае Pod можно убрать из балансировки, не перезапуская контейнер.
⬇️⬇️⬇️
Не пытайтесь решить все проблемы одним livenessProbe. Сначала определите, что именно вы проверяете: завершился ли старт, готов ли сервис принимать трафик или действительно ли процесс нужно перезапустить.
А сталкивались с ситуацией, когда Kubernetes начинал перезапускать приложение просто потому, что оно слишком долго запускалось? 👀
#Y_LAB_University #Y_LAB_Actual | 168 |
| 13 | #Y_LAB_University #Y_LAB_Memes | 169 |
| 14 | #Y_LAB_University #Y_LAB_Memes | 236 |
| 15 | Новый пост Y_LAB_Learning! | Не кладите токен в LocalStorage: как выбрать хранилище на клиенте
🤨 Frontend
О чем статья?
Как работают localStorage и sessionStorage, чем они отличаются и какие данные стоит хранить в каждом из них. Особенности Web Storage, его ограничения и типичные ошибки.
📎 Читать статью
#Y_LAB_University #Y_LAB_Learning | 207 |
| 16 | Новый пост Y_LAB Actual | Код под микроскопом 🔍
Идемпотентность — одна из тех вещей в API, о которых легко забыть, пока всё работает идеально. Но как только появляется нестабильная сеть, таймауты или автоматические retry, обычный запрос может неожиданно выполниться несколько раз.
Для API, доступного по HTTP, как мы знаем, подразумевается идемпотентность операций, таких как GET, DELETE, OPTIONS и т.д.
❗️ НО для POST операций совершенно точно не будет идемпотентности.
Особенно опасно это для случаев, при которых происходит изменение данных: создание заказа, оплата, списание денег, отправка сообщения.
⚪️⚪️⚪️
Представим, что пользователь нажал «Оплатить». Клиент отправил запрос:
POST /api/orders
{
"productId": 42,
"quantity": 1
}
Сервер успешно создал заказ, но ответ не дошёл до клиента из-за проблем с сетью.
Клиент не знает, что операция уже выполнилась, и отправляет запрос ещё раз.
Для сервера это два одинаковых POST-запроса, поэтому он может создать два заказа. Именно здесь нужна идемпотентность: повторное выполнение одной и той же операции должно давать тот же результат, что и первое выполнение.
⬇️⬇️⬇️
Один из распространённых вариантов — idempotency key. Клиент генерирует уникальный ключ для конкретной операции и передаёт его вместе с запросом:
POST /api/orders
Idempotency-Key: 7f3a9c21
{
"productId": 42,
"quantity": 1
}
Сервер сохраняет этот ключ и результат операции. Если приходит повторный запрос с тем же ключом, он понимает, что такая операция уже выполнялась, и не создаёт заказ заново, а вместо этого возвращает сохранённый результат.
❗️ При этом важно, чтобы ключ был связан именно с одной логической операцией. Новый заказ должен получить новый ключ, а повторная попытка отправить тот же заказ — использовать старый.
💡💡💡
Добавляя retry для API-запросов, всегда спрашивайте себя:
«А что будет, если предыдущий запрос на самом деле успешно выполнился, но мы этого не узнали?»
Для операций, которые создают или изменяют данные, такой вопрос может спасти от очень неприятных багов в проде.
А вы используете idempotency key в своих API? 👀
#Y_LAB_University #Y_LAB_Actual | 192 |
| 17 | 💪💪💪
#Y_LAB_University #Y_LAB_Memes | 189 |
| 18 | #Y_LAB_University #Y_LAB_Memes | 245 |
| 19 | Новый пост Y_LAB_Learning! | Многопоточность в тестировании: что происходит, когда запросы приходят одновременно
🪲 QA, Основы и старт в IT
О чем статья?
Почему параллельные действия пользователей могут приводить к двойным заказам, повторным списаниям и другим неожиданным результатам. На что обращать внимание при тестировании многопоточности и как проверять такие сценарии на практике.
📎 Читать статью
#Y_LAB_University #Y_LAB_Learning | 243 |
| 20 | Новый пост Y_LAB Actual | Код под микроскопом 🔍
Продолжаем разбирать реальные инженерные ловушки, которые легко не заметить в обычной разработке.
Сегодня под микроскопом — транзакции в базе данных 🗄
Представим перевод денег между счетами:
UPDATE accounts
SET balance = balance - 1000
WHERE id = 1;
UPDATE accounts
SET balance = balance + 1000
WHERE id = 2;
С одного счёта списали деньги, на другой зачислили. Но что будет, если первый UPDATE успешно выполнится, а второй завершится ошибкой ❓
Получим:
Счёт №1 → -1000 ₽
Счёт №2 → без изменений
Деньги буквально «исчезли» из системы.
❓ Как этого избежать?
Связанные операции нужно выполнять внутри одной транзакции:
BEGIN;
UPDATE accounts
SET balance = balance - 1000
WHERE id = 1;
UPDATE accounts
SET balance = balance + 1000
WHERE id = 2;
COMMIT;
Если на втором запросе произошла ошибка, транзакцию можно откатить:
ROLLBACK;
Тогда изменения первого UPDATE тоже не сохранятся.
Именно в этом смысл транзакции:
связанные изменения должны либо примениться вместе, либо не примениться вообще.
⬇️⬇️⬇️
Если несколько операций с данными должны рассматриваться как единое действие, спросите себя:
Что произойдёт, если одна из операций упадёт после того, как предыдущие уже выполнились?
Если ответ — «данные могут оказаться в неконсистентном состоянии», возможно, здесь нужна транзакция.
#Y_LAB_University #Y_LAB_Actual | 190 |
