И не опять, а снова — про этот ваш RAG. Многие продуктовые команды сейчас пробуют приспособить его для своих задач — и мы, команда Speech&Text в компании Домклик, не избежали этой участи. Но не (только) потому, что это модно и молодёжно — попробовать RAG‑подход нас побудила необходимость решить определённые насущные проблемы. Что же это за проблемы, как мы встраивали RAG и что из этого получилось? Если интересно узнать, то милости просим в текст :-)
Хоть и безобразно, но единообразно
Здравствуйте! Сегодня мне хотелось бы обсудить с вами один армейский принцип, который может оказаться невероятно полезным при написании и поддержке вашей кодовой базы.
Тайны рейтингов: как добиться стабильно высокого рейтинга Android-приложения?
По данным исследований (Data.ai, Sensor Tower, Statista), Android-приложения имеют на 10-30 % более низкие оценки, чем iOS-аналоги. Например, приложение может получить 4,5 на iOS и 3,5-4,0 на Android.
Меня зовут Анастасия Симонова, я Android-разработчик в команде Домклик. Поделюсь нюансами разработки под Android и предложу некоторые решения для избежания проблем в будущем. Готовы? Приступим!
Безопасное взаимодействие с API: от ошибок к стабильности
Каждый frontend-разработчик сталкивался с ошибкой вида TypeError: Cannot read property 'name' of undefined
. Это часть целого класса ошибок в JavaScript, возникающих из-за несоответствия фактического формата данных ожидаемому. В этой статье расскажу, как избавиться от подобных проблем и добиться стабильности, внедрив три ключевых шага: API-слой, Backend-for-Frontend (BFF) и проверку с помощью Zod.
Погружение в мир Lint'a в Android-проекте (часть 2)
Продолжим рассматривать различные нюансы статического анализа с помощью Lint. Опираться будем на предыдущую статью. С момента её публикации прошло много времени, за которое вышло несколько значимых обновлений Android Gradle Plugin (а с ним и всех артефактов линтера), а также вторая версия Kotlin с новым компилятором. Вкратце рассмотрим наиболее заметные для нас изменения с небольшими примерами. Кроме того, удалось найти что-то похожее на полноценную документацию по lint (правда, редко обновляющуюся), наиболее интересные моменты оттуда тоже рассмотрим.
Нейроисследования в работе UX-редактора: выводы учёных, которые улучшат тексты вашего продукта
Привет всем. Это Маша Русскова — UX-редактор Домклик. Я отвечаю за интерфейсные тексты. На пересечении нейробиологии, маркетинга и дизайна начинается поле для дискуссии о том, насколько исследования когнитивных функций применимы к пользовательскому опыту. Делюсь подборкой интересных исследований о текстовом наполнении интерфейсов, результаты которых можно запросто использовать для проектирования ваших цифровых продуктов. Даже если в вашей команде нет UX-редактора. Поехали?
Разработка плагина для Android Studio
В современном мире разработка программного обеспечения становится всё более сложной и многообразной. Одним из ключевых инструментов, используемых для создания мобильных приложений, является Android Studio. И помимо стандартных возможностей, Android Studio позволяет разработчикам расширять функциональность своей среды с помощью плагинов.
Как выстроить работу команды продуктовых дизайнеров, не привлекая внимания санитаров
Привет! Меня зовут Артём Литвин, последние три года я работаю дизайн-лидом в компании Домклик и руковожу командой из девяти продуктовых дизайнеров. Хочу поделиться своим опытом, как выстроить эффективную работу в дизайн-отделе. Мы рассмотрим три ключевые темы, которые могут помочь улучшить работу в вашей команде:
— Продуктовые активности: как делать продукты лучше.
— Коммуникационные активности: как дизайн‑отделу работать слаженно и с удовольствием.
— Форматы коммуникации: как эффективно доносить информацию и обмениваться идеями.
Витрина компонентов, или Единая точка правды в дизайн-системе. Часть 2
Всем привет! В первой части мы остановились на том, что такое витрина и что она умеет. В этой части я поделюсь с вами некоторыми процессами, нашим промежуточным результатом и полезными советами.
Интересно, что в финале написания статьи я поняла, что всë написанное, можно смело применять к любому своему проекту! :)
Работа над любым продуктом начинается с исследований, анализа, ресëрча. Витрина не исключение. В этой статье подробнее остановимся на этапе ресëрча.
Opensearch, Logstash и dynamic mapping
У нас в Домклик огромное количество микро-сервисов, около 5000. Все они пишут какие-то логи. В этой статье я хочу рассказать о том, как у нас в компании настроен маппинг в индексах Opensearch и какие "фишки" мы используем, чтобы минимизировать работы по настройке маппинга.
Знакомство с FEEL в Camunda 8
Язык FEEL (Friendly Enough Expression Language) — мощный инструмент для упрощения работы с бизнес‑процессами в Camunda 8. Он предоставляет удобные и интуитивно понятные средства для создания выражений, которые могут использоваться как представителями бизнеса, так и разработчиками. В этой статье мы рассмотрим, как FEEL применяется в BPMN‑схемах, DMN‑таблицах и скриптовых задачах, а также обсудим его влияние на производительность и удобство разработки.
Рекурсивные запросы в SQLAlchemy
Когда возникает необходимость работать с иерархической структурой данных, кажется, что решение давно найдено, ведь подобные задачи уже неоднократно решались. Возможно, даже выбран инструмент, например, Python и SQLAlchemy. Однако, углубляясь в задачу, понимаешь, что вариантов множество, даже в вопросе, как извлечь данные из базы: использовать стратегию selectin для загрузки родительских элементов? Или, возможно, стоит применить joinload? А может, лучше воспользоваться CTE‑запросами, которые рекомендуются в 90% статей? Но насколько CTE действительно эффективно по сравнению с другими методами? Более того, большинство примеров рассматривают ситуации в идеальных условиях, далёких от реальных проектов.
В этой статье я рассмотрю основные способы получения иерархической структуры из БД на примере реального многослойного приложения с использованием SQLAlchemy 2.0. Как обычно, есть важные нюансы, о которых редко упоминают, хотя они весьма любопытны. В завершение проведу сравнение производительности всех описанных подходов.
Дегустируем Rspack
В последнее время язык программирования Rust находится на самом гребне волны хайпа. То тут, то там пестрят такие заголовки: «делаем на раст some_gnu_cli_utility», «Rust‑реализация привычной программы», «давайте перепишем на Rust ВООБЩЕ ВСЁ». Мне и самому очень нравится этот язык, и рост его популярности считаю вполне заслуженным. Несмотря на крутую кривую обучения и весьма высокий порог входа, в Rust правильно сделано если не всё, то почти всё. Многие языки годами и десятилетиями шли к тому, что «крабоводам» предлагалось «из коробки» на заре истории Rust.
Эпоха, когда во фронтенд‑экосистеме раз в неделю появлялся новый JS‑фреймворк, канула в Лету. На дворе 2024-й, теперь раз в неделю появляется новый бандлер, причём зачастую написанный именно на Rust (например, Turbopack, Rolldown, Farm и Mako от китайских товарищей). В этой статье я хочу опробовать в действии наиболее многообещающий из них — Rspack. Он позиционируется как быстрый сборщик, имеющий полную обратную совместимость с Webpack. Разработчики Rspack несколько месяцев назад выпустили стабильную мажорную версию (1.0) и продолжают активно развивать проект.
Что ж, давайте его попробуем. В качестве подопытного кролика возьмём не очередной Hello World, специально заточенный под бенчмарки, а реальный сложный проект, в котором есть:
— четыре режима сборки Webpack;
— сложная предметная область и, соответственно, сложная логика;
— 550+ React‑компонентов.
Кстати, вот моя статья, где описывается, как содержать в чистоте конфигурационные файлы на подобного рода «атомоходах».
Как мы строили процессы в Домклик
Вот уже год, как я работаю в этой замечательной компании.
Статья-рефлексия на тему, как строить процессы с ограниченными ресурсами.
Делюсь полезным опытом о том, как мы закрыли базовые потребности у себя в командах.
Кросс-платформенное тестирование мобильных приложений: особенности, инструменты и решения
В современном мире мобильные приложения стали неотъемлемой частью нашей повседневной жизни. Их стабильная и правильная работа требует особого подхода к тестированию, особенно когда речь идёт о кросс‑платформенных приложениях, работающих в iOS и Android. В этой статье я поделюсь своим опытом и трудностями, которые могут встретиться в процессе тестирования приложений в упомянутых ОС.
Введение в Brisa: новый подход к веб-разработке
Brisa — это современный веб-фреймворк, который сочетает мощь серверного рендеринга и удобство клиентских компонентов. Он позволяет создавать быстрые, легкие и высокопроизводительные веб-приложения, минимизируя объем JavaScript, отправляемого в браузер. Поддержка веб-компонентов, гибкая интернационализация и возможность кроссплатформенной разработки с помощью Tauri делают Brisa универсальным инструментом для веб-разработчиков.
В этой статье мы подробно разберём, как начать работу с Brisa, изучим основные принципы и рассмотрим примеры кода.
Встречи продуктового дизайнера в Домклик
Привет всем читателям! Меня зовут Дима, я продуктовый дизайнер в одной из команд Домклик. В этой статье я расскажу о встречах, которые являются важной частью рабочего процесса любого дизайнера.
Объясню, что там происходит и какую пользу можно из них извлечь.
Мой путь в мире веб-рендеринга: от статических страниц к гибридным архитектурам
Выбор метода рендеринга является одним из ключевых решений во фронтенде. В этой статье я хочу поделиться своим опытом использования различных методов веб-рендеринга, рассказать о их преимуществах и недостатках, а также поделиться мыслями о будущем этой области. Если вы только начинаете свой путь в веб-разработке или хотите углубить свои знания, то эта информация будет для вас полезной.
Знакомьтесь: input, output и model. Новые функции в Angular
Привет всем! Меня зовут Егор Молчанов, я разработчик в компании Домклик.
Хочу рассказать вам о новых функциях Angular: input()
, output()
и model()
. Они появивились сравнительно недавно и обещают в скором времени заменить привычные нам декораторы @Input
и @Output
. Разберëм, что они собой представляют, как использовать на практике, и как связаны с концепцией сигналов. Поехали!
Тактильный отклик в мобильных приложениях: что это такое, когда использовать и зачем?
В этой статье я вам расскажу, что такое тактильная обратная связь, как и для чего она применяется. Раньше устройства сообщали нам о чём-то с помощью звуков и света, например, когда телефон звонил или мигал. Что поменялось с тех времен? В этой статье расскажу.
Информация
- Сайт
- domclick.ru
- Дата регистрации
- Дата основания
- Численность
- 501–1 000 человек
- Местоположение
- Россия
- Представитель
- Dangorche