[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Как стать автором
Обновить
67.52
Сначала показывать

Архитектура фронтенд-приложений на React. (Нам не нужен FSD)

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

Всем привет, меня зовут Павел Рожков, я lead фронтенда в компании Doubletapp. Мы занимаемся заказной разработкой, и в нашей работе над React-проектами важную роль играет наш архитектурный гайдлайн, который мы постоянно совершенствуем. Это свод договоренностей о том, каким образом будет организован код в нашем проекте.

Гайдлайн помогает нам:

Безболезненно менять состав команд на проектах между собой. Каждый может заменить коллегу или усилить команду, минуя этап долгого онбординга. 

Сократить время разработки. У нас часто не возникает вопроса, как здесь сделать лучше, куда что положить, как организовать. Мы подумали об этом заранее.

Поддерживать старые проекты, т.к. они написаны по тем же принципам. 

Поднять качество кода: работать на проекте становится удобнее и можно сосредоточиться на важных вещах.

Онбордить новых членов команды благодаря готовой документации.

Содержание:

Почему бы нам просто не взять FSD?
Шаблон проекта с архитектурой
Структура кода приложения
Заключение

Читать далее

Автоматизация верификации кодовых датасетов подрядчиков с помощью LLM: снизили брак на 40% и сократили стоимость на 60%

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

Привет, Хабр! Меня зовут Федор Горбунов, руковожу в Doubletapp направлением автоматизации бизнес-процессов с помощью LLM. В статье расскажу, как мы помогли клиенту автоматизировать одну из операций в производственной цепочке, как эта автоматизация ускорила поставку итогового продукта, уменьшила количество ошибок за счет сокращения ручного труда и в конечном итоге сэкономила заказчику деньги.

О чем текст:

Кодовые датасеты для обучения больших языковых моделей (LLM): как клиент работал до нас
Почему верификация данных критически важна?
Как автоматизация улучшила верификацию диалогов для больших языковых моделей
Автоматизируем процесс: что и как мы делали?
Результат в цифрах

Читать далее

Тестирование с нуля: советы, которые я дала бы себе на старте

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

Всем привет! Меня зовут Маша, я работаю QA-инженером в Doubletapp, и моя история в IT началась всего 1,5 года назад. Хочу поделиться своим опытом перехода в тестирование, рассказать о том, как я училась, с чего начинала, и что помогло мне сделать первый шаг. Надеюсь, этот рассказ вдохновит тех, кто только думает о профессии тестировщика.

Содержание

Обзор полезных курсов
Как найти работу
Семь вещей, которые я хотела бы знать на старте

Читать далее

Аутсорс глазами корпораций: работа максимум на четверку, рецепт для секса на одну ночь и 81 шот

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

На конференции DUMP-2024 команда Doubletapp провела два круглых стола, посвященных аутсорсу. На первом из них руководители аутсорс‑компаний обсудили, почему к ним приходят крупные компании. На втором свой ответ на этот вопрос дали уже представители корпораций. А вместе с тем поговорили, как эффективно работать с аутсорсом и не возненавидеть его, какие критерии важны при выборе подрядчика, почему внешние сотрудники работают максимум на четверку и как валидировать экспертизу аутсорс‑команды.

Темы обсуждения

В каких случаях приглашают внешнюю команду
Как поддерживать проект, созданный внешней командой, и избежать ситуаций, когда его нужно переделывать
О конфликте интересов, когда подрядчик хочет сэкономить и сделать проект подешевле и побыстрее
Revenue sharing
Как разорвать отношения с недобросовестным подрядчиком
Как валидировать экспертизу внешней команды
Три ключевых критерия при выборе подрядчика
Как выделиться среди подрядчиков
Хантинг сотрудников подрядчика
Как лучше проверять гипотезу: инхаус vs внешняя команда

Читать далее

У любого менеджера есть сумка с инструментами, и я в нее отсыпаю еще инструмент: Алексей Пименов – о Канбан Методе в IT

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

В апреле 2024 года в Екатеринбурге прошла масштабная IT‑конференция DUMP. Команда Doubletapp сняла серию подкастов с ее топовыми спикерами. Одним из них стал Алексей Пименов — преподаватель и консультант по современным методам менеджмента.

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

Из текста вы узнаете:

Как Канбан Метод появился в IT
В чем суть этого инструмента
В каких случаях нужно обратиться к Канбан Коучу
Почему иногда полезно устраивать внутри компании контролируемые конфликты
Какие книги почитать начинающим коучам
Почему важно участвовать в конференциях

Читать далее

Руководители аутсорс-компаний – о «грязной» работе, конкуренции с корпорациями за сотрудников и обучении джунов

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

Один из круглых столов конференции DUMP-2024, которая прошла в этом году в Екатеринбурге, посвятили аутсорсингу в IT. Руководители аутсорс-агентств обсудили, почему к ним приходят крупные компании (спойлер – в том числе для того, чтобы делегировать «грязную» работу), что делать, если твоего сотрудника после проекта пытаются схантить и могут ли сервисные компании конкурировать за кадры с крупными корпорациями, или их предназначение – быть площадкой для карьерного прыжка джунов.

Темы беседы

Почему корпорации отдают работу внешней команде
Где найти специалистов
Аутсорс-компания – правая рука СТО или их проблема?
Про «грязную» работу для аутсорса
Что делать, если заказчик хантит сотрудников
Растить сотрудников для корпораций или конкурировать за лучшие кадры с ними?

Читать далее

Делай тот PR, который ты умеешь: Григорий Петров о продажах на конференциях

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

Привет, Хабр! В апреле 2024 года в Екатеринбурге прошла масштабная IT-конференция DUMP. Мы, команда Doubletapp, решили не упускать возможности и сняли целых 8 подкастов с топовыми спикерами конференции. Один из них – Григорий Петров, DevRel в компании Evrone. Григорий много выступает, пишет статьи, а еще ведет подкаст про Python и пишет учебник для разработчиков. Поговорили с ним о том, как выступления и написание технических статей помогают продажам, как он применяет нейрофизиологию в работе и о том, сколько часов в день нужно писать код, чтобы не потерять навыка.

Из текста вы узнаете

Как выступления на конференциях влияют на маркетинг
Помогают ли статьи в продажах
Как сохранить экспертность в нескольких областях
Как Григорий применяет нейрофизиологию в работе
Должны ли менеджеры проектов быть программистами
Как выглядит идеальная команда продаж

Читать далее

Как общаться с базой знаний на естественном языке с помощью LLM и объективно оценить работу полученной системы

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

Привет, Хабр! Меня зовут Даниил, работаю в ML-отделе Doubletapp. В статье расскажу про особенности применения больших языковых моделей для оптимизации бизнес-процессов.

Большая языковая модель (LLM) — это тип языковой модели, который способен распознавать и генерировать осмысленные тексты, а также другие сложные типы данных (например, код). Такого рода модели обучаются на огромных массивах данных, чаще всего собранных из открытых источников.

Тем не менее LLM все еще имеют ряд проблем, одной из которых является галлюцинирование (придумывание фактов). Сложно винить модель за то, что она не знает, как устроен тот или иной процесс/продукт в вашей компании, и пытается придумать вразумительный ответ. Поэтому нужно подсказать LLM фактическую информацию, а она уже даст нам понятную человеку персонализированную реплику.

Такая система ответов на вопросы с использованием фактической информации называется RAG (Retrieval Augmented Generation).

Данная статья состоит из двух частей:

мы рассмотрим построение RAG-системы на основе библиотеки langchain;

объективно оценим работоспособность созданной системы, используя синтетические данные на русском языке с помощью фреймворка RAGAs.

Читать далее

Вы кто такие, я вас не знаю, или Как мы делаем JWT-аутентификацию

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

Привет! Меня зовут Данил, я backend-разработчик в Doubletapp. Почти во всех наших проектах есть пользователи, которые могут войти в систему. А значит, нам почти всегда нужна авторизация. Мы используем авторизацию, построенную на JSON Web Token. Она отлично сочетает в себе простоту реализации и безопасность для приложений.

В интернете есть много разных материалов с объяснением, что такое JWT и как им пользоваться. Но большинство примеров ограничиваются выдачей токена для пользователя. В этой статье я хочу рассказать не только о том, что такое JWT, но и как можно реализовать работу с access и refresh токенами и решить сопутствующие проблемы. Будет немного теории и много практики. Присаживайтесь поудобнее, мы начинаем.

Путеводитель:

Что такое JSON Web Token?
Использование и реализация
Простая реализация JWT
Access и refresh tokens
Как отозвать токены
Доступ с нескольких устройств
Удаление старых данных
Резюмируем

Читать далее

Два по цене одного: snapshot-тесты на основе SwiftUI Preview

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

Привет, Хабр! Меня зовут Дима, я iOS-разработчик в компании Doubletapp, и в прошлом году я вместе со своими коллегами и командой Яндекса участвовал в разработке приложения Яндекс Путешествия. В этом проекте мы выбрали фреймворком пользовательского интерфейса SwiftUI (подробнее о том, как мы его выбрали и что из этого получилось, рассказала наша iOS-Head Полина Скалкина здесь).

На начальном этапе реализации приложения мы постоянно вносили изменения во множество вью. Это были и обновления, вызванные переработкой дизайна, и исправление багов, и оптимизации, которые мы делали по мере роста наших знаний о SwiftUI. Нам хотелось контролировать все эти изменения, чтобы еще на этапе разработки отлавливать вызванные ими ошибки верстки. Поэтому наша команда приняла решение использовать snapshot-тесты.

Что такое snapshot-тесты?
Объединение snapshot-тестов и превью
Итог

Читать далее

Большое обсуждение грейдов и собеседований с руководителями из Яндекса, Okko, Сбера и Doubletapp

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

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

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

Читать далее

Они заставят вас ненавидеть: знакомство с VAST и VPAID, или Как интегрировать рекламу в web-видеоплеер

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

Доброго вам времени суток! Меня зовут Валерия, я фронтенд-разработчик из компании Doubletapp. Год своей жизни отдала на разработку видеоплеера с рекламными интеграциями. На старте была только спека, дока, единственная статья на Хабре, поясняющая за рекламу, и огроменное желание заказчика накрутить оную на видеоплеер. Пришло время и вас поближе познакомить с рекламой.

Статья подойдет тем, кто хочет разобраться в специфике работы VAST и VPAID, настроить кастомное управление рекламой, разместить видеорекламу отдельным блоком на сайте (out-stream) или разбить видеоролик рекламными интеграциями (in-stream).

  • Инструментарий, или Основные ингредиенты
  • Подробнее о VAST
  • Запускаем рекламный блок на странице (out-stream)
 • Подключаем IMA SDK
  • Инициализируем
  • Обрабатываем ошибки
  • Обрабатываем событие ADS_MANAGER_LOADED
  • Запрашиваем и воспроизводим рекламу
  • Продвинутое управление (въезжаем в обработку событий рекламы)
  • Локализация
  • Адаптивность
  • Обработка событий
Разбиваем видеоролик рекламными паузами (in-stream, VMAP)
  • Подробнее о VMAP
  • Подключаем VMAP к видеоплееру
  • Ручное управление стартом рекламы
  • Особенности VPAID

Читать далее

Храним краску с умом: как организовать ресурсы в многомодульном проекте

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

Привет, меня зовут Никита Чернобрисов, и я делаю Android-приложения в Doubletapp. Полтора года назад мы начали работать над приложением «Яндекс Путешествий» — само приложение доступно в Play Store, а про кейс подробно можно прочитать тут. При старте у нас возникло много архитектурных холиваров, в частности о том, как хранить ресурсы и пользоваться ими. И, как это и заведено, первые решения оказались неудачными. Я расскажу вам, дорогие читатели, удары каких граблей оставили больше следов и к чему мы пришли.

Для кого эта статья?
Начинаем
Договор с дизайнерами
Дизайн-система (пригодная для дальнейшего автоэкспорта)
Первый вариант, который не стоит повторять
Дробим наш монолит
Figma автоэкспорт
Подготовка в Figma
Подключаем FigmaExport в проект
Подводим итоги

Читать далее

Место QA в тестировании продукта на безопасность

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

Привет, меня зовут Дмитрий Крылатков, работаю QA-инженером в компании Doubletapp. Я всегда был заинтересован темой тестирования на безопасность, участвую в bug-bounty программах, а также поднимаю осведомленность о существующих уязвимостях   среди команд тестирования и разработки. В статье расскажу, как QA может сэкономить ресурсы компании и обеспечить проверку на наличие основных уязвимостей, на что обращать внимание и почему это полезно как для специалиста, так и для бизнеса.

Что такое уязвимость и чем она отличается от бага?
Уязвимости: начнем с простого
Софт для поиска уязвимостей
Где применимы знания о поиске уязвимостей?

Читать далее

MacBook Pro 2015 для учебы в 2023-м?

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

Всем привет! Меня зовут Андрей Жаров, я iOS-разработчик в компании Doubletapp.

Лучшей недорогой рабочей машинкой выступает сейчас MacBook Air на М1. Сочетание его цены и качества даже в 2023-м остается оптимальным из-за мощного процессора, низкого нагрева, долгого времени и скорости работы. Но что делать тем, кто только-только начинает свой путь в iOS-разработке и не может его себе позволить?

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

Бюджетный MacBook
Исторический анализ линейки
Процессор
Оперативная память
Накопитель
Графика
Поддержка и возможные проблемы
Подводя итоги
Что дальше?

Читать далее

Вас много, а я одна: обзорная система мониторинга на Prometheus и Grafana

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

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

Содержание:
Конфигурация Prometheus
Сбор метрик
Дашборды для визуализации метрик в реальном времени
Настройка уведомлений

Читать далее

«Внешняя» навигация в многомодульном проекте на Kotlin

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

Привет, Хабр! Я Дмитрий Воронов из Doubletapp, в этой статье расскажу, как мы делали навигацию в Яндекс Путешествиях. С навигацией в Android, кажется, давно все ясно: бери Jetpack Navigation, читай официальную документацию и следуй ей — и все получится. Если рекомендованная библиотека не подходит — берешь Fragment Manager, прописываешь собственную реализацию и идешь хвастаться коллегам. Если писать свою реализацию нет желания, а официальная библиотека не соответствует модным веяниям — дополняешь свое резюме умением работать с Cicerone. Если твои вкусы специфичны — почему бы не удивить людей неожиданным добавлением в проект Alligator?

В одном коротком абзаце удалось обозначить сразу 4 варианта реализации навигации и, казалось бы, в чем вопрос? Каждый выбирает для своего проекта подходящий ему вариант. Все так, но ровно до того момента, пока не возникает необходимость «поделиться» частью приложения — интегрироваться в другое приложение, и там, как оказывается, другая реализация навигации. И здесь начинается: «Что будем делать? Попробуем написать мост? А может, лучше перепишем навигацию?» 

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

Что такое «внешняя» навигация?
Как это делается?
Реализуем модуль навигации
Примеры реализации

Читать далее

Как мы делали свой шрифт

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

Я Павел Лаптев, графический дизайнер Даблтап. В этой статье речь не о том, как нормальные люди делают шрифты. Я расскажу, как мы сами делали свой собственный шрифт и зачем это нам понадобилось.

Если вдруг у вас появится желание повторить этот путь — для этого нужно:

1. Понять, для чего вам нужен свой шрифт (и нужен ли).
2. Определиться с характером шрифта.
3. Долго и много рисовать буквы.
4. Упороться с кернингом.
5. Обратиться к специалисту-шрифтовику.
6. Повторить подход.
7. Да, и хинтинг, конечно.

Дальше больше

Руки на руль: Bus Factor следит за тобой

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

Привет, Хабр, меня зовут Антон Рябых, работаю в Doubletapp. Расскажу вам о том, как мы придумали сервис, контролирующий поведение водителей общественного транспорта с помощью алгоритмов машинного обучения и компьютерного зрения.

К нам обратилась компания «Термотех», которая занимается городскими перевозками. Организатору движения нужно было автоматически понимать, что:

водитель общественного транспорта не пользуется телефоном во время движения;
камера, установленная в салоне водителя, снимает с верного ракурса, не отвернута в сторону;
от камеры в целом идет сигнал, она не повреждена, не завешена и не загрязнена.

Ранее задача решалась силами сотрудников «Термотеха» — они вручную просматривали все записи с камер видеонаблюдения, установленных в кабинах водителей. Такой подход занимал огромное количество времени и все равно приводил к ошибкам, основанным на человеческом факторе.

Как мы решали эту задачу?
Как это работает?

Читать далее

Neural Network Optimization: океан в капле

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

Всех приветствую, меня зовут Антон Рябых, работаю в Doubletapp. Вместе с коллегой Данилом Гальпериным мы написали статью про важный этап в процессе обучения нейронных сетей и получения необходимых нам результатов —  оптимизацию модели. Зачем нужно оптимизировать модель, если и так все работает? Но как только вы начнете разворачивать модель на устройстве, которое будет ее обрабатывать, перед вами встанет множество проблем.

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

Оптимизация моделей направлена на уменьшение размера моделей при минимизации потерь в точности и производительности.

Методы оптимизации

Pruning — устранение части параметров нейронной сети.
Quantization — уменьшение точности обрабатываемых типов данных.
Knowledge distillation — обновление топологии исходной модели до более эффективной, с уменьшенным количеством параметров и более быстрым выполнением.
Weight clustering — сокращение количества уникальных параметров в весах модели.
OpenVino, TensorRT — фреймворки, с помощью которых можно оптимизировать модели.

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

Информация

Сайт
doubletapp.ai
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия