All streams
Search
Write a publication
Pull to refresh
99
6

Пользователь

Send message

Документирование ASP .Net Core Web API с помощью OpenAPI/Swagger. Библиотека Swashbuckle

Reading time12 min
Views37K

Привет, я backend-разработчик IT-компании SimbirSoft Дмитрий. В этой статье расскажу, зачем нужно документировать Web API, какие существуют подходы и покажу, как создать документацию для ASP.NET Core Web API с использованием OpenAPI/Swagger.

Материал будет полезен начинающим backend-разработчикам, которые знакомятся с Web API, а также специалистам уровня Middle, интересующимся актуальными стандартами для оформления документации.

Читать далее

Java. Работа с XML-документами

Reading time12 min
Views43K

Привет, Хабр! Меня зовут Михаил, я SDET-специалист компании SimbirSoft. Я занимаюсь автоматизацией тестирования, в основном это работа с WEB и REST API, но на последнем проекте применял SOAP. Мне приходилось работать с сообщениями этого протокола, а именно:

— выполнять проверку наличия обязательных атрибутов и тегов SOAP сообщений;

— сравнивать содержание различных сообщений;

— вносить изменения или генерировать новые сообщения для исходящих запросов.

В своей статье я поделюсь несколькими способами работы с XML-документами. Материал будет полезен тем, кто впервые сталкивается  в работе из кода с подобными документами на Java.

Читать далее

Как работать с процессами и потоками в Python

Reading time16 min
Views124K

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

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

Читать далее

Новые функции внедрения зависимостей в .Net 6

Reading time12 min
Views13K

Продолжаем делиться полезными материалами в backend-разработке. Осваивая новые инструменты, специалисты SimbirSoft часто читают материалы зарубежных авторов, чтобы быть в курсе актуальных тенденций. В этот раз наш выбор пал на серию материалов британского разработчика Эндрю Лока про новые возможности .NET 6. С разрешения автора мы перевели статью, в которой он разбирает функции внедрения зависимостей в .NET 6. Материал будет полезен тем, кто хочет познакомиться с нововведениями в .Net 6 при переходе на эту технологию.

Читать далее

Готовимся к миграции чувствительных данных

Reading time9 min
Views2.7K

Привет! Меня зовут Адель, я аналитик ИТ-компании SimbirSoft, кроме того, я интересуюсь Data Science. Тема миграции данных из одной системы в другую не нова. Она связана с анализом большого объема информации и связей между различными участками данных, где стоимость ошибки может быть высокой и нужна особая ответственность. Вокруг этой информации построены основные бизнес-процессы, а значит от них напрямую зависит прибыль компании-клиента.

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

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

Читать далее

Нефункциональные требования: как не пустить систему ко дну

Reading time9 min
Views59K

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

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

- мощности и производительности

- безопасности, соответствию стандартам и законодательству

- переносимости и совместимости.

Читать далее

Сравниваем возможности отечественных облаков. С чего начать, если вы переносите данные?

Reading time10 min
Views19K

Перенос данных из одного облачного хранилища в другое – сродни переезду. Для того чтобы он не стал пожаром, нужно подготовиться: оценить ваши потребности, возможности разных хранилищ и их ограничения. Вместе с DevOps-командой SimbirSoft рассмотрим несколько популярных сервисов, которые имеют дата-центры на территории страны – Yandex Cloud, VK Cloud Solutions, SberCloud – и разберем первые шаги по переезду. Статья может быть полезна тем, кто ищет площадку для переноса данных из другого облака или традиционной инфраструктуры.

Читать далее

Camunda: тестируем модели процессов

Reading time19 min
Views63K

Привет! Продолжаем делиться опытом о том, как можно автоматизировать бизнес-процессы в банке с помощью Camunda. В прошлой статье мы рассказали об одном из проектов, который создали на базе Spring Boot с подключенной Camunda в качестве библиотеки. В этом материале расскажем об особенностях его тестирования. 

Поговорим про тестирование моделей процессов Camunda, приведем примеры кода, конфигураций для запуска процессов в тестовой среде, а также поделимся best practice и некоторыми библиотеками, которые значительно облегчают тестирование процессов. Основная задача данного туториала – сэкономить время и упростить задачу командам разработчиков, которые создают приложения на SpringBoot и Camunda, а также тем, кто хочет начать покрывать модели процессов автотестами.

Читать далее

Автоматизируем бизнес-процессы с Camunda и Spring Boot: отказоустойчивая реализация BPM-схем

Reading time13 min
Views36K

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

Изучая задачу, мы выяснили, что материалов об автоматизации бизнес-процессов в Camunda немного, особенно на русском языке. Поделимся своим опытом реализации проекта на Camunda, Java и Spring Boot.

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

Читать далее

Теневой DOM в Selenium: бага или фича?

Reading time9 min
Views9.1K

Мы продолжаем делиться полезными материалами и сегодня поговорим о Selenium – инструменте тестирования web-приложений. Изучая его особенности, мы обнаружили в комьюнити ряд сообщений о различных ошибках: например, разработчики сталкивались с падением тестов, связанных с Shadow DOM, и получали ошибки в значениях root для Selenium. Однако, существует мнение, что такие сбои тестов могут оказаться не багом, а фичей. О своем подходе к работе с теневым DOM рассказал Титус Фортнер – core contributor в Selenium и автор материалов о тестировании. С разрешения автора переводим его статью, дополнив наблюдениями из нашей практики. Материал может быть полезен всем, кто занимается автоматизацией UI-тестирования с помощью Selenium.

Читать далее

Как настроить Pipeline для Jenkins, Selenoid, Allure

Reading time5 min
Views23K

Проводя автотесты для скорости и надежности тестирования, в разработке и процессах CI/CD зачастую используют следующий стек технологий – Jenkins, Selenoid и Allure. Можно выделить несколько их преимуществ: у Jenkins это бесплатный доступ, большое количество возможностей и плагинов для расширения; у Selenoid – независимость окружений, каждый браузер запускается в отдельном контейнере; Allure, в свою очередь, в последние годы стал популярным инструментом для построения отчетов по результатам автотестов (подробнее об этом мы писали в прошлой статье). При этом информации о том, как эти инструменты можно сочетать, до сих пор достаточно мало, и мы хотим поделиться своим примером.

Читать далее

Ускоряем работу с тестовой документацией. Экспорт данных из Allure-отчета в Confluence

Reading time7 min
Views6.6K

Для того чтобы ускорить тестирование крупных приложений, как правило, проверки вручную сочетают с автотестами. После их прогона SDET-специалисты разбирают успешные и «упавшие» тесты – их нужно проверить вручную и зафиксировать результаты, например, в Confluence.

Рассмотрим на примере, как можно ускорить экспорт этих данных, если вы работаете с некоммерческой версией Allure Framework. При использовании Allure-EE такие доработки не нужны – информацию по ручному прохождению кейсов можно хранить в самих отчетах

Читать далее

Сбор требований онлайн: как аналитику найти подход к заказчику на удаленке

Reading time11 min
Views9.2K

Под влиянием пандемии IT-компании, как и их заказчики, адаптировали свои процессы разработки к удаленке. Одни предприятия постепенно вернулись в офисы, для других новый формат работы оказался не менее эффективным. Что это меняет в процессах, начиная с самого первого этапа – сбора требований? На удаленке у аналитика могут быть ограничены возможности для интервью и других привычных приемов.

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

В статье мы рассмотрим:

- что изменилось в воркфлоу сбора требований;

- в чем для аналитика плюсы и минусы онлайн-коммуникаций;

- и наконец, что с этим делать: как можно улучшить обратную связь и ограничения  удаленки обернуть в свою пользу. 

Читать далее

ACID. Что под капотом у транзакции

Reading time7 min
Views43K

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

Читать далее

Архитектура IT-проекта с Attribute-Driven Design

Reading time9 min
Views16K

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

Помимо разработки архитектуры, на старте требуется приблизительно оценить объем и стоимость проекта. Для этого мы в своей практике используем одну из проверенных методологий создания архитектуры ПО — Attribute-Driven Design (ADD). При этом мы опираемся на атрибуты качества того или иного IT-продукта. На их основе мы на этапе оценки (пресейла) создаём архитектурную концепцию системы

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

Читать далее

Всегда ли нужен ГОСТ при разработке крупных проектов?

Reading time8 min
Views8.4K

При написании требований к информационной системе (ИС), если она предназначена для госсектора или отдельных крупных предприятий, от подрядчика ожидают соблюдения ГОСТ 34 или 19. 

Даже частные компании могут требовать документацию по ГОСТу, считая, что следование стандартам гарантирует качество ПО. Однако, хотя такой подход обоснован в производстве мороженого и многих других продуктов, в IT-индустрии у него есть определенные минусы — и в статье мы рассмотрим их подробнее. 

Попробуем разобраться, почему вокруг ГОСТов сложилась такая ситуация и как можно выстроить работу с ними без ущерба для эффективности процессов. 

Читать далее

Десктопизация по-питоновски. Инструменты для создания автотестов

Reading time9 min
Views19K

Автоматизация тестирования – неотъемлемая часть процесса обеспечения качества. Мы в нашей практике чаще всего разрабатываем тесты для веб-, мобильных приложений и API, но сегодня хотим рассказать о более редком направлении – тестировании десктоп-приложений.

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

Читать далее

Machine Learning – не только нейронки

Reading time7 min
Views19K

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

Читать далее

Распознаем номера автомобилей. Разработка multihead-модели в Catalyst

Reading time5 min
Views6.5K

Фиксация различных нарушений, контроль доступа, розыск и отслеживание автомобилей – лишь часть задач, для которых требуется по фотографии определить номер автомобиля (государственный регистрационный знак или ГРЗ). 

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

Сделать модель для распознавания можно с помощью разных подходов, например, путем поиска и определения отдельных символов, или в виде задачи image-to-text. Мы рассмотрим модель с несколькими выходами (multihead-модель). В качестве датасета возьмём датасет с российскими номерами от проекта Nomeroff Net. Примеры изображений из датасета представлены на рис. 1.

Читать далее

Удаленка по новым правилам: 13 вопросов и ответов

Reading time6 min
Views6.1K

Как изменилась «удаленка» в 2021 году, после поправок в Трудовом кодексе – делимся нашим опытом. Как и многие в отрасли, мы остаемся на удаленке – для этого адаптировали к онлайну все процессы и взаимодействия в команде из 1000+ специалистов. Параллельно перестраиваем IT-офисы, вносим много изменений для будущей совместной работы. Рассмотрим правовой аспект и ответим на частые вопросы в статье, подготовленной нашей юридической службой.

Читать далее

Information

Rating
867-th
Location
Россия
Works in
Registered
Activity