Недавни постови
Страница 3 од 6 · 65 постова
Објављено 27. мај
Всем привет! Вчера, пока снова копался в коде сервиса, поймал себя на интересной мысли: я больше не гонюсь за идеальным решением здесь и сейчас. Помню, как в середине карьеры у меня была навязчивая идея, что код обязан быть суперкрасивым, максимально расширяемым и все такое. Не скажу, что сейчас я на это забил, но теперь я взвешиваю: трудозатраты vs. "красота". Если фича без всяких архитектурных изысков занимает условный день, а с ними — два-три, то я все чаще выбираю первый вариант. Почему? Потому что нереально предугадать все, особенно в продукте, который постоянно живет и меняется. И, как правило, в начале проекта гораздо выгоднее рефакторить позже, чем сидеть и проектировать сразу. Признаюсь, наблюдение любопытное. Сначала думал, что я просто «скатился». А потом дошло: на самом деле это ускоряет релиз новых фичей. Само собой, я по-прежнему топлю за "чистый" код и всем советую почитать об этом. Начните с дядяшки Боба 😉 Что думаете? Как вы работаете над кодом?
Објављено 18. мај
Всем привет! Сегодня хочется поговорить про подход Infrastructure as Code. Хоть я и не DevOps и не занимаюсь инфраструктурой на постоянной основе, но не раз сталкивался с этим и сам поднимал инфраструктуру для проектов — как на bare metal, так и в облаках и Kubernetes. Часто даже при настройке небольшого набора нод одной из самых сложных вещей становится именно конфигурация. Помню, как в школе развлекался с несколькими Raspberry Pi. Тогда, чтобы настроить каждую «малинку», приходилось вручную повторять одни и те же действия: 1️⃣ Установить ОС 2️⃣ Подключиться по SSH 3️⃣ Выполнить несколько команд для настройки И так раза три... А что делать, если нужно уже не 3, а хотя бы 10 нод? Тут на помощь приходят инструменты, позволяющие описывать инфраструктуру и окружение в виде конфигурационных файлов — чаще всего это YAML. Например, для облачных решений сейчас активно используется Terraform. Он позволяет, используя API облачного провайдера, создавать и настраивать различные ресурсы: виртуальные машины, сети, DNS и т. д. Я чаще всего использую Terraform именно для создания инфраструктуры. Например, Terraform-провайдер для Яндекс Облака позволяет создать кластер Kubernetes и развернуть в нём приложения из маркетплейса ЯОблака. Когда виртуалки уже готовы, иногда в работу включается Ansible — инструмент, позволяющий устанавливать нужные пакеты, настраивать конфиги и запускать приложения. Например, во времена университета, когда я поднимал кластер Kubernetes на bare metal, я использовал Kubespray — рецепт для Ansible, позволяющий автоматизировать настройку Kubernetes. А потом, когда нужно было выдать учётки коллегам, я не настраивал каждую машину вручную — просто написал простой плейбук, который создавал пользователей и настраивал их окружение. А вы сталкивались с подходом Infrastructure as Code? Какими инструментами пользуетесь?
Објављено 14. мај
Всем привет! Продолжая тему тестирования, хочу сегодня затронуть подход к разработке TDD — Test-Driven Development. Это подход, при котором сначала пишутся тесты, а уже потом реализуется логика. Он позволяет поэтапно усложнять реализацию и итеративно двигаться к готовой фиче. Так всё выглядит на бумаге, но на практике строго следовать TDD бывает сложно. Поэтому я для себя нашёл золотую середину: сразу писать e2e- или интеграционные тесты, а юнит-тесты добавлять уже после реализации. Такой подход помогает не закапываться в преждевременные улучшения кода и превращает разработку в игру — "покрась тесты в зелёненькое" 😂 Кроме того, в эпоху AI-ассистентов и AI-first IDE такой подход помогает LLM лучше понимать, что от неё хотят, и генерировать код заметно качественнее!
Објављено 13. мај
Всем привет! Хочу поделиться классными фотками с майских праздников — мы провели их в деревне! Для меня эта поездка стала своего рода ретритом: деревня, никакого интернета, свежий воздух, никаких дел — красота! А как вы провели майские? Делитесь фотками в комментариях 👇 P.S. Ура, пост не только про IT! 😂
Објављено 7. мај
🔥 Всем привет! Сегодня поговорим про E2E-тесты и почему для меня это самые нелюбимые тесты 🤯 🧪 Что такое E2E? E2E — это тесты, которые проверяют всю цепочку работы системы, как будто это делает реальный пользователь. Даже если у нас 100% покрытие юнит-тестами — без E2E тяжело выпускать фичи с уверенностью. 🛠️ Я говорю про E2E, которые запускаются в CI в отдельном окружении. 🚧 В чём проблема? E2E-тесты проверяют весь сценарий: - запросы в базу, - вызовы смежных сервисов, - реальное поведение системы. 📦 С базой — всё ок, можно поднять тестовые миграции. 😵💫 А вот со смежными сервисами — начинаются проблемы, особенно если они: - многочисленные, - связаны между собой 🛤️ Подходы ✅ Вариант 1: Поднять все сервисы Плюсы: - полное соответствие прод-окружению. Минусы: 💸 дорого по ресурсам; 🧩 сложно отлаживать: непонятно, где именно упало; 🐌 долго. 🧪 Вариант 2: Мокать вызовы Плюсы: - быстрый запуск; - понятно, где баг; - легко тестировать пограничные случаи. Минусы: 🤖 моки быстро устаревают; ⚙️ сложные моки (например, с логикой по входным данным). Мой выбор Я чаще выбираю второй подход — он стабильнее и проще в CI. Использую 🔧Mockoon — можно: - настроить моки в UI, - поднять Docker-контейнер с CLI версией, - поднимать рядом с тестами и делать запросы по HTTP. 😩 Почему я не люблю E2E? Потому что, чтобы протестировать одну фичу, иногда приходится: - мокать десятки ответов; - тратить на это больше времени, чем на саму разработку 😬 💬 А как вы подходите к E2E? Поделитесь в комментах — всегда интересно посмотреть на другие подходы 👇
Објављено 6. мај
Всем привет! Сегодня наткнулся на репозиторий с промптами от популярных AI-инструментов. Было забавно посмотреть, какие запросы используют новомодные IDE для генерации кода. Я тут задумался — в каком же интересном мире мы живём: сейчас уникальным торговым предложением может стать не технология или ресурс, а просто текстовое сообщение, которое мы отправляем LLM. Честно говоря, я в восторге от этой концепции. Мы стремительно приближаемся к моменту, когда от идеи до результата нас отделяет только хорошо сформулированное ТЗ и пара минут генерации. И, знаете, самое интересное — я уже настолько привык к разработке с AI-ассистентом, что иногда мне реально лень писать даже несколько строк бойлерплейта руками 😂 А как вы относитесь к AI-инструментам в разработке? Используете ли их в повседневной работе?
Објављено 5. мај
Друзья, очень хочу попробовать себя в роли спикера и выступить оффлайн с докладом в Москве. 🔍 Темы: карьера в IT, backend разработка или подходы к разработке 📍Ищу площадки или сообщества, которые проводят митапы и другие события, где можно выступить. 👥 Может, у вас есть знакомые, кто организует такие штуки? Или просто знаете, куда стоит постучаться? Буду очень благодарен за наводки
Објављено 5. мај
Всем привет! На днях слушал подкаст с Сергеем Кузнецовым про относительно новый язык программирования — Crystal. Он сочетает в себе выразительность Ruby, но при этом является компилируемым Сергей не раз подчеркивал, что выразительность и лаконичность — важнейшие качества хорошего ЯП. За свою карьеру я успел поработать с разными языками: 👉 C / C++ 👉 PHP 👉 JavaScript 👉 Python 👉 Go (На самом деле — список больше, но здесь только те, с которыми решал реальные рабочие задачи.) Сейчас я в основном пишу на Go — и у меня с ним противоречивые чувства. ✅ Нравится: — Простота — Система типов — Поддержка многопоточности ❌ Не нравится: — Много бойлерплейта — Размытая бизнес-логика — Низкая выразительность В плане выразительности и лаконичности для меня пока нет ничего лучше Python. Да, у него есть особенности, но это всё ещё мой любимый ЯП для бизнес-задач. А как вы считаете, насколько важна выразительность языка программирования?
Објављено 17. апр
Из ML в разработку. Почему? Подкаст «Под Капотом» с Константином Носоревым Мы приглашаем в подкаст экспертов из различных областей, чтобы понять, как работают сложные системы изнутри. В новом выпуске подкаста поговорили с Костей Носоревым, senior backend-разработчиком Yandex Pay и спикером курса «Деплой DL-сервисов». Обсудили, почему Костя решил перейти в высоконагруженный backend из машинного обучения, почему исследовательский МЛ подходит далеко не всем и как общение с близкими людьми помогает принимать верные карьерные решения. Смотрите выпуск по ссылке: https://youtu.be/uYiSMOR0AB0?si=qnMTRP8zOcTi5wlp Новый поток курса «Деплой DL-сервисов» с участием Кости стартует в июле. Подробнее на нашем сайте!
Објављено 17. апр
Друзья, у меня прекрасная новость! Вышел наш совместный с Deepschool подкаст! Оставляйте свои вопросы в комментариях с большим удовольствием отвечу на них!
Објављено 15. апр
Всем привет! Продолжаю тему трассировки — написал статью на Habr про механизм propagation в OpenTelemetry. Если интересуетесь observability, загляните, будет интересно 🙂 Получился интересный формат - коротко и по делу! Буду рад вашим комментариям, лайкам и репостам друзьям! 👉https://habr.com/ru/articles/901156/
Објављено 12. апр
У меня отличные новости! Подкаст для DeepSchool уже почти готов и скоро выйдет! А пока хочется вспомнить университет и поделиться с вами выпуском подкаста #мысмехмата, где я был в роли гостя. Этому подкасту уже 4 года, и было здорово освежить в памяти студенческие годы и вспомнить, каким я был тогда. Рекомендую к просмотру: https://youtu.be/BLGQTJsK4GM?si=pcyxA9k_f1eLyKjV
Hashtags