Pull to refresh
79
-4
True Engineering@true_engineering

Создаем цифровые продукты

Send message

От «спагетти-кода» к чистым сценариям. Как Page Object Model помог нам преодолеть техдолг в автотестах

Reading time4 min
Reach and readers1.2K

Делимся практическим кейсом рефракторинга автотестов учетной системы: от линейных скриптов к архитектурному подходу, который ускорил написание тестов в три раза.

Технический долг в автотестах — это катастрофа, которая нарастает незаметно. Сначала «простые и быстрые» линейные скрипты кажутся хорошим решением, но с ростом продукта они превращаются в «спагетти-код», где любое изменение в интерфейсе вызывает часовую рутину правок. Мы прошли этот путь в проекте по разработке учетной системы и нашли выход через внедрение архитектурного паттерна Page Object Model (POM).

Состояние «до» с линейными автотестами

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

Читать далее

Eventual Consistency на практике: что делать со сложными системами?

Reading time6 min
Reach and readers3.8K

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

Обеспечение Eventual Consistency в сложных системах

Уже давно стандартом де-факто стали микросервисы, поэтому практически любая система представляет собой набор компонентов, взаимодействующих между собой как синхронно (например, по REST), так и асинхронно — через шины сообщений (RabbitMQ, Kafka).

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

Где именно все может сломаться

Предположим, у нас две системы:

Читать далее

Почему корпоративные знания не работают — и как это исправит ИИ

Reading time4 min
Reach and readers6.5K

В каждой крупной компании со временем накапливается огромное количество ценной информации — инструкций, регламентов, технологических карт, аналитических отчетов. Однако в большинстве случаев эти данные висят «мертвым» грузом в архивах и папках. Все необходимое где-то есть, но найти вовремя невозможно. Чтобы знания действительно начали работать на бизнес, нужен инструмент, который сможет оперативно доставить их тем, кому они нужны. И именно такую задачу решает ИИ чат-бот на основе технологии RAG (Retrieval-Augmented Generation).

Когда знаний много, но они не работают

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

Проблема не в нехватке данных — проблема в доступе к ним. Как итог:

Читать далее

Дизайн-тренажер: как заставить таблицы работать

Reading time2 min
Reach and readers5.2K

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

Почему так происходит? И главное - что именно в таблице мешает работать с ней быстро и уверенно?

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

Читать далее

Angular сегодня: ключевые изменения последних лет

Reading time5 min
Reach and readers7.5K

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

MDN Baseline badges и влияние на поддержку браузеров в Angular

Начать стоит не с самого Angular, а с важного обновления в веб-документации MDN (Mozilla Developer Network). Там появились Baseline badges (метки), которые позволяют быстро оценить, насколько целесообразно использовать новую фичу — например, часть браузерного API.

Читать далее

Trunk-Based Development: как мы внедряем разработку на основе главной ветки

Reading time3 min
Reach and readers6.8K

Trunk Based Development (от англ. trunk – «ствол дерева») – метод разработки кода на основе одной главной ветки. В отличие от Gitflow, TBD позволяет разработчикам добавлять новые модули сразу в master. Второстепенные feature-ветки также могут создаваться, но они имеют короткий срок жизни.

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

Читать далее

Как хранение кода влияет на конкурентоспособность ИТ-продукта

Reading time5 min
Reach and readers3.2K

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

Читать далее

Создаем технологическую платформу для разработки: практический опыт

Reading time4 min
Reach and readers2.8K

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

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

Читать далее

Почему мы считаем Google Identity Platform лучше многих платных альтернатив

Reading time4 min
Reach and readers3.9K

Некоторое время назад мы решили перестроить управление доступом к рабочему пространству мобильных команд. Изучили рынок и обнаружили, что бесплатная Google Cloud Platform вполне может составить конкуренцию платным решениям. В этой статье мы делимся своим опытом и даем инструкции по подключению. 

Читать далее

Машинное обучение в технической поддержке True Engineering

Reading time3 min
Reach and readers2.1K

Уже около года команда поддержки одного из наших высоконагруженных продуктов использует ML-систему нашей собственной разработки – Problem Detection Platform (PDP). Этот сервис умеет анализировать логи и автоматически классифицировать возникающие ошибки. В результате саппорт получает из логов не тонны сырой информации, а данные, с которыми можно быстро и удобно работать.

Читать далее

Как описать архитектуру продукта по нотации C4

Reading time4 min
Reach and readers106K

Когда мы начали создавать платформу True Engineering, в компании не было единых правил для оформления архитектуры. Разные команды – разные инструменты, разные обозначения и уровни абстракции. Значит, даже подобные решения сравнить между собой не получится, а тому, кто смотрит на архитектуру проекта в первый раз, обычно нужен проводник, который расскажет, что же тут изображено. Мы решили унифицировать подходы с помощью модели С4, которая обеспечивает всестороннее описание программных архитектур.

Читать далее

Бесшовная миграция монолитного фронтенда для критически важного бизнес-продукта

Reading time4 min
Reach and readers1.7K

Некоторое время назад появилась задача обновить монолит фронтенда большой высоконагруженной системы, работающей 24/7 – перевести с устаревшего фреймворка Knockout на современный React. Задача возникла, когда старая архитектура перестала соответствовать требованиям бизнеса. Команде поставили задачу реализовать новые функции, но в существующей архитектуре сделать это оказалось практически невозможно.  Хотим поделиться своим опытом, как сделать такой проект проще.

Читать далее

Как баг с потерянными днями рождения привёл нас в историю СССР

Reading time2 min
Reach and readers14K

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

Читать далее

Backend-for-Frontend: когда простого API не хватает

Reading time3 min
Reach and readers79K

Технология Backend-for-Frontend упрощает разработку сервисов, с которыми одновременно работают множество разных клиентов: компьютеры, смартфоны и планшеты со всеми возможными ОС.

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

Читать далее

Как работают и где применяются бессерверные вычисления (Function-as-a-Service)

Reading time4 min
Reach and readers6K

Serverless-вычисления и работающие на их основе решения Function-as-a-Service помогают разработчикам развивать продукты, ориентируясь на бизнес-фичи. Мы поэкспериментировали с этими технологиями и пришли к выводу, что для боевого применения существующие решения сыроваты. Пойдём по порядку.

Термин «бессерверные вычисления» отчасти вводит в заблуждение – конечно, в основе продукта сервера остаются, но разработчикам не приходится о них заботиться. По сути своей Serverless продолжает те же идеи виртуализации, что и более ранние aaS-технологии: позволить команде сосредоточиться на коде и развитии функций. Если IaaS – это абстракция оборудования, контейнеры – абстракция приложений, то FaaS – это абстракция бизнес-логики сервиса.

Читать далее

Как технологический радар помогает осознанному развитию корпоративной ИТ-экосистемы

Reading time5 min
Reach and readers5.8K

Технологический радар – это удобный инструмент, который помогает компании управлять своей платформой разработки и технологической стратегией. Мы изучили радары наших партнеров и ведущих ИТ-компаний, собрали свой и теперь хотим поделиться выводами: как радар помогает бизнесу и куда движется рынок.

Читать далее

Как настроить дашборды в Azure DevOps, чтобы они приносили пользу

Reading time4 min
Reach and readers3.1K

Если вы когда-нибудь использовали проектную аналитику, то наверняка в какой-то момент разочаровывались в этом инструменте. Многие PM-ы со временем забрасывают дашборды, потому что данные оказывается сложно применить для пользы дела. Мы тоже через это прошли и теперь хотим поделиться опытом – как превратить проектную аналитику в действительно удобный инструмент.

Рассказывать будем на примере Azure DevOps (TFS), который с этого года используют все наши команды. В разное время мы перебрали разные системы управления проектами, и в итоге поняли, что именно Azure DevOps объединяет в себе практически всё, что нужно разработчику: управление проектом, репозиторий кода, управление сборками, тестами и релизами.

Читать далее

Практика создания единого шаблона проектов на базе Azure DevOps (TFS)

Reading time5 min
Reach and readers3.1K

В одной из прошлых статей мы писали, как всей компанией перешли на единый трекер на базе Azure DevOps (TFS). Это позволило нам создать единый свод правил для ведения проектов. Рассказываем, как наш проектный офис разработал логику, по которой сейчас работают все наши команды.

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

Читать далее

OLAP-куб для аналитики процессов техподдержки

Reading time3 min
Reach and readers3.4K

Мы внедрили OLAP-куб, чтобы в реальном времени анализировать процессы техподдержки в наших продуктах. Рассказываем, как работает эта система и какие преимущества она нам обеспечила.

Читать далее

Как мы построили систему управления проектами на базе Azure DevOps

Reading time6 min
Reach and readers7.2K

За 15 лет работы мы встречались с различными трекерами: от экзотических FogBugz и Mantiss до современных, которые активно использовали до 2019 года - TFS, Jira, Redmine, даже GitLab. В прошлом году мы за несколько месяцев перевели 200 человек на работу с Azure DevOps. В этой статье рассказываем, как это произошло.

Четыре трекера - это четыре разных процесса, шаблона проектов, системы сборки и развертывания, которые мы поддерживали. Путь к общему трекеру начался с эксперимента - перевести в Azure DevOps одну из команд из "не майкрософт" стека. Так совпало, что эксперимент прошел практически перед уходом на карантин из-за пандемии, но это нам не помешало. И меньше чем через год все наши инженеры переехали в Azure DevOps.

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity