TGViewer
Channel Public Channel
Бодрый кодер

Бодрый кодер

@bodrcoder

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

Автор: @nemirlev
Subscribers
576
Photos
335
Videos
31
Links
206

Showing posts older than #304 · Back to latest

Older Posts 20 shown
Post #303 393
Depseek явно всех подстегнул. Недавно вышла Sonnet 3.7, а сегодня GPT 4.5. Остальные разработчики тоже подтянулись.

#openai #ai #chatgpt #gpt4.5
  • 👍 5
Post #302 423
Не я один от этого страдаю - https://habr.com/ru/articles/883858/. Но как в комментах заметили, сосредоточились не на том. Самая главная проблема - актуализировать одно и тоже резюме на нескольких площадках.

#карьера #cv
Хабр Как сделать красивое резюме используя JSON Описание проблемы Для меня всегда был острым вопрос поддержания резюме в актуальном состоянии. Казалось бы, задача простая, но на самом деле она достаточно сложная, ведь резюме — это не только список...
Post #301 363
Узнал, что Яндекс в свою клавиатуру как для iOS так и для Android встроил нейросетку. С ней вроде можно писать грамотно и находу генерировать тексты/улучшения текущего.

Кто пробовал? Как вам?

#ai #yandex
Post #300 406
Команда Rust порадовала нас самой крупной редакцией языка за всю историю! Версия 1.85.0 и Edition 2024 уже доступны в стабильном канале.

Главные новинки:
- Асинхронные замыкания (async closures): теперь можно писать async || {}, что решает проблемы с захватом значений из контекста. Также добавлены трейты AsyncFn, AsyncFnMut и AsyncFnOnce.
- Новый атрибут #[diagnostic::do_not_recommend] для скрытия нежелательных реализаций трейтов в диагностике компилятора.
- FromIterator и Extend теперь работают с кортежами от 1 до 12 элементов - можно создавать сразу несколько коллекций одним вызовом collect().

В Edition 2024 внесли множество изменений, улучшающих безопасность и эргономику:
- Блоки extern теперь требуют ключевое слово unsafe
- Изменены правила временной области для if let и последних выражений в блоках
- Улучшена работа с #![deny(unsafe_op_in_unsafe_fn)]
- Зарезервированы ключевые слова gen и синтаксис защищенных строк #"foo"#

Чтобы обновиться, просто выполните rustup update stable. Для перехода на Edition 2024 в большинстве случаев поможет cargo fix.

#rust #programming #update #edition2024
Post #299 392
Написал статью по observability - https://habr.com/ru/articles/885224/. В одну часть всё не влезло (как обычно 😅), так что планирую цикл из 4 статей.

По традиции буду рад лайку, плюсу в карму и вашим комментариям. Обратная связь очень помогает делать контент лучше!

P.S. Статья юбилейная, 10-я :)

#habr #observability #мониторинг #devops #статья #разработка
  • 👍 10
  • 🔥 2
Post #298 527
#пятничныйюмор
  • 👍 4
Post #297 379
Можно уже протестить новую нейросеть от Илона

#grok #ai
Post #296 387
Второй доклад тоже залетел, летом буду выступать в секции Системный анализ, в Новосибирске. https://15.codefest.ru

Осталось дождаться решения программных комитетов по 3-м заявкам. Ждать вообще не люблю.
  • 🔥 10
  • ❤‍🔥 1
Post #295 387
Сегодня хочу затронуть тему, которая волнует многих DevOps-инженеров и разработчиков: Terraform или Pulumi? Оба инструмента помогают управлять инфраструктурой как кодом (IaC), но подходы у них разные. И если вы ещё не пробовали Pulumi, то, возможно, после этого поста захотите! 😉

---

Terraform: классика жанра
Terraform — это, без сомнения, стандарт индустрии. Он использует декларативный подход, где вы описываете, *какой* должна быть инфраструктура, а Terraform сам решает, *как* этого достичь.

Плюсы:
- Огромное сообщество и поддержка множества провайдеров.
- Простота в освоении (HCL — это не язык программирования, а конфигурационный файл).
- Состояние инфраструктуры хранится в файле terraform.tfstate, что удобно для отслеживания изменений.

Минусы:
- HCL (HashiCorp Configuration Language) ограничен в возможностях.
- Нет типизации, что может приводить к ошибкам.
- Сложности с повторным использованием кода (хотя модули помогают, но это не всегда достаточно).

---

Pulumi: инфраструктура как настоящий код
А теперь давайте посмотрим на Pulumi. Это инструмент, который позволяет описывать инфраструктуру на реальных языках программирования: Python, TypeScript, Go, C# и других. Да, вы не ослышались — это Infrastructure as Real Code!

Плюсы:
- Pulumi использует строгую типизацию, что помогает избежать множества ошибок на этапе написания кода. IDE подскажет, если вы что-то сделали не так.
- Вы получаете все плюшки вашей любимой IDE: автодополнение, проверка типов, рефакторинг и даже отладку. Попробуйте это сделать в Terraform с его HCL!
- Не нужно учить новый синтаксис (HCL). Если вы уже пишете на Python, TypeScript или Go, то можете сразу начать использовать Pulumi.
- Функции, классы, модули — всё это доступно в Pulumi. Вы можете писать более структурированный и поддерживаемый код.
- Pulumi также хранит состояние, но предлагает больше гибкости в управлении им. Вы можете использовать Pulumi Service, S3, Azure Blob Storage и другие бэкенды.

А что с минусами?
- Сообщество пока меньше, чем у Terraform.
- Не все провайдеры поддерживаются так же хорошо, как в Terraform.
- Может быть избыточным для простых задач.

---

Когда выбирать Pulumi?
- Если вы разработчик и хотите использовать знакомые языки программирования.
- Если вам нужна типизация и поддержка IDE.
- Если ваш проект сложный и требует повторного использования кода.

Когда выбирать Terraform?
- Если вам нужен проверенный инструмент с огромным сообществом.
- Если ваша инфраструктура относительно простая.
- Если вы уже используете Terraform и не хотите мигрировать.

---

Итог

Pulumi — это мощный инструмент для тех, кто хочет писать инфраструктуру как настоящий код. Он идеально подходит для разработчиков, которые хотят использовать свои навыки программирования. Terraform же остаётся надёжным выбором для классического подхода к IaC.

А какой инструмент используете вы? Делитесь в комментариях! И если ещё не пробовали Pulumi, может, самое время? 😉

#DevOps #IaC #Terraform #Pulumi #InfrastructureAsCode
  • 👍 3
Post #294 356
Стоило только написать первую статью в этом году, как тут же пришли с отличной новостью - мой доклад приняли на конференцию Merge (https://tatarstan2025.mergeconf.ru)! Буду выступать в секции DevOps.

Можно сказать, первая ласточка в этом году. В работе ещё 4 заявки, держим кулачки! 🤞

#конференции #merge #devops #публичныевыступления #татарстан
tatarstan2025.mergeconf.ru IT-конференция Merge в Иннополисе 2025 Профессиональная межрегиональная IT-конференция | 25 - 26 апреля 2025 года, Иннополис
  • 🔥 10
  • ❤‍🔥 1
  • ❤ 1
Post #293 357
Всех с первым рабочим днем. Предлагаю по дороге домой прочитать мою новую статью, первую в этом году - https://habr.com/ru/articles/883300/

Актуальна даже если не работаете с php.

Лайки статье очень приветствуются :)

#docker #laravel #php #nginxunit
Хабр История создания идеального Docker для Laravel Казалось бы, упаковать PHP в контейнер и настроить GitHub Actions - дело пяти минут. Но как часто бывает, реальность оказалась сложнее. Это история о том, как я вернулся к разработке на PHP и решал...
  • 🔥 5
Post #292 397
Не смог пройти мимо, поэтому в честь праздника два поста :)

#пятничныйюмор
  • ❤ 9
Post #291 380
#пятничныйюмор
  • 💯 10
  • 🤣 5
  • 👍 1
Post #290 417
Вышел Go 1.24! Что нового? 🚀
Решил поделиться интересными обновлениями из свежего релиза Go 1.24. Опубликовали 11 февраля, и там есть действительно полезные штуки:

Наконец-то добавили поддержку обобщённых псевдонимов типов (generic type alias). Теперь при определении псевдонима можно указывать параметры типа.

Оптимизировали runtime - нагрузка на CPU снизилась на 2-3%. Добавили новую реализацию map на основе Swiss Table, улучшили работу с памятью для мелких объектов и обновили mutex.

Для Go-модулей появился механизм отслеживания исполняемых зависимостей через директиву tool (например, линтеров). Теперь можно добавлять их через go get -tool.

В стандартной библиотеке появились криптоалгоритмы из FIPS 140-3 и пакеты для квантово-устойчивого шифрования (ML-KEM-768 и ML-KEM-1024).

Улучшили поддержку WebAssembly - можно собирать Go-приложения как библиотеки или WASI-обработчики.

#golang #релиз #разработка #программирование
  • 🔥 4
  • ❤ 1
Post #289 355
Мне все больше нравится работать с легковесной альтернативой Elastic - Vector + Loki + Grafana 📊
Легче, дешевле, и работает с PromQL, который вы уже знаете по метрикам!
#мониторинг #логи #vector #loki #grafana #devops
Post #288 359
Целых два дня без постов, поэтому захожу сразу с темы для дискуссии - метрики в разработке. Тема интересная тем, что бизнес их очень любит, а исполнители часто стараются избегать, считая бесполезной бюрократией. Выскажу свое мнение, а вы поделитесь своим.
Я считаю, что метрики очень важны, но к ним нужно относиться не как к инструменту, с помощью которого можно карать и миловать, а как к индикаторам, благодаря которым можно принимать решения проактивно, а не постфактум. Я пришел к делению на два блока:

Бизнес метрики - это здоровье продукта, основное. Конечно, всё зависит от специфики проекта, но за основу можно взять Retention Rate (сколько пользователей возвращаются через X дней), NPS, активных пользователей (DAU/WAU/MAU), конверсию в целевые действия, среднее время до целевого действия, количество багов на пользователя и, конечно, SLA/SLO/SLI.

Метрики разработки (не конкретных разработчиков, а всех ролей, которые участвуют!) - тут важны Lead Time и Cycle Time, частота релизов, количество ошибок после релиза, частота неудачных деплоев, MTTR, время код-ревью и эффективность тестового покрытия. Можно добавить соотношение затраченного времени к планируемому,

А как вы относитесь к метрикам? Какие считаете действительно полезными?

#разработка #метрики #management #teamlead #продакт
  • 🤔 3
  • ❤‍🔥 1
  • 👍 1
Post #287 384
#пятничныйюмор
  • 😁 3
  • 😭 1
Post #286 377
В свободное время начал изучать Rust и сразу делаю параллели с Go.

Простой Hello World telegram-бот на Go:


package main

import (
"log"
"os"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)

func main() {
bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_APITOKEN"))
if err != nil {
log.Panic(err)
}

u := tgbotapi.NewUpdate(0)
u.Timeout = 60

updates := bot.GetUpdatesChan(u)

for update := range updates {
if update.Message == nil {
continue
}

msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Hello World!")
bot.Send(msg)
}
}


А вот на Rust:


use teloxide::{prelude::*, utils::command::BotCommands};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
pretty_env_logger::init();
log::info!("Starting bot...");

let bot = Bot::from_env();

teloxide::repl(bot, |bot: Bot, msg: Message| async move {
bot.send_message(msg.chat.id, "Hello World!").await?;
Ok(())
})
.await;

Ok(())
}


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

#Rust #Golang #разработка #изучаюязыки
  • 👍 3
Post #285 315
Поговорим про распил монолита. На схеме представлены 4 ключевых паттерна, которые помогут упростить переход:

Strangler Fig Pattern - позволяет постепенно извлекать функционал из монолита в отдельные сервисы, не нарушая работу системы. Как лиана, новые сервисы обвивают старый монолит, постепенно забирая его функционал.

Parallel Run Pattern - позволяет запускать старую и новую реализацию параллельно, сравнивая результаты. Это снижает риски при миграции, так как мы можем быстро откатиться на старую версию.

Decorating Collaborator Pattern - позволяет добавлять новую функциональность через прокси-слой, не меняя существующий монолит.

Change Data Capture (CDC) - позволяет отслеживать изменения в базе данных и синхронизировать данные между старой и новой системой.

Кстати, даже если вы не планируете разделять монолит, очень рекомендую внедрить API Gateway. Это даст вам:

* Централизованный контроль над всеми API эндпоинтами
* Принудительное документирование контрактов
* Простое подключение мониторинга и метрик
* Полную трассировку запросов через OpenTelemetry

#архитектура #микросервисы #монолит #паттерны #разработка
  • 👍 4
  • ❤ 1
Post #284 589
В начале недели прям залп новинок для тех, кто работает с информацией:

OpenAI представили Deep Research - агента, который сам проводит исследования. Например, просишь его проанализировать IT-тренды за 5 лет, и он самостоятельно изучает интернет, формируя серьезный аналитический отчет со всеми ссылками на источники. Работает от 5 до 30 минут, доступно для Pro-аккаунтов.

Появился Typeset.io - специализированный AI для работы с научными статьями. Его фишка в том, что он опирается только на проверенные научные источники.

Ну и OpenDeepResearcher - еще один инструмент для автоматизации исследовательской работы. Заточен под курсовые и дипломные. Собирает инфу из интернета, не останавливается пока не соберет всё необходимое, и предоставляет готовые ссылки на источники.

#AI #OpenAI #DeepResearch #исследования #технологии #наука
  • 🔥 5
  • 👍 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →