Войти в Y_LAB | IT развитие и юмор

Войти в Y_LAB | IT развитие и юмор

@ylab_v_it

Стажировки, вакансии, полезные материалы, развлекательный контент.Y_LAB — команда опытных IT-специалистов, которая готова помочь вам войти в мир технологий!Сотрудничество (ylab v it) @tamriko1_5

773подписчиков
Несколько раз в неделю🇷🇺

Похожие каналы

Все →

Последние посты

Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB_Learning! | Spring WebFlux для Java-разработчиков: устройство, преимущества и подводные камни📱 JavaО чем статья?Что такое Spring WebFlux, как работает реактивный подход и чем он отличается от Spring MVC. Основные преимущества, ограничения и сценарии, в которых WebFlux действительно оправдан.📎 Читать статью#Y_LAB_University #Y_LAB_Learning

10 июн. 2026 г.223В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB Actual | Код под микроскопом 🔍Продолжаем рубрику, в которой разбираем неочевидные ситуации из мира разработки и ищем подвох там, где его не всегда ожидаешь увидеть.Сегодня под микроскопом Git. И одна из ошибок, которую хотя бы раз совершал почти каждый разработчик 👇bash git add . git commit -m "Fix bug" git push Вопрос: Что произойдёт, если выполнить эти команды, находясь в ветке main?Многие ответят:> Изменения попадут в удалённый репозиторий.И это действительно так.❗️ Но есть нюанс: Git совершенно не проверяет, ту ли ветку вы собирались использовать.🤔 Если вы забыли переключиться на feature-ветку и случайно остались в main, то изменения будут закоммичены и отправлены именно туда.Для Git это абсолютно корректное действие:bash git branch может показать:bash * main а дальше команды спокойно выполнятся без каких-либо предупреждений.❔ Почему это важноМногие воспринимают Git как инструмент, который не позволит совершить ошибку.На самом деле Git отлично защищает историю проекта, но не может понять, что вы случайно работаете не в той ветке.💬 Что делать, если ошибка уже допущена🎯 Если коммит уже сделан, но git push ещё не выполнялсяИсправить ситуацию достаточно просто: можно создать новую ветку от текущего состояния и перенести в неё коммит, а ветку main вернуть к предыдущему состоянию.Так ошибка останется только локальной и не затронет остальных участников команды.🎯 Если коммит уже отправлен (git push выполнен)Здесь всё зависит от процесса в команде.↔️ Если ветка общая и её используют другие разработчики, безопаснее всего сделать новый коммит, который отменит изменения (git revert), а затем перенести нужный код в отдельную рабочую ветку.↔️ Если же история ещё никем не использовалась, иногда применяют переписывание истории (git reset + push --force), но делать это стоит только после согласования с командой, иначе можно испортить историю репозитория коллегам.⌨️ Почему этот кейс встречается так часто?Потому что ошибка выглядит не как ошибка.Все команд

9 июн. 2026 г.173В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

делает вид, что ничего не знает 👀#Y_LAB_University #Y_LAB_Memes

8 июн. 2026 г.179В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB Videos! | Свежее видеоВсем привет! Рады сообщить, что на наших ютуб-канале и вк-сообществе вышел новый видеоролик “Как начать работать с Camunda 7”.О чем видео? В данном видео вместе с нашим Java-разработчиком Артемом разбираемся с Camunda — популярной платформой для автоматизации бизнес-процессов на Java. Рассмотрим ключевые возможности Camunda 7, сравним её с Camunda 8, познакомимся с BPMN-моделированием, создадим и запустим собственный процесс, а также разберём основные компоненты платформы и варианты её развёртывания.📱 YouTube———📱 VK#Y_LAB_University #Y_LAB_YouTube #Y_LAB_VK

5 июн. 2026 г.256В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB_Learning! | За кулисами Spring: как работают аспекты и почему вы уже используете AOP📱 JavaО чем статья?Как работают Spring AOP и AspectJ, зачем нужны аспекты и как с их помощью выносить логирование, аудит, безопасность и другие сквозные задачи из бизнес-логики. Основные возможности, ограничения и практические сценарии использования.📎 Читать статью#Y_LAB_University #Y_LAB_Learning

3 июн. 2026 г.256В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB Actual | Код под микроскопом 🔍Продолжаем разбирать фрагменты кода, в которых всё выглядит правильно до тех пор, пока программа не начинает работать не так, как ожидалось.Сегодня под микроскопом небольшой пример на 📱 Python, который регулярно становится причиной багов даже у опытных разработчиков def add_item(item, items=[]): items.append(item) return itemsprint(add_item("apple"))print(add_item("banana"))Вопрос:Что выведет программа?Многие ожидают такой результат:['apple']['banana']Но на самом деле вывод будет другим:['apple']['apple', 'banana']Почему так происходит 💬На первый взгляд кажется, что при каждом вызове функции создаётся новый пустой список:items=[]Но в Python аргументы по умолчанию создаются один раз, в момент объявления функции, а не при каждом её вызове.То есть список items сохраняется между вызовами функции.↔️Что происходит по шагам: 🎯 Первый вызов:add_item("apple")В список добавляется "apple":['apple'] 🎯 Второй вызов:add_item("banana")Используется тот же самый список, поэтому результат становится:['apple', 'banana']Как исправить 🛠Обычно используют None в качестве значения по умолчанию:def add_item(item, items=None): if items is None: items = [] items.append(item) return itemsТеперь при каждом вызове будет создаваться новый список.💬💬💬Такая особенность Python может долго оставаться незаметной: функция работает, ошибок нет, но данные начинают «переезжать» между вызовами.Именно поэтому изменяемые объекты в аргументах по умолчанию считаются одним из самых известных антипаттернов языка.А вы знали про эту особенность Python или ожидали другой результат? 👀#Y_LAB_University #Y_LAB_Actual

2 июн. 2026 г.243В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

#Y_LAB_University #Y_LAB_Memes

1 июн. 2026 г.227В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB Videos! | Свежее видеоВсем привет! Рады сообщить, что на наших ютуб-канале и вк-сообществе вышел новый видеоролик “Микросервисная коммуникация: Rest vs gRPC”.О чем видео? В данном видео вместе с нашим Java-разработчиком Максимом разбираем, как микросервисы обмениваются данными между собой, и сравним REST и gRPC на практике. Поговорим об эволюции HTTP, отличиях JSON и Protobuf, а также покажем лайвкодинг интеграции сервиса заказов и склада.📱 YouTube———📱 VK#Y_LAB_University #Y_LAB_YouTube #Y_LAB_VK

29 мая 2026 г.277В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

#Y_LAB_University #Y_LAB_Memes

28 мая 2026 г.246В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB_Learning! | Webpack, Vite и No-Build: как сегодня собирать frontend-проекты🔵 FrontendО чем статья?Как изменился подход к сборке Frontend-проектов: от Webpack к Vite и no-build решениям. Плюсы, минусы и сценарии использования каждого подхода в современной разработке.📎 Читать статью#Y_LAB_University #Y_LAB_Learning

27 мая 2026 г.278В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB Actual | Код под микроскопом 🔍Продолжаем рубрику, в которой разбираем небольшие фрагменты кода и ищем в них скрытые ошибки, неочевидное поведение и моменты, которые могут привести к неожиданным результатам.🗄 Сегодня пример не на языке программирования, а на SQL. И это тот случай, когда одна маленькая деталь может повлиять сразу на все данные в таблице:sql UPDATE users SET is_active = false; Вопрос: Что сделает этот запрос?На первый взгляд кажется, что всё просто: обновит значение поля is_active.Но есть важный нюанс: запрос изменит каждую строку в таблице users.📌 Итог:• Все пользователи станут неактивными;• Данные изменятся сразу для всей таблицы;• Откатить последствия без резервной копии может быть непросто.❓ Почему так происходитВ запросе отсутствует ключевое условие:sql WHERE ... Без WHERE команда UPDATE применяется ко всем записям, которые находятся в таблице.То есть этот код:sql UPDATE users SET is_active = false; по сути означает:> «Сделать is_active = false для каждого пользователя».💡 Как должно быть?Если нужно обновить конкретную запись, необходимо явно указать условие:sql UPDATE users SET is_active = false WHERE id = 42; Теперь изменится только один пользователь.🛠 Как защититься от таких ошибок?Полезная привычка перед UPDATE и DELETE сначала запускать:sql SELECT * FROM users WHERE id = 42; Так можно заранее проверить, какие строки попадут под изменение.🎯🎯🎯Подобная ошибка кажется слишком очевидной… пока не случается в реальной базе.Иногда один пропущенный WHERE — это не просто баг, а очень долгий вечер восстановления данных.Случалось когда-нибудь запускать запрос и сразу тянуться к backup? 👀#Y_LAB_University #Y_LAB_Actual

26 мая 2026 г.225В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

#Y_LAB_University #Y_LAB_Memes

25 мая 2026 г.213В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB Videos! | Свежее видеоВсем привет! Рады сообщить, что на наших ютуб-канале и вк-сообществе вышел новый видеоролик “Объектное хранилище S3: Полный разбор и настройка MinIO в Spring Boot”.О чем видео? В данном видео вместе с нашим Java-разработчиком Юрием разбираем, как устроено объектное хранилище S3 и почему этот стандарт стал основой для работы с файлами в современных backend-системах. От теории и сравнения популярных S3-решений до практической настройки MinIO и его интеграции с Spring Boot 3: пошагово показываем, как организовать надежное и масштабируемое файловое хранилище в Java-приложении.📱 YouTube———📱 VK#Y_LAB_University #Y_LAB_YouTube #Y_LAB_VK

22 мая 2026 г.287В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

#Y_LAB_University #Y_LAB_Memes

21 мая 2026 г.264В Telegram
Войти в Y_LAB | IT развитие и юмор — пост в ТГ канале

Новый пост Y_LAB Actual | Код под микроскопом 🔍Продолжаем рубрику, в которой разбираем небольшие фрагменты кода и ищем в них неочевидные особенности, ошибки и подводные камни, которые могут встретиться даже в самых простых на первый взгляд задачах.📱 Сегодня короткий пример на Java, где всё выглядит логично… но результат может удивить ⬇️Integer a = 127;Integer b = 127;System.out.println(a == b);Вопрос: Что выведет консоль?Кажется, что ответ очевиден:trueИ действительно именно таким и будет результат.Но теперь посмотрим на почти такой же код:Integer a = 128;Integer b = 128;System.out.println(a == b);А здесь консоль уже выведет:false❓ Почему так происходитНа первый взгляд оба примера одинаковые: создаются два объекта Integer, которые хранят одно и то же значение.Но дело в том, что Java использует Integer Cache — внутренний механизм кэширования объектов-обёрток для чисел в диапазоне от -128 до 127.Это значит, что в первом примере:Integer a = 127;Integer b = 127;обе переменные ссылаются на один и тот же объект в памяти, поэтому:a == bвозвращает true.А вот для числа 128 кэш уже не используется, и создаются два разных объекта, поэтому:a == bдаёт false.🤔 В чём ошибка?Оператор == для объектов сравнивает ссылки, а не значения.Чтобы сравнить сами значения, нужно использовать:System.out.println(a.equals(b));И тогда результат будет корректным независимо от числа.🗂️Такие мелочи легко пропустить, особенно на собеседованиях или при отладке, а потом долго искать, почему одинаковые числа вдруг «не равны».Замечали раньше этот подвох с Integer? 👀#Y_LAB_University #Y_LAB_Actual

19 мая 2026 г.273В Telegram