Как стать автором
Обновить
88.61
SimbirSoft
Лидер в разработке современных ИТ-решений на заказ
Сначала показывать

Как с помощью Amplitude мы стали лучше понимать пользователей продукта

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

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

Чтобы подтвердить или опровергнуть эту гипотезу, мы воспользовались Amplitude. Этот инструмент позволяет строить различные графики, просматривать и сегментировать профили пользователей и пользовательские пути, просматривать воронки и их обходные пути, проводить когортный анализ, получать данные в реальном времени и многое другое. После сбора и анализа метрик гипотеза подтвердилась, в результате в компании приняли решение реализовать несколько вариантов подтверждения личности, в том числе, расширить возможные варианты действий в системе при обычной регистрации (без подтверждения паспорта).

Привет! Меня зовут Екатерина, я QA-специалист компании SimbirSoft. В этой статье поделюсь опытом работы с системой продуктовой аналитики Amplitude для изучения поведения пользователей на сайте:
1. Какие проблемы можно решить, собирая метрики аналитики.
2. Интерфейс Amplitude и данные, которые можно извлечь из событий.
3. Проблемы, которые могут возникнуть при внедрении системы, и как мы их решили на проекте.

Материал будет полезен аналитикам и QA-специалистам, маркетологам и всем специалистам, у которых есть потребность к отслеживанию поведения пользователей. 

Читать далее
Рейтинг0
Комментарии0

Интеграция паттерна Design API First в конвейер разработки ПО: наш опыт

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

Всем привет! Продолжаем наш цикл статей о внедрении подхода Design API First на проектах нашей компании. Ранее мы рассмотрели использование этого подхода, описали плюсы и минусы, узнали, как на практике выглядит проектирование API на примере сервиса аутентификации. Сегодня расскажем о том, как мы встраиваем Design API First в наш конвейер разработки, подробно остановимся на инструментах, помогающих с технической точки зрения организовать этот процесс. Объясним, как реагировать на изменения требований и обеспечивать версионность, а также что использовать для мокирования данных. Рассмотрим различные варианты применения: для нового проекта, для существующего проекта (где изначально был Code First).

4 часть: Как генерировать модели интерфейсов на основе спецификации на стороне frontend-приложений

5 часть: Design API First. Кодогенерация Roslyn

Читать далее
Рейтинг0
Комментарии0

Приручаем Liquibase. Как скормить базе данных список из 10К офисов, чтобы потом не писать костыли?

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

Привет! Меня зовут Михаил, я Java Backend Developer в Simbirsoft. В этой статье хочу поделиться своим опытом создания миграций файлов с большим списком данных при помощи Liquibase. Cтолкнувшись с такой задачей на проекте, я был сильно удивлен тому, как мало материалов написано по этой теме, даже на английском. Поэтому описал то, что удалось собрать и проверить на собственном опыте.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии9

Автоматизированная работа с DevTools в Selenium 4

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

Специалисты QA- и SDET-направлений довольно часто используют DevTools браузера, поскольку в нем есть ряд инструментов, необходимых для отладки и тестирования веб-приложений.

Например, при интеграции REST API методов с интерфейсом приложения достаточно трудоемко читать информацию по запросам и ответам в DevTools после каждого действия, а также сопоставлять это с документацией. Этот кейс можно автоматизировать, например, с помощью сравнительно новой библиотеки DevTools Selenium 4 и инструментов, которые она предоставляет.

В этой статье я — SDET-специалист SimbirSoft Мария, — расскажу про функциональности DevTools, которые были актуальны на наших проектах.

Погрузиться
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Как мы внедряли Design API First. Показываем на примере сервиса аутентификации

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

Привет, Хабр! На связи Антон, руководитель Архитектурного комитета компании SimbirSoft. Вместе с моими коллегами в прошлой статье мы рассказали про особенности применения подхода Design API First. Сегодня покажем, как реализуется этот подход на практике на примере сервиса аутентификации пользователей.

Есть и продолжение, 3 часть: Интеграция паттерна Design API First в конвейер разработки ПО: наш опыт

4 часть: Как генерировать модели интерфейсов на основе спецификации на стороне frontend-приложений

5 часть: Design API First. Кодогенерация Roslyn

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии5

Design API First как паттерн проектирования контрактов межсервисного взаимодействия

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

За окном 2023 год, а среди разработчиков только и разговоров, что про микросервисы да API First. Несмотря на то, что эти темы не новы, похоже, что их актуальность даже набирает обороты.

Про микросервисы уже много написано и теоретического и практического. Есть у этого подхода и свои евангелисты (Microservice Architecture) :) В целом это тема достаточно холиварная, особенно при крайних точках зрения. Сегодня мы ее отложим, но обязательно вернемся в контексте темы этой статьи. Конечно, это будет не менее обсуждаемая история, посвященная методологии API First и программным интерфейсам (прежде всего, web, но не только) при проектировании и разработке современных информационных систем :)

Меня зовут Антон, я руководитель Архитектурного комитета в компании SimbirSoft. Мы используем подход API First для проектов самой разной направленности, где есть несколько команд разработки (как минимум Backend и Frontend), а также при высокой неопределенности на этапе реализации (быстроменяющиеся требования и цели, параллельные процессы проектирования и реализации, высокие запросы к TTM и так далее).

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

Этот материал открывает цикл статей, посвященных практическому внедрению методологии API First в разработку наших команд. Если быть точным, то мы отдаем предпочтение «младшему брату» API First, практикующему  проектирование (design), — известному как Design API First. Чтобы избежать путаницы, далее термин «API First» будет обозначать подход к разработке ПО, а термины «Design API First» и «Design First» – проектирование ПО в рамках подхода API First.

2 часть: Как мы внедряли Design API First. Показываем на примере сервиса аутентификации

3 часть: Интеграция паттерна Design API First в конвейер разработки ПО: наш опыт

4 часть: Как генерировать модели интерфейсов на основе спецификации на стороне frontend-приложений

5 часть: Design API First. Кодогенерация Roslyn

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии4

Суперклей ABI, или Как применять C++ где угодно

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

Привет, Хабр! Меня зовут Михаил, я backend-разработчик в SimbirSoft. Время от времени я сталкиваюсь с понятием «двоичный», он же «бинарный» интерфейс приложений, или просто ABI (application binary interface). Все найденные мной материалы на эту тему были либо очень скудны, либо вели к многостраничным эпопеям, которые напоминали сборную солянку из описания, например, архитектуры процессора x86, сдобренную стандартом С++.

Но потом я наткнулся на перевод публикации Тита Винтерса в рабочей группе 21 (WG21) — комитета по стандартизации языка C++. В ней он поднимает вопрос поддержки обратной бинарной совместимости. Значит, вопрос актуальный — это и стало мотивацией для написания этой статьи. В ней я сфокусируюсь на примерах и практике использования С++ в других языках программирования. Материал будет полезен middle+ и senior-разработчикам, а также всем, кто хочет сделать гибкий, долгоживущий, легко настраиваемый под заказчика продукт.

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

Читать далее
Всего голосов 9: ↑8 и ↓1+8
Комментарии26

Когда неудачные решения в IT-проекте приводят к крутому пике: как не допустить катастрофы

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

Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему. «Анна Каренина» Л.Толстой.

Проведя сотни аудитов проектов в IT и расследуя десятки инцидентов, перефразируя классика, можно сказать: «Все проекты счастливы по-своему, а несчастны одинаково». Успех проекта — это уникальное сочетание параметров и людей. А несчастья приносят одни и те же проблемы или совокупность проблем, небольших упущений, которые в итоге приводят к пике. Об одном таком случае сегодня расскажу вам я — эксперт Службы качества SimbirSoft Юлия. 

Обычно мало кто реагирует на небольшие отступления от стандартов ведения проектов, соблюдения процессов: «Ничего же страшного не произойдет». Это чревато большими проблемами, когда специалисты не понимают риски, не осознают, зачем то или иное правило, договоренность, и что может произойти в итоге, если этого не делать. Потому что по сути процессы и правила гибкие (в лучших традициях agile :)) Но мелочи и, казалось бы, незначительные вещи на самом деле могут оказать серьезное влияние на весь проект. И привести к катастрофе...

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии20

TypeScript 5.0 и 4.9: оцениваем и сравниваем изменения

Время на прочтение9 мин
Количество просмотров9.4K

В середине марта 2023 года Майкрософт анонсировала релиз TypeScript версии 5.0. Разработчики ожидают от нее 10-20% прироста производительности, но так как всё зависит от кодовой базы и характеристик оборудования, они настоятельно рекомендуют опробовать эти изменения.

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии10

Просто о сложном: трассировки в микросервисах

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

В современном мире все больше IT-проектов переходят на микросервисную архитектуру. При таком подходе появляется ряд вопросов — как избитых, так и не самых очевидных. Как обеспечить корректную работу системы из большого числа микросервисов? Каким способом и с помощью каких технологий разворачивать этот зоопарк? Как отследить узкие места в производительности?

Меня зовут Максим, я Java-разработчик в SimbirSoft. Сейчас работаю на финтех-проекте, занимаюсь созданием бизнес-логики, иногда подключаюсь к различным техническим задачам. В этой статье я кратко и понятно опишу, что такое трассировки, как устроен Jaeger, а также расскажу про недавно появившийся новый стандарт распределенного трейсинга и мониторинга — OpenTelemetry.

Материал будет полезен начинающим разработчикам. Из него вы узнаете, как с небольшими усилиями подключить трассировки к своему проекту. Речь пойдет об инструменте из большого блока «‎Наблюдаемость» (Monitoring), а конкретно — о трассировках.

Читать далее
Всего голосов 8: ↑5 и ↓3+3
Комментарии3

Интеграция рекламы в Android-приложение: Yandex Mobile Ads Vs. Google AdMob

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

Привет, Хабр! Меня зовут Александр, я Android-разработчик в IT-компании SimbirSoft. В конце 2022 года на одном из проектов мы с командой столкнулись с трудностями в работе мобильной рекламы — тогда у нас была подключена сеть AdMob от Google. Приходилось искать много обходных путей для продолжения монетизации приложения. Поэтому решили мигрировать на платформу, с которой не будет проблем из-за санкций. Коллеги-аналитики взялись изучить доступные платформы. 

Я поделюсь результатами этой работы и совместными выводами. Но главным образом разберу процесс интеграции Google AdMob и Yandex SDK, их плюсы и минусы, шаги интеграции, и расскажу, почему мы выбрали Yandex SDK. 

Сегодня использовать зарубежные решения не столько сложно, сколько бессмысленно, если пользователи находятся в России. Многие провайдеры уходят из страны и отказываются выплачивать доход от рекламы, бизнес теряет деньги. Статья будет полезна Android-разработчикам, которые столкнулись с выбором SDK.

Читать далее
Всего голосов 3: ↑2 и ↓1+2
Комментарии4

Интеграция с 1С: то, о чем не рассказывают в книгах

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

Привет всем гуру всемогущих языков программирования! Меня зовут Иван, я возглавляю backend-направление в компании SimbirSoft. Для своей первой статьи на Хабр решил поднять вопрос, как правильно сделать интеграцию с любой платформой 1С, используя Java, С# и другие языки программирования. 

Пару слов обо мне и моем опыте работы с вышеупомянутым стеком. В свое время я писал всевозможные интеграции со стороны 1С. Около трех лет приходилось решать интеграционные вопросы по взаимодействию с производственными системами (MES), системами управлениями складом (WMS), системами управления транспортом и даже со счетчиками учета электроэнергии. Но судьба забросила меня в мир Java, и мои взгляды на разные аспекты интеграции с 1С-платформами сильно изменились.

В этой статье я расскажу о своем опыте интеграции и сложностях, которые могут при этом возникнуть. Я искренне считаю, что множества проблем можно избежать, если специалист представляет, как работают механизмы интеграций в обеих платформах. Рассмотрим на примере Java, но эти подходы доступны и для других языков. Про интеграцию подробно рассказано в книге «Технологии интеграции 1С:Предприятия 8.3» Елены Хрусталевой. В этом материале я приведу несколько методов взаимодействия, плюсы и минусы подходов и их применимость для разных компаний. Помимо этого, рассмотрю самый удобный, на мой взгляд, метод, который не представлен в этой книге.

Статья будет полезна специалистам 1С, Java-разработчикам, а также проджект-менеджерам и владельцам продуктов.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии17

Три консоли в инструментах разработчика 1С: упрощаем отладку кода, запросов и отчетов

Время на прочтение10 мин
Количество просмотров19K

Привет, Хабр! В одном из недавних проектов мне удалось поближе познакомиться с «Инструментами разработчика» (далее ИР). Это универсальный комплекс средств, который помогает решать широкий спектр задач, поставленных разработчику и администратору. 

Описание всего инструментария будет слишком объемной задачей – многие из них заслуживают отдельной статьи. 

Меня зовут Николай, я 1С-разработчик в SimbirSoft и хочу поделиться собственным опытом применения трех инструментов из набора, которые использую их чаще всего: 

Консоль запросов;

Консоль компоновки;

Консоль кода. 

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии10

Базовые требования к парольной аутентификации

Время на прочтение6 мин
Количество просмотров9.5K

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

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии16

Тестирование с Ava.js

Время на прочтение6 мин
Количество просмотров2K

На данный момент существует великое множество библиотек и инструментов для тестирования. В большинстве случаев и проектов вы увидите такие инструменты, как Mocha, Jest и другие – все они популярны и хороши… Но неужели нет достойных альтернатив? Существует ли менее известная библиотека, которая может справиться со своими задачами лучше, чем вышеперечисленные флагманы? Зачастую для тестирования используют популярные инструменты, перечисленные выше. 

Меня зовут Михаил, я JS-разработчик в SimbirSoft, и мне бы хотелось раскрыть такой малоизвестный, но очень полезный и понятный инструмент, как Ava. Это простая библиотека для запуска тестов на Node.js. В некоторых моментах она превосходит своих конкурентов, но почему-то пользуется гораздо меньшей популярностью. Возможно, для кого-то Ava может стать отличной альтернативой на старте нового проекта или решения вопроса с тестированием.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Устраняем недостаток микрофронтендов: четыре способа коммуникации между frontend-приложениями

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

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Инфраструктура Selenium-тестов: как создать связную систему Allure-отчётов без Allure-сервера

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

Как часто вы формируете Allure-отчёты во время проведения автотестов? Наверняка, чтобы  отслеживать изменения от отчёта к отчёту, вы также используете Allure-server. А что делать, если нет возможности содержать отдельный сервер для отчетов или он не отвечает всем вашим запросам? Я SDET-специалист SimbirSoft Дмитрий, и в этой статье расскажу о плагине, который мы придумали в качестве альтернативы Allure-server. Он обладает необходимыми возможностями для обработки отчётов и позволит сэкономить бизнесу на стоимости использования сервера.

Читать далее
Рейтинг0
Комментарии1

Combine: часть 2. Вершина айсберга

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

Привет, Хабр! На связи Сергей, iOS-разработчик в компании SimbirSoft.

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

Интеграция Combine в проект будет полезна для обеих сторон — бизнеса и команды разработки:

1. Процесс работы становится быстрее, а значит дешевле.

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

3. Combine способствует легкой поддержке и удобном переходе на современные технологии в будущем (например, на SwiftUI).

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Kubernetes-валидаторы и где они обитают

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

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Storybook: разработка без боли для команды и бизнеса. Возможности и нюансы

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

Всем привет! Если вы считаете Storybook лишним инструментом, эта статья для вас. Раньше я и сам мог присоединиться к такому мнению, но попробовал Storybook в деле, когда участвовал в разработке сервиса рассрочки для одного из крупнейших маркетплейсов. Разработкой этого проекта занимались две команды, состоящие из 15 человек.

Меня зовут Александр, я frontend-разработчик в Simbirsoft. Хочу поделиться, как этот инструмент может сократить время на разработку и тестирование, улучшить качество конечного продукта, а также сэкономить бюджет на больших проектах.

Советую к прочтению фронтенд-разработчикам и тимлидам, которые хотят упростить процесс тестирования и отладки компонентов интерфейса веб-приложений. Также материал может помочь менеджерам проектов и владельцам бизнеса в поиске новых подходов для ускорения и оптимизации процесса разработки. И даже если вы новичок во frontend-разработке и хотите узнать о новых инструментах и технологиях в этой области — welcome.

Мы рассмотрим такие возможности, как создание документации, тестирование, тестирование доступности, работу с моками, аддоны для имитации API и контекста. Я поделюсь, какие проектные задачи мне удалось решить, и чем может быть полезен Storybook для вас.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии12

Информация

Сайт
www.simbirsoft.com
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия