
В этой части мы обсудим многомодульный подход к реализации нашего примера с оплатой. А в заключительном разделе мы поговорим о том, как поддерживать сбалансированную Чистую архитектуру, избегая оверинжиниринга.
В этой части мы обсудим многомодульный подход к реализации нашего примера с оплатой. А в заключительном разделе мы поговорим о том, как поддерживать сбалансированную Чистую архитектуру, избегая оверинжиниринга.
Привет, Хабр!
Если у вас в команде код-ревью — это унылое ожидание и пассивно-агрессивные комментарии уровня «не по канону», значит, что-то пошло не так. А если ревью не просто тормозит, но ещё и убивает мотивацию — то вы откладываете техдолг не только в коде, но и в культуре.
Подробный гайд по созданию маски с проекциями, которая использует Raspberry Pi и мини-проектор для отображения изображений на лице. Мы пройдем все этапы — от 3D-печати деталей до настройки системы для воспроизведения видео, включая пайку и работу с электроникой. Этот проект подойдет для разработчиков, заинтересованных в создании встраиваемых систем и экспериментировании с носимой техникой.
Когда вы работаете с текстовыми файлами в Java, особенно содержащими кириллические символы, то важно правильно управлять кодировкой. Ошибки в кодировке приводят к искажению текста, появлению квадратных символов или нечитаемых строк. В этой статье мы разберём примеры чтения и записи файлов с кириллицей, используя базовые классы ввода и вывода в Java.
Привет, Хабр!
Сегодня разберём один из самых гибких инструментов в RabbitMQ — topic exchange
. Именно он позволяет не просто отправить сообщение «куда‑то», а превратить очередь в маршрутизатор уровня BGP, но только внутри твоей системы.
Что, если бы тесты могли писаться сами, просто используя ваше приложение как реальный пользователь?
В этой статье мы рассмотрим, как Playwright MCP (Model Context Protocol) в режиме агента может автономно исследовать приложение, обнаруживать ключевые функции и генерировать исполнимые тесты — без необходимости в ручном скриптинге.
Мы разберём процесс генерации и запуска теста для приложения Movies, не обойдя без внимания то, как MCP выявляет крайние случаи, строит покрытие и даже находит баги, которые вы могли пропустить.
Чистая архитектура — не просто модный термин, а способ держать код в узде по мере роста Android-приложения. В этой статье — подробный разбор того, как выстроить работу с UseCase’ами: от базовой интеграции в ViewModel до сложных кейсов с несколькими провайдерами и платежными системами. Разберёмся, как применять принципы SOLID на практике, не скатываясь в оверинжиниринг — и при этом не жертвовать гибкостью архитектуры.
Управление IT-командой — это не только решение технических задач и координация рабочих процессов. Часто реальная боль заключается в том, что команда не чувствует вовлеченности, мотивация уходит, а конфликты остаются без решения. К тому же, удержание талантов становится всё более сложной задачей на фоне конкуренции. Но что, если ключом к решению этих проблем окажется эмпатия? В статье мы разберем, почему этот навык стал необходимым для успешного ИТ-лидера, и как он может стать вашим главным инструментом для улучшения атмосферы в команде, повышения её эффективности и минимизации конфликтов.
Привет, Хабр!
Сегодня разберём RecBole — универсальный фреймворк на PyTorch, который отвечает на три насущных вопроса любого ML-инженера рекомендаций:
Как быстро обкатать десятки алгоритмов (от классического MF до SASRec и KGAT) на собственном датасете — без сотни скриптов?
Как хранить все настройки в одном YAML, а не в трёх сотнях аргументов CLI?
Как получить честное сравнение метрик и сразу вынести лучший чекпоинт в прод?
Рассмотрим подробнее под катом.
Привет, Хабр!
Сегодня мы рассмотрим, как спасаться от «эффекта соседа», рандомизируя не пользователей, а их кластеры в A/B тестах.
У классического AB-теста есть аксиома SUTVA: мол, результат конкретного юзера зависит только от его собственной ветки «treatment / control». Реальность улыбается и кидает в лицо соцсетью, где лайк друга поднимает и твою вовлечённость, курьером, который обгоняет коллег и заражает их скоростью, и cпасибками «приведи друга — получи бонус». Итог — наблюдения больше не независимы.
Внутрикамерный жаргон это называет network interference. Чем плотнее граф связей, тем сильнее лечение «просачивается» за контрольные границы.
Привет, Хабр!
Сегодня рассмотрим Pest — минималистичный, но выразительный тестовый фреймворк для PHP. Он построен поверх PHPUnit и переосмысляет подход к написанию тестов: делает их лаконичнее, читаемее и проще в поддержке.
Pest — не альтернатива PHPUnit, а надстройка над ним. Он предоставляет декларативный DSL, сохраняя все фичи PHPUnit. Это позволяет использовать существующие PHPUnit-фичи, включая assertions, мок-объекты, аннотации, и при этом писать тесты в более компактной форме.
Привет, Хабр!
В этой статье мы коротко рассмотрим, как работает TTL в трёх популярных NoSQL-хранилищах — Redis, MongoDB и Cassandra.
Привет, Хабр!
В июне 2025 года команда из Гонконгского университета выложила открытые модели Polaris-4B‑Preview и Polaris-7B‑Preview, обученные с нуля на reasoning‑задачах с использованием Reinforcement Learning. Эти модели не просто догоняют топовые коммерческие аналоги вроде Claude‑Opus и Grok-3-Beta — они их обгоняют. Причём на архитектуре всего в 4 миллиарда параметров.
Все это результат продуманного инженерного подхода. В этой статье коротко рассмотрим, как авторам Polaris это удалось.
Привет, Хабр!
Сегодня разберём один из недооценённых, но крайне полезных инструментов во Vue 3 — <Teleport>
. Это встроенный механизм, который позволяет рендерить часть шаблона вне текущего DOM‑контекста. Он нужен при реализации модалок, тултипов и других компонентов, которые должны «выпрыгивать» из дерева компонентов, но при этом сохранять реактивность, фокус и доступность. Без этих костылей, z-index: 9999
и appendChild
.
Привет, Хабр!
В этой статье рассмотрим, как тимлиды сами, того не осознавая, убивают инициативу в команде. Делают всё сами, душат рост, превращают разработчиков в «ждущих» исполнителей — и потом удивляются, почему никто не предлагает решений.
Привет, Хабр!
Сегодня рассмотрим то, что чаще всего ломает даже круто выглядящие модели при работе с временными рядами — неправильная кросс‑валидация. Разберем, почему KFold
тут не работает, как легко словить утечку будущего, какие сплиттеры реально честны по отношению ко времени, как валидировать фичи с лагами и агрегатами.
Привет, Хабр!
Сегодня мы рассмотрим, как работает Injector
в Angular, зачем нужны декораторы @Optional
, @SkipSelf
, @Host
, и чем отличаются провайдеры на уровне root
, модуля и компонента.
Привет, Хабр!
Сегодня рассмотрим, как работает fillfactor
в PostgreSQL — тот самый параметр, который никто не трогает, пока таблицы не начинают раздуваться как на дрожжах. Разберём, зачем он нужен, что происходит при UPDATE
, когда стоит менять его вручную и как не наломать дров.
Продолжая тему косяков, с которыми могут столкнуться представители различных профессий, давайте поговорим о тех проблемах, который бывают у бизнес-аналитиков.
Хотя роль бизнес‑аналитика имеет решающее значение в любой организации, она не лишена подводных камней. Даже самые опытные специалисты могут допускать ошибки, которые снижают их эффективность в этой быстро развивающейся области. Независимо от того, новичок вы в этой области или имеете за плечами многолетний опыт, важно выявить и исправить эти распространенные ошибки. Итак, приготовьтесь к тому, что мы рассмотрим 10 главных ошибок бизнес‑аналитиков, которые могут помешать вам достичь успеха! От игнорирования ключевых задач до чрезмерной зависимости от документации — мы разберем каждую ошибку и предложим практические решения, которые помогут вам избежать ее, как опытный профессионал. Давайте погрузимся в работу!
В мире QA, как и в любом другом процессе разработки, всегда важно не только следить за текущими результатами, но и стратегически развивать команду. Почему одни QA-команды становятся основой успешных продуктов, а другие остаются на месте, так и не достигнув желаемого результата? В этой статье мы разберёмся, как правильно формировать команду, какие навыки и роли должны быть в ней, а также как выстроить систему, которая будет способствовать не только качественному тестированию, но и постоянному росту специалистов.