fa
Feedback
Бодрый кодер

Бодрый кодер

رفتن به کانال در Telegram

Меня зовут Лев, я руководитель направления в ПСБ. Это мой личный блог о DevOps, разработке, системном анализе, AI и управлении IT-командами. Делюсь своими мыслями, инсайтами, полезными инструментами и тем, что меня вдохновляет. Автор: @nemirlev

نمایش بیشتر
506
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+17 روز
+730 روز
آرشیو پست ها
https://gitstory.pankajk.tech/ - Прикольный сервис. Вводишь свой ник на github и он подвит итоги твоего кода на нем. Прям очень красиво.

Тут короче новость проскочила - «MinIO прекратил развитие открытой кодовой базы в пользу проприетарного продукта». Может кто знает альтернативы, со свободной, не вирусной лицензией?

Будем считать что #пятничныйюмор , но многим не смешно. Т
Будем считать что #пятничныйюмор , но многим не смешно. Т

Repost from Cybred
🔥 10/10 React4shell В официальном блоге React только что выкатили пост про CVE-2025-55182, которая позволяет в один запрос получить RCE. Уязвимы версии 19.0.0, 19.1.0, 19.1.1, 19.2.0, а еще фреймворки Next.JS, Vite, Parcel, и Waku.
Just when I thought the day was over… CVE-2025-55182 shows up 🫠
Сам баг находится в RSC-рантайме, который принимает данные и небезопасно десериализует их. Запатчиться сейчас почти никто не успел, а уязвимость можно считать одной из самых критичных, которые находили в React за все время.

Лучший вывод.
Лучший вывод.

Снова на конференции. В Ярославле ПСБ организовал. Почти 300 участников, один зал.
Снова на конференции. В Ярославле ПСБ организовал. Почти 300 участников, один зал.

Всех с выходными. #пятничныйюмор
Всех с выходными. #пятничныйюмор

Интересно, а кто-то пользовался Circle CI. Как он по сравнению с Gitlab или Actions?

Китайцы выпустили новую нейросеть - LingGuang, она набирает пользователей быстрей чем ChatGPT. Ее прикол в том что она не про
+1
Китайцы выпустили новую нейросеть - LingGuang, она набирает пользователей быстрей чем ChatGPT. Ее прикол в том что она не просто отвечает, а генерирует мини приложения. Я проверил, во первых быстро, во вторых выглядят красиво. Доступна в AppStore, для регистрации нужен китайский номер телефона.

Huawei представил новый роутер, с поддержкой WiFi 7. Дизайн - мое почтение. Характеристики тоже в порядке - Основной блок осн
+1
Huawei представил новый роутер, с поддержкой WiFi 7. Дизайн - мое почтение. Характеристики тоже в порядке - Основной блок оснащается 512 МБ ОЗУ и 128 МБ постоянной памяти и поддерживает скорость до 688 Мбит/с в диапазоне 2,4 ГГц и до 2882 Мбит/с в диапазоне 5 ГГц с общей пиковой в 3570 Мбит/с. Конечно есть пару портов 2.5 Гбит/с, уже в принципе стандарт. Стоит 183$.

Вообщем, сегодня поймал второе откровение. GitHub CI вырвался вперёд — и не за счёт “мощи”, а именно за счёт удобства. Когда тебе нужно быстро поднять пайплайн, GitHub ощущается как «дружелюбный сосед»: открыл, выбрал нужные actions, связал пару шагов — и через 5-10 минут у тебя уже всё крутится и билдится. Без боли, без танцев, без «почему оно не нашло runner», или почему тут нужны сертификаты. В GitLab же каждый новый проект превращается в маленькое приключение. То синтаксис чуть иначе, то раннер что-то не так понял, то половину вечера проводишь в постоянных тестах-конфигурациях, чтобы добиться банального результата. И да — в корпоративной среде с хорошей культурой можно собрать такую же магию через импорты и готовые шаблоны. Но вот где сила сообщества — там и настоящая скорость. А GitHub здесь просто разрывает. #devops #ci #github #gitlab #инженерия

А я, кажется, влюбился в testcontainers. Короче… Я же знал, что они существуют. Видел где-то в статьях, слышал на конференциях, даже пару раз пролистывал доку. И каждый раз думал: «Ну да, прикольно, может потом». И вот этот «потом» наконец случился. Сейчас я как раз собираю для коллег гошный шаблон микросервиса — чтобы любой мог стартануть без боли, сразу писать бизнес-логику, а не копаться в инфраструктурной рутине. Ну и логично было заодно нормально пройтись по инструментам, которые давно висели в списке «надо потом попробовать». И тут я такой: ладно, давай посмотрим на эти ваши Testcontainers… Блин. Кайф. Типа прям честный кайф. Ты просто из кода поднимаешь Kafka, Postgres, MinIO — что угодно — и тестируешь как человек. Быстрая проверка CRUD? Пара секунд. Проверка продюсера/консьюмера — ещё пару секунд. И всё. Никакого «а давайте поднимем докер-композ», никакого «подождите, сейчас локально настрою». Стартуют почти как юниты с моками, только результат реальный, живой, как в проде. И вот это чувство… когда тесты, которые должны страдать минуту, вдруг проходят за 3 секунды — я такой: где вы были всю мою жизнь? Теперь жалею, что не внедрил это раньше в команде. Но зато в новый шаблон — войдут по-любому. Если кто-то до сих пор сомневается: не сомневайтесь. Это как впервые попробовать нормальный автотестовый фреймворк после ручных проверок в Postman — назад уже не хочется. P.S. Вот так например выглядет поднятие постгри:

pgContainer, err := postgresContainer.Run(ctx,
 "postgres:18",
 postgresContainer.WithDatabase("testdb"),
 postgresContainer.WithUsername("testuser"),
 postgresContainer.WithPassword("testpass"),
 testcontainers.WithWaitStrategy(
  wait.ForLog("database system is ready to accept connections").
   WithOccurrence(2).
   WithStartupTimeout(30*time.Second),
 ),
)
#golang #testcontainers #микросервисы #testing #qa #backend #go

Интервьювер сломал процесс собеса, попросил закрыть глаза и ответить на следующий вопрос :) #пятничныйюмор
Интервьювер сломал процесс собеса, попросил закрыть глаза и ответить на следующий вопрос :) #пятничныйюмор

Идет жаркая дискуссия (прочитайте комменты к первой статье), о том стоит ли доверять сертификатам Минцифры. Основная проблема, возможность MITM атаки, автор вполне доступно объяснил как быстро это можно сделать после установки сертом. Будучи молодым, я бы возбудился на такое, но в текущих условиях наверное без разницы - стоит да стоит. Если условному «товарищу майору», нужно будет посмотреть что я делаю на промтхабе - он всегда может постучаться в дверь. И скорей всего так и будет. Поэтому в целом можно спать спокойно. https://habr.com/ru/articles/968218/

⚡️Яндекс представил Промптхаб — площадку, где можно найти идеи для использования ИИ, добавлять свои предложения и пройти бесплатные курсы по нейросетям, рассказали в компании.
«Любой человек, даже не знакомый с нейросетями, сможет найти для себя что-то полезное и тут же воспользоваться идеей в чате с Алисой AI. Например, составить план рекламной кампании или попросить обустроить домашний офис — потребуется лишь указать в инструкции собственные параметры. Пользователи и компании могут добавлять на платформу свои промпты», говорится в сообщении.

Главное случайно не зайти на другой сайт.

Сегодня понедельник — самое время выдать свой вариант по странам-регионам-городам. Сначала, конечно, тянет сделать что-то такое: `/countries/{id}/regions/{id}/cities/{id}` Красиво же! Иерархично! Прямо видно структуру данных! Но это ощущение проходит примерно через пять минут — как только начинаешь думать о реальном использовании. Во-первых, все эти сущности живут сами по себе: у страны есть ID, у региона есть ID, у города есть ID. Зачем же закапывать их друг в друга, если каждый можно получить напрямую? Во-вторых, фильтрация потом превращается в цирк: если тебе нужны «все города страны с населением больше 100к и без метро», то в лесенке из URL это выглядит максимально странно. Поэтому финальный, рабочий и жизненный вариант у меня такой: 1. Каноничные ресурсы — плоские
GET /countries
GET /countries/{country_id}

GET /regions
GET /regions/{region_id}

GET /cities
GET /cities/{city_id}
Каждая сущность доступна сама по себе. Это убирает лишние проверки, упрощает клиентам жизнь и делает API устойчивым. 2. Отношения — через коллекции (чтобы можно было удобно «провалиться этажом ниже»)
GET /countries/{country_id}/regions
GET /regions/{region_id}/cities
GET /countries/{country_id}/cities
Это удобно для навигации — но не обязательно для CRUD. 3. Фильтры — через query, а не через URL-матрешку сделать что-то такое: `/countries/{id}/regions/{id}/cities/{id}` Красиво же! Иерархично! Прям Это гибче, чище и не ломается от каждого нового поля. Если бы это был реальный сервис, я бы ещё добавил сортировки, пагинацию и лёгкое кеширование — справочники всё-таки. Но в общем — вот так.

Завтра понедельник, а это повод размяться не много перед рабочей неделей. Представьте что вам надо сделать контракт, REST. Для трех сущностей - Страна, Регион, Город. Как бы вы сделали? Свой вариант завтра вечером опубликую.

Языку Go сегодня 16 лет. Из наверное самых классных функций последнего время - это новый сборщик Green Tea, который рока в бета. Причем не верится в такую дату честно говоря. Я помню когда смеялись что языку года 2-3, а требуют опыт 5 лет. Прям себя сильно олдом почувствовал. #go #golang

Докладчики-победители Analyst Days #21 🥇1 место — Аня Гурова 🥈2 место — Аня Казаченко 🥉3 место — Лев Немировский