Pull to refresh

Technotext

Одна за всех? Как я организовала более 100+ встреч QA-комьюнити и не выгорела

Level of difficultyEasy
Reading time6 min
Reach and readers7.4K

Всем привет! Меня зовут Юля Трусова и я тестировщик. А ещё я лидирую под ключ одно из самых крупных и древних комьюнити в Авито — QA Community. В этой статье я расскажу про свой подход к теме, поделюсь важными вехами в становлении комьюнити и с удовольствием почитаю про ваш опыт в комментариях.

Читать далее

DIY проект: cистемная информация на LCD дисплее GC9A01 (часть 1)

Level of difficultyMedium
Reading time12 min
Reach and readers15K

Всем доброго дня! Я занимаюсь DIY проектами и программированием на Python и C++. В этой статье пойдёт речь о выводе системной информации с ПК на круглый LCD дисплей GC9A01.

Сама идея проекта мне пришла во время разговора с другом Я рассказал ему, что заказал пару LCD дисплеев GC9A01 с Ali Express для своих будущих DIY проектов. Во время разговора он внезапно сказал, что ему-бы пригодился девайс для вывода системной информации с ПК. Я подумал - почему-бы не научиться использовать этот дисплей на подобном проекте?!

Сам проект я буду писать не для нужд друга, а скорее в целях обучения работы с этим дисплеем. Как я понял, что ему нужно что-то более компактное и встраиваемое в корпус ПК. По моему совету он купил компактную плату esp32 с дисплеем и будет писать своё решение сам. Я же собираюсь делать что-то вроде приборной панели и поставлю её за клавиатурой. Это чем-то будет напоминать спидометр автомобиля =)

Читать далее

Будущее ИТ и что в нём делать разработчику

Reading time15 min
Reach and readers21K

Привет, Хабр! Я — Руслан, а это — моя статья написанная в основном по следам моего доклада про будущее ИТ, ИТ-архитектуры и работы айтишников + часть мыслей дооформилась после участия в подкасте (все ссылки в конце).

Если предыдущие мои доклады и статьи были максимально ориентированы на практику — гранулярность микросервисов, каскадное снижение связанности, проектирование отказоустойчивости, покрытие архитектуры тестами — то здесь я сознательно отхожу в сторону и попробую пофантазировать и порассуждать о дальнем горизонте, а также построить стратегию и дать советы всем нам, что делать в наступающей эпохе ИИ.

Почему это важно? На конференциях мы постоянно обсуждаем ответы: как сделать микросервис, как спроектировать отказоустойчивость, какой брокер выбрать. Но мы почти не говорим о нерешённых и, тем более, о непоставленных задачах. Мы не обсуждаем будущее. Мы не обсуждаем вопросы, которые ещё не заданы. А чтобы задача поставилась, нужно как минимум о ней задуматься.

Но закончим с лирикой. Говоря о будущем ИТ, начнём, пожалуй, с ИТ-архитектуры — как дисциплины, описывающей базовые построения любого ПО.

Читать далее

Миссия выполнима: как мы добились актуальности двух тысяч кешей

Level of difficultyMedium
Reading time22 min
Reach and readers11K

Привет! Меня зовут Влад, и я разрабатываю сердце витрины Ozon — сервис product-facade. Пару лет назад мы уже делились нашим опытом в этой статье, но с тех пор многое изменилось: выросли нагрузки, появились новые фичи и оптимизации, система стала сложнее и надёжнее.

Прежде чем перейти непосредственно к актуальности кешей, давайте разберёмся, почему это так важно. Представьте: вы добавляете товар в корзину, но что-то пошло не так, и покупку совершить не удаётся — склад больше не возит в ваш ПВЗ. Даже 0.1% таких ошибок — это тысячи недовольных пользователей каждую секунду. А когда что-то массово меняется, разработчики вынуждены расследовать инцидент, чтобы понять, что проблема была всего лишь в устаревших кешах.

Читать далее

История создания Tarantool DB: реальные проблемы, удачные решения и превращение проекта в продукт

Reading time9 min
Reach and readers12K

Два года назад все началось с первого коммита и туманного понимания, что мы вообще хотим сделать. Сегодня — два мажорных релиза, собственный модуль миграций, документация, тренинги и пользователи, которые безболезненно перешли на новую версию по нашим инструкциям. Но путь от «кучи кода для внутреннего использования» до полноценной коробочной In-memory-базы оказался совсем не прямым. 

Меня зовут Александр Кленов, я тимлид разработки Tarantool DB в команде Tarantool. Я расскажу историю о том, как мы брали зрелый, но очень гибкий Tarantool Enterprise и превращали его в решение, которое можно установить из коробки.

Читать далее

Как мне надоело восстанавливать десятки вкладок и я сделал Tab Saver: бэкап табов в Google-аккаунт без регистраций и смс

Level of difficultyMedium
Reading time3 min
Reach and readers13K

У меня постоянно открыто несколько окон Хрома с множеством табов. В одном - десяток табов с медленными запросами в наш BI-сервис, которые я "вот-вот посмотрю". Во втором - исследование нюансов $lookup и $unwind в MongoDB. В третьем, где больше всего вкладок, - санкт-петербургские правила зачисления в школу, потому что жизнь.

Расширения для сохранения табов науке давно известны, но в отзывах регулярно жалуются на потерю данных - и почему же не сделать свой велосипед, заточенный под бэкап?

У каждого пользователя Chrome уже есть Google-аккаунт, и чаще всего с включённой синхронизацией. Использовал его - и получился Tab Saver с бэкапом вкладок без регистраций и смс!

Использовать синхронизацию в гуглоэккаунт просто и, опять-таки, - без регистраций и смс. Пробуйте!

Читать далее

Интеграция с маркетплейсами Wildberries и Ozon: коды, лимиты и одна Елена

Reading time6 min
Reach and readers17K

Привет, Хабр! Меня зовут Юля Анпилогова, я менеджер команды индивидуальных интеграций CDEK. Мы стали первыми, кто не только запустил интеграцию с Wildberries по схеме DBS (delivery by seller — доставка силами продавца), но и создал единую точку подключения к маркетплейсам WB и Ozon. Этот опыт оказался похож на квест. Курьеры, не привыкшие спрашивать код, лимиты запросов API Wildberries и покупательница Елена, заказавшая тестовый ежедневник — всё это оказалось его частью. Сегодня в статье расскажу, как мы прошли этот путь.

Читать далее

Умный дом под давлением

Reading time16 min
Reach and readers22K

Хотите знать, как работает платформа умного дома, обслуживающая десятки и сотни тысяч (а то миллионы!) устройств? А как проводят нагрузочное тестирование таких платформ, когда нужно проверить их поведение при увеличении количества приборов? Ведь это сложно — железок не напасешься! Если я вас заинтриговал, то добро пожаловать в статью, я как раз рассказываю о том, как это все делается. :)

Меня зовут Иван Банников, я работаю в VK Tech. Я ведущий разработчик команды Tarantool CDC, одного из продуктов экосистемы Tarantool, но в статье я расскажу про давние времена, про проект, на котором я познакомился с Tarantool, зафанател от него и в итоге пришел потом работать в Tarantool. Поговорим о платформе для интернета вещей, о ее устройстве, о том, какие в ней могут быть слабые места и как мы их выявляли с помощью нагрузочного тестирования, а также о MQTT.

Читать далее

Нагрузочное тестирование с нуля: наши грабли, гонка за токеном и рабочий чек-лист [Сгенерировано]

Level of difficultyMedium
Reading time6 min
Reach and readers5.5K

Привет, хабровчане!

Мы команда «Исходного кода» и уже полгода системно занимаемся нагрузочным тестированием (НТ). Раньше такие проверки были от случая к случаю - оттуда и взяли базу знаний. Сегодня хотим поделиться историей одного показательного фейла, который заставил нас пересмотреть весь подход и прийти к системе, которая показала себя, как работающая. 

Все мы знаем эту боль: фича идеально работает на деве и предпроде, проходит все тесты, а когда под реальной нагрузкой на нее заходят сотни пользователей одновременно - все начинает тормозить, сыпать ошибками или просто падать. Чтобы этого избежать, мы решили, что НТ должно стать обязательным этапом для всех фичевых задач, которые серьезно меняют логику, затрагивают запросы к серверу, кэширование или обработку данных.

Главный толчок был простой и жизненный: уже на стадии рассмотрения сервиса мы понимаем, какая нагрузка на него ляжет, поэтому мы выводили правило: «Сервис должен стабильно держать N запросов в секунду», и мы берем эту планку и начинаем работу.

Читать далее

Глухарь ESPшный — мемуары охотника

Level of difficultyHard
Reading time19 min
Reach and readers31K

> Названием «глухарь» птица обязана известной особенности токующего в брачный период самца утрачивать чуткость и бдительность, чем часто пользуются охотники

Защита программного кода — извечная битва меча и щита. Одни люди стараются создать устойчивые ко взлому программные и аппаратные продукты, другие пытаются эти решения сломать. Но что происходит, когда команда, специализирующаяся на взломе, выпускает на рынок свой продукт? Можно ли в этих обстоятельствах разработать устройство, защиту которого невозможно обойти?

Сегодня мы посмотрим внутрь флеш-картриджа для Nintendo Switch под названием MIG Switch и раскроем тайну его происхождения! Ну и в качестве побочного квеста победим защиту одного из самых современных микроконтроллеров на рынке.

Интересно? Продолжаем!

Творческая переработка MVVM и TCA на примере iOS

Level of difficultyMedium
Reading time22 min
Reach and readers3.2K

Всем привет, меня зовут Дмитрий Лоренц, я iOS-разработчик в IT-компании GRI. Наш основной клиент — Sunlight, для него мы разрабатываем нескольких мобильных приложений по полному циклу и поддерживаем сайт.

В этой статье я расскажу про нашу новую архитектуру для iOS-приложения и поделюсь некоторыми советами, как упростить себе жизнь и сделать код более лаконичным и читаемым.

Читать далее

Проблемы в работе над стилем в AI-видео – и как их решать

Reading time7 min
Reach and readers7.3K

Как сохранить уникальное визуальное решение AI-фильма, когда модель все усредняет? 

В AI-кино стиль берет на себя роль мизансцены. С пространством, необходимым для мизансцены, нейросеть знакома условно, поэтому полноценное авторское решение чаще достигается через стиль. Именно он становится тестом на авторство, где оно либо подтверждается, либо растворяется в усредненной выдаче генератора.

Читать далее

Как расти QA-инженеру: инструменты, которые действительно работают

Level of difficultyEasy
Reading time8 min
Reach and readers22K

Привет! Я Ангелина Архипова, тимлид QA в Авито. Это вторая часть статьи про развитие QA, ранее я разобрала этапы взросления QA-инженера — от охотника за багами до лидера, который формирует культуру качества в команде.

Когда смотришь на эти этапы со стороны, они часто кажутся абстрактными: вроде бы понятно, что должно измениться, но не всегда ясно, как к этому прийти на практике. Какие инструменты действительно помогают расти? На что стоит тратить время, а что можно смело отложить? И как не застрять на одном этапе, даже если формально ты уже «сеньор»?

В этой статье я хочу перейти от теории к практике и разобрать инструменты и подходы, которые помогают QA-инженеру развиваться осознанно. Мы посмотрим, какие из них полезны на разных этапах, как они влияют на мышление и почему сами по себе инструменты ничего не решают — важно то, как и зачем ты их используешь.

Читать далее

Дизайн-системы в 2025 году: 6 актуальных трендов

Level of difficultyEasy
Reading time4 min
Reach and readers15K

Привет! Меня зовут Филипп Соломин, я дизайнер в Авито. Моя команда работает над библиотеками элементов сайта и мобильных приложений, техническими спецификациями компонентов и гайдлайнами по продукту.

Мы стараемся придерживаться трендов в архитектурных принципах построения дизайн-систем и хотим поделиться актуальными решениями, которые улучшили опыт работы с ДС. В этой статье собрали шесть наиболее актуальных (на наш взгляд) трендов.

Читать далее

Не всё деплоем правится: как мы вынесли интерфейс из кода с помощью Server-Driven UI

Level of difficultyMedium
Reading time20 min
Reach and readers11K

Изменения интерфейса мобильного приложения часто упираются не в сложность реализации, а в скорость релизного цикла: даже простые правки проходят через полный конвейер — разработку, рецензирование, сборку и публикацию. При высокой частоте изменений это увеличивает time-to-market, перегружает команду и делает быстрые итерации по интерфейсу практически невозможными.

Меня зовут Михаил Рыбочкин, я бэкенд-разработчик в компании GRI. Участвую в разработке и поддержке платформы для крупного ювелирного ритейлера. Я расскажу, как реализован Server-Driven UI для интернет-торговли с более чем 1000 розничных магазинов; как устроено управление конфигурацией интерфейса через Django Admin и как это позволяет менять интерфейс без релизов приложения; какие у этого подхода есть ограничения и какой инцидент произошёл в эксплуатации. Особенность нашего подхода в том, что SDUI одновременно обслуживает и нативные мобильные приложения, и веб на Vue. Один конфиг, один API, две целевых платформы

Читать далее

Контейнер под капотом, или Как четыре syscall'а изменили подход к эксплуатации ПО

Level of difficultyMedium
Reading time12 min
Reach and readers12K

Привет, Хабр! Меня зовут Олег, я работаю в VK Cloud в команде Key Management Service. Есть у меня такая привычка: когда пользуюсь каким-то инструментом изо дня в день, то рано или поздно хочется залезть внутрь и посмотреть, как оно там устроено. С контейнерами так и вышло: docker run, docker build — всё это прекрасно работает, но что именно происходит, когда мы «запускаем контейнер»?

В этой статье разберём контейнеры не на уровне «вот вам YAML, отправляйте в прод», а чуть глубже — на уровне системных вызовов Linux. По ходу дела напишем свой примитивный контейнер на Go, используя буквально четыре syscall'а, а в конце посмотрим, куда эта история развивалась дальше (сети, файловые системы) и почему виртуальные машины всё ещё живы.

Читать далее

Влияние селекторов CSS на скорость рендеринга web-приложения

Level of difficultyEasy
Reading time6 min
Reach and readers12K

Хотя различия в скорости работы CSS-селекторов хорошо документированы, на практике разработчики часто недооценивают их влияние на производительность. В этой статье мы количественно оценим, как некорректный выбор селекторов замедляет работу приложения, и систематизируем ключевые принципы оптимизации CSS. 

Читать далее

Как я строю адаптивную модель управления отоплением на ESP32

Level of difficultyMedium
Reading time5 min
Reach and readers17K

4 дня логов из Telegram, 29 погодных параметров, куча ложных корреляций — и одна формула в конце. Как я с помощью Claude Opus разобрался, почему котёл работает неэффективно, и что с этим делать.

Читать далее

Как я две недели дебажил React: история одного голосового

Reading time7 min
Reach and readers8.9K

Бывает, что фича готова и её пора передавать в тестирование, но при этом не покидает ощущение, что что-то не так. Однажды внутреннее чутьё меня не обмануло и привело в исходники React.

Меня зовут Денис Кондратьев — я фронтенд-разработчик в Точка Банк. В статье поговорим, как работает приоритетный рендеринг в React, что такое проблема разрыва и разберём реальный кейс на примере корпоративного мессенджера.

Читать далее

DPI, ТСПУ и операторы: архитектура блокировки трафика в России

Level of difficultyMedium
Reading time4 min
Reach and readers26K

Когда смотришь на блокировки трафика со стороны пользователя, картина выглядит противоречиво: один и тот же сервис в разных сетях работает по-разному — где-то не открывается вовсе, где-то нестабилен, а где-то продолжает частично функционировать. При этом известно, что управление ограничениями централизовано. Возникает естественный вопрос: если политика едина, почему результат отличается?

Причина в том, что речь идёт не об одной точке контроля, а о распределённой системе, где итоговое поведение формируется на пересечении трёх слоёв: централизованного управления, DPI/ТСПУ как контура распознавания и сети оператора как среды исполнения. Именно эта многослойность и объясняет наблюдаемую неравномерность.

Что происходит дальше?