Обновить
16K+
4,88
Оценка работодателя
118,38
Рейтинг
67 995
Подписчики
Сначала показывать

Формы в Angular: от Reactive Forms к Signal Forms

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.5K

Привет! Меня зовут Егор Молчанов, я разработчик в компании Домклик.

В прошлой статье мы познакомились с новыми функциями input(), output() и model(), которые закладывают фундамент для будущего Angular без Zone.js. Сегодня мы поговорим о том, как эти изменения дошли до самой, пожалуй, наболевшей темы в любом приложении — работы с формами.

В Angular v21 появился новый, экспериментальный способ управления формами — Signal Forms. Он не отменяет старые добрые Reactive Forms, но предлагает совершенно иной подход, основанный на сигналах. Давайте разберёмся, как работали формы раньше, как они будут работать с Signal Forms, и что это нам даёт.

Читать далее

Микросервис потоковой конвертации видео (Python, FFmpeg)

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.9K

Недавно перед нами встала задача быстро реализовать микросервис для конвертации видео. Стандартным решением для таких целей является FFmpeg, который умеет читать файлы чанками (запросы HTTP Range) с URL и выводить результат в stdout. Поэтому я решил попробовать подход с потоковой конвертацией.

Важно уточнить, что под «потоковой обработкой» здесь подразумевается передача данных в виде последовательности чанков (Chunked Streaming), а не классический Continuous Streaming, как в случае с live-видео.

Читать далее

Ловушки удобного синтаксиса языка Kotlin. Как миграция на Kotlin 2.2+ может сломать ваш проект и как его починить

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.2K

Это история о граблях, на которые вы можете наступить при миграции на Kotlin 2.2+, а также о развитии и закулисье удобства языка Kotlin.

Когда Kotlin только появился, он уже обладал всем привычным теперь синтаксическим сахаром в виде неабстрактных методов интерфейсов, параметров по умолчанию у функций. Тогда это была версия 1.0.0, совместимая с Java 6. Java 6 и 7 не умела создавать неабстрактные методы интерфейсов, эта возможность появилась только в Java 8.

Чтобы иметь возможность создавать такие методы, Kotlin генерировал специальный класс DefaultImpls, в котором располагались статичные методы, выглядящие в Kotlin как обычные методы. Далее язык пошёл по долгому пути миграции на Java/JVM default method, появившиеся в Java 8.

Читать далее

«Кем вы видите себя через пять лет?», или Руководство по ответам на популярные вопросы

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8.7K

Большинство кандидатов теряют шанс на оффер не из-за опыта и просадки по хардам, а из-за того, как отвечают на простые вопросы.

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

Я разобрал топовые вопросы, которые встречаются почти на каждом собеседовании, и показал, как отвечать так, чтобы сразу захватить внимание HR или менеджера; какие формулировки лучше использовать и почему; проверенные ответы, которые можно брать за основу.

Читать далее

Project Valhalla: революция в памяти Java

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.4K

Java-разработчики годами жили по принципу «Everything is an object». И всё бы хорошо, если бы за это нам не приходилось платить «налогом на объект»: каждый раз, когда вы создаёте простой класс из двух полей int, JVM бережно дописывает к нему тяжёлый заголовок, упаковывает в ссылку и разбрасывает по куче, заставляя процессор страдать от постоянных промахов кеша.

Мы привыкли к этому компромиссу. Мы научились использовать примитивные коллекции и костыли, чтобы выжать производительность там, где объектная модель Java начинает буксовать. Project Valhalla призван изменить сами правила игры.

Читать далее

Улучшаем Backend-разработку в Cline на примерах

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

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

Какие задачи идеально подходят для оптимизации с помощью ИИ, а какие не стоит отдавать агенту.

Читать далее

Идеальных систем не существует. Монолит, микросервисы и цена распределённости. CAP, ACID, BASE

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.8K

Эта статья не про «правильную» архитектуру. Здесь я постарался ответить на вопросы «почему микросервисы дороже, какие компромиссы неизбежны и по каким критериям выбирать архитектуру?»

Поговорим про высоконагруженные распределённые системы и почему монолиты — это не плохо. Также поговорим о необходимости рационального использования ресурсов и выборе типа архитектуры.

Погрузиться

Погружение в разработку плагинов для Android Studio (часть 2)

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

Всем привет! Меня зовут Алексей, я техлид Android-направления в компании Домклик.

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

Читать далее

Как попарное тестирование спасло нас ещё до первой строчки кода

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

Обычно о том, что тестов стало слишком много, задумываются уже после нескольких релизов, когда регресс превращается в мучение. У меня всё произошло наоборот.

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

Наш продукт позволяет клиенту подать заявку на нецелевой кредит под залог недвижимости.

Читать далее

Как написать линтер для SQL-миграций

Уровень сложностиСредний
Время на прочтение35 мин
Охват и читатели8.7K

Привет! Меня зовут Алексей Сидоров, я Python-разработчик в команде краткосрочной аренды в Домклик. В этой статье разберём, как и зачем проверять код миграций схемы БД и как написать свой линтер.

Читать далее

От охранника до тимлида: история одного админа

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели14K

Приветствую всех. Очень давно хотел написать что-то подобное и поделиться своей историей роста и развития, и заодно посмотреть, что из этого выйдет. Это увлекательное путешествие заняло у меня около 15 лет. Расскажу, как всё начиналось, что меня вдохновляло и продолжает вдохновлять, с чем приходилось мириться ради успеха, какие трудности я преодолел и что из этого вышло. Если вам интересно, прошу под кат.

Читать далее

Эмоциональность в дизайне внутреннего продукта. Нужна ли она, когда сотруднику просто надо «сделать работу»

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

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

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

Читать далее

Путевые заметки о знакомстве со Spring Data R2DBC

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.1K

Привет, Хабр! Меня зовут Каненков Александр, я backend-разработчик в Домклик. Не так давно я резко и с головой погрузился в мир реактивного программирования и очень заинтересовался этой темой. Хочу поделиться кратким введением в Spring Data R2DBC, зачем это нужно, как начать использовать и какие преимущества даёт. Мы разработаем небольшое приложение, добавим flyway и напишем пару тестов.

Читать далее

Один сервис — четыре стека: практический бенчмарк с SLO по p99 и Docker/JMeter

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели5.2K

В статье я сравниваю четыре реализации одного и того же сервиса поверх PostgreSQL:

1. Spring MVC + JDBC

2. Spring WebFlux + R2DBC

3. Ktor + JDBC

4. Go + pgx

Все сервисы крутятся в Docker с одинаковыми ресурсными лимитами и прогоняются через один и тот же JMeter-план. Для каждого стека я ищу максимальный RPS при соблюдении SLO по p99-латентности.

Я подробно разбираю:

- как устроен стенд (Docker-compose, Postgres, Prometheus, Grafana, JMeter);

- как реализованы сервисы и чем различаются модели конкурентности;

- методологию нагрузочного тестирования и расчёта RPS@p99≤SLA;

- как реально ведут себя блокирующий стек, реактивный стек и Go под честной нагрузкой.

Читать далее

Ваша компания повзрослела? Соболезную

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

Меня зовут Сергей, и в Домклике я занимаюсь операционным управлением в ИТ. 

Чем отличается взросление компании от взросления человека? Компания начинает обрастать бюрократией.

Я расскажу своë видение того, как первые сбои рождают первые процессы, бюрократия из защитника превращается в угрозу, и как превратить процессы из врагов в союзников

Это история о том, как выжить и остаться собой, когда ваша компания из гаража превращается в серьëзный бизнес.

Читать далее

ML-проект моей мечты. Часть 1

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

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

Читать далее

Как понять, что продуктовый дизайнер работает неэффективно

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.6K

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

Читать далее

Почему в Rust всё правильно

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели17K

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

За свой почти 14-летний путь в ИТ я успел профессионально поработать на нескольких языках программирования: PHP, Ruby, JS/TS, также мне доводилось «потрогать» Python, Go, даже Clojure и Haskell. Каждый имеет свои недостатки: у PHP — кривая архитектура, у Ruby — медленная работа, у функциональных языков — недостаток библиотек и обучающих материалов. При разработке на них каждый раз приходится идти на уступки и выбирать между изящным синтаксисом, скоростью работы и написанием «велосипедов» на каждый чих. В Rust всё обстоит совсем иначе и вот почему.

Читать далее

Оркестрация в мультиагентных системах

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.8K

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

Читать далее

RUM на Prometheus: пишем за вечер свой простой и надёжный фронтенд-мониторинг

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели7K

Вы смотрите в Lighthouse на 95 баллов, а пользователи пишут, что сайт тормозит. Знакомо? Пользователи сидят на старых смартфонах, слабом интернете, через прокси — поэтому лабораторные метрики не отражают реальную картину. По исследованиям даже +0,1 секунды загрузки сайта влияет на конверсию!

Сегодня я покажу, как своими руками сделать облегченный Real User Monitoring на Prometheus начиная со сбора метрик и заканчивая настройкой графиков — без Kafka, без ClickHouse, без хранения сырых событий.

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

Информация

Сайт
domclick.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия
Представитель
trutrukate