Как стать автором
Обновить
504.7
OTUS
Развиваем технологии, обучая их создателей
Сначала показывать

Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 2

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров317

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

Читать далее

Коротко о том, как внедрить код-ревью, которое работает (а не бюрократию)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров654

Привет, Хабр!

Если у вас в команде код-ревью — это унылое ожидание и пассивно-агрессивные комментарии уровня «не по канону», значит, что-то пошло не так. А если ревью не просто тормозит, но ещё и убивает мотивацию — то вы откладываете техдолг не только в коде, но и в культуре.

Читать далее

Как стать кем угодно: DIY маска с изменяющимися проекциями

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров920

Подробный гайд по созданию маски с проекциями, которая использует Raspberry Pi и мини-проектор для отображения изображений на лице. Мы пройдем все этапы — от 3D-печати деталей до настройки системы для воспроизведения видео, включая пайку и работу с электроникой. Этот проект подойдет для разработчиков, заинтересованных в создании встраиваемых систем и экспериментировании с носимой техникой.

Читать далее

Как перестать бояться кодировок в Java — лайфхак для новичков

Время на прочтение5 мин
Количество просмотров2.2K

Когда вы работаете с текстовыми файлами в Java, особенно содержащими кириллические символы, то важно правильно управлять кодировкой. Ошибки в кодировке приводят к искажению текста, появлению квадратных символов или нечитаемых строк. В этой статье мы разберём примеры чтения и записи файлов с кириллицей, используя базовые классы ввода и вывода в Java.

Читать далее

Как использовать topic exchange в RabbitMQ для роутинга по шаблонам

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров681

Привет, Хабр!

Сегодня разберём один из самых гибких инструментов в RabbitMQ — topic exchange. Именно он позволяет не просто отправить сообщение «куда‑то», а превратить очередь в маршрутизатор уровня BGP, но только внутри твоей системы.

Читать далее

Как Playwright MCP исследует ваш сайт и сам пишет тесты

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.1K

Что, если бы тесты могли писаться сами, просто используя ваше приложение как реальный пользователь?

В этой статье мы рассмотрим, как Playwright MCP (Model Context Protocol) в режиме агента может автономно исследовать приложение, обнаруживать ключевые функции и генерировать исполнимые тесты — без необходимости в ручном скриптинге.

Мы разберём процесс генерации и запуска теста для приложения Movies, не обойдя без внимания то, как MCP выявляет крайние случаи, строит покрытие и даже находит баги, которые вы могли пропустить.

Читать далее

Ликбез по UseCase’ам Android: от базовых реализаций до мультипровайдерных и многомодульных систем — Часть 1

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров1.1K

Чистая архитектура — не просто модный термин, а способ держать код в узде по мере роста Android-приложения. В этой статье — подробный разбор того, как выстроить работу с UseCase’ами: от базовой интеграции в ViewModel до сложных кейсов с несколькими провайдерами и платежными системами. Разберёмся, как применять принципы SOLID на практике, не скатываясь в оверинжиниринг — и при этом не жертвовать гибкостью архитектуры.

Читать далее

Эмпатия: мощный ресурс руководителя в IT

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3K

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

Читать далее

RecBole — «комбайн» на PyTorch для любых рекомендаций

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.1K

Привет, Хабр!

Сегодня разберём RecBole — универсальный фреймворк на PyTorch, который отвечает на три насущных вопроса любого ML-инженера рекомендаций:

Как быстро обкатать десятки алгоритмов (от классического MF до SASRec и KGAT) на собственном датасете — без сотни скриптов?
Как хранить все настройки в одном YAML, а не в трёх сотнях аргументов CLI?
Как получить честное сравнение метрик и сразу вынести лучший чекпоинт в прод?

Рассмотрим подробнее под катом.

Читать далее

Кластерные A/B-тесты: как победить эффект соседа

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров535

Привет, Хабр!

Сегодня мы рассмотрим, как спасаться от «эффекта соседа», рандомизируя не пользователей, а их кластеры в A/B тестах.

У классического AB-теста есть аксиома SUTVA: мол, результат конкретного юзера зависит только от его собственной ветки «treatment / control». Реальность улыбается и кидает в лицо соцсетью, где лайк друга поднимает и твою вовлечённость, курьером, который обгоняет коллег и заражает их скоростью, и cпасибками «приведи друга — получи бонус». Итог — наблюдения больше не независимы.

Внутрикамерный жаргон это называет network interference. Чем плотнее граф связей, тем сильнее лечение «просачивается» за контрольные границы.

Читать далее

Короткий обзор Pest — неплохой PHP-фреймворк для тестов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.2K

Привет, Хабр!

Сегодня рассмотрим Pest — минималистичный, но выразительный тестовый фреймворк для PHP. Он построен поверх PHPUnit и переосмысляет подход к написанию тестов: делает их лаконичнее, читаемее и проще в поддержке.

Pest — не альтернатива PHPUnit, а надстройка над ним. Он предоставляет декларативный DSL, сохраняя все фичи PHPUnit. Это позволяет использовать существующие PHPUnit-фичи, включая assertions, мок-объекты, аннотации, и при этом писать тесты в более компактной форме.

Читать далее

Коротко про TTL в NoSQL-хранилищах: Redis, MongoDB и Cassandra

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.9K

Привет, Хабр!

В этой статье мы коротко рассмотрим, как работает TTL в трёх популярных NoSQL-хранилищах — Redis, MongoDB и Cassandra.

Читать далее

Меньше — лучше: как Polaris-4B обошёл Qwen3-32B

Время на прочтение8 мин
Количество просмотров4.5K

Привет, Хабр!

В июне 2025 года команда из Гонконгского университета выложила открытые модели Polaris-4B‑Preview и Polaris-7B‑Preview, обученные с нуля на reasoning‑задачах с использованием Reinforcement Learning. Эти модели не просто догоняют топовые коммерческие аналоги вроде Claude‑Opus и Grok-3-Beta — они их обгоняют. Причём на архитектуре всего в 4 миллиарда параметров.

Все это результат продуманного инженерного подхода. В этой статье коротко рассмотрим, как авторам Polaris это удалось.

Читать далее

Vue Teleport: как работает

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.7K

Привет, Хабр!

Сегодня разберём один из недооценённых, но крайне полезных инструментов во Vue 3 — <Teleport>. Это встроенный механизм, который позволяет рендерить часть шаблона вне текущего DOM‑контекста. Он нужен при реализации модалок, тултипов и других компонентов, которые должны «выпрыгивать» из дерева компонентов, но при этом сохранять реактивность, фокус и доступность. Без этих костылей, z-index: 9999 и appendChild.

Читать далее

Ближайшие события

Как не убить инициативу в команде: ошибки тимлидов, которые всё делают сами

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.9K

Привет, Хабр!

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

Читать далее

Кросс-валидация на временных рядах: как не перемешать время

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.7K

Привет, Хабр!

Сегодня рассмотрим то, что чаще всего ломает даже круто выглядящие модели при работе с временными рядами — неправильная кросс‑валидация. Разберем, почему KFold тут не работает, как легко словить утечку будущего, какие сплиттеры реально честны по отношению ко времени, как валидировать фичи с лагами и агрегатами.

Читать далее

Как работает Injector в Angular и что такое @Optional, @SkipSelf, @Host

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров984

Привет, Хабр!

Сегодня мы рассмотрим, как работает Injector в Angular, зачем нужны декораторы @Optional, @SkipSelf, @Host, и чем отличаются провайдеры на уровне root, модуля и компонента.

Читать далее

Как работает fillfactor и как его настраивать вручную в PostgreSQL

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.4K

Привет, Хабр!

Сегодня рассмотрим, как работает fillfactor в PostgreSQL — тот самый параметр, который никто не трогает, пока таблицы не начинают раздуваться как на дрожжах. Разберём, зачем он нужен, что происходит при UPDATE, когда стоит менять его вручную и как не наломать дров.

Читать далее

10 ошибок бизнес-аналитика

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров4.9K

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

Хотя роль бизнес‑аналитика имеет решающее значение в любой организации, она не лишена подводных камней. Даже самые опытные специалисты могут допускать ошибки, которые снижают их эффективность в этой быстро развивающейся области. Независимо от того, новичок вы в этой области или имеете за плечами многолетний опыт, важно выявить и исправить эти распространенные ошибки. Итак, приготовьтесь к тому, что мы рассмотрим 10 главных ошибок бизнес‑аналитиков, которые могут помешать вам достичь успеха! От игнорирования ключевых задач до чрезмерной зависимости от документации — мы разберем каждую ошибку и предложим практические решения, которые помогут вам избежать ее, как опытный профессионал. Давайте погрузимся в работу!

Читать далее

Как вырастить QA-команду, которая не боится будущего

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров522

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

Читать далее
1
23 ...

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS