Как стать автором
Обновить
86
22

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

Отправить сообщение

Из MS Azure в on-premise. Особенности одного «заземления» табулярной модели SSAS

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

Привет, Хабр! Меня зовут Николай, я DBA-разработчик SimbirSoft. В 2022 году многие мировые IT-гиганты дружно свернули свою деятельность и покинули старательно обустроенный под себя российский рынок. Клиенты быстро столкнулись с последствиями этих событий и вынуждены были искать альтернативные решения. Не будет преувеличением сказать, что наибольшему стрессу подвергались компании, использующие облачные решения. Стабильность их работы непосредственно зависела от провайдера в отношении обслуживания, обновлений и клиентской поддержки. Если провайдер прекращал  предоставлять качественные услуги, то это могло привести к значительным сбоям в работе клиента on-cloud сервиса. В интересах одного из них, пользователя Microsoft Azure Analysis Services (золотого стандарта современного IT), в течение почти 4-х месяцев наша небольшая проектная команда в срочном порядке решала задачу переноса критичной для бизнеса аналитической отчетности на привычный on-premise. 

Что нам необходимо было сделать: 

Подготовить новую инфраструктуру. 

Перенести, развернуть и адаптировать аналитическую модель.

Подтянуть данные из необходимых источников.

Перенести из MS Azure 15  бизнес-отчетов и запустить их в работу.

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

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

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

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

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

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

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

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

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

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

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

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

Суперклей 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

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

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

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

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

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

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

Интеграция с 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 мин
Количество просмотров18K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Восемь неочевидных вещей в шаблонах С++

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

Привет, я backend-разработчик IT-компании SimbirSoft Леонид. В этой статье расскажу про 8 нюансов, которые я обнаружил при изучении шаблонов С++. Честно признаюсь, что наткнувшись на некоторые из них, я был удивлен: «Хм, SFINAE есть, а слова нет?» или «А что, есть разница между шаблоном в шаблоне и шаблоном с двумя параметрами?».

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

Некоторые из примеров были описаны в cpp-referernce чуть ли не в самом первом абзаце, некоторые потребовали пошерстить stackoverflow, и в конце концов все есть в стандарте. Но кто учит язык по документации? У кого из нас не было такой ситуации: «Сейчас я код потыкаю, а там разберемся, что к чему». Так вот, сейчас пришло время узнать, как это работает и почему именно так. 

Читать далее
Всего голосов 22: ↑18 и ↓4+19
Комментарии5

Код на репите. Механизмы повторного использования кода: от элитного до простого

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

Привет! Меня зовут Грант, я .Net-разработчик. Знаете вы это или нет, но ваш код можно переиспользовать: будь то модуль, компонент или архитектура. Одни разработчики делают это осознанно, другие на уровне рефлексов. Повторное использование хорошего кода экономит время и другие ресурсы, позволяет применять лучшие практики на проектах, чтобы в итоге эффективнее решать бизнес-задачи.

Мне стало интересно разобраться, когда возможен code reuse, какие проблемы стоит предусмотреть, и какие ресурсы заложить при реализации проектов. Для этого я проанализировал более 30 источников, в том числе иностранных, и вспомнил свой личный опыт на проектах. Разберу классификации механизмов повторного использования и расскажу о своей, покажу примеры разных масштабов: от уровня нескольких операторов до уровня архитектуры.

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

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

Организация автоматического запуска автотестов с использованием Downstream pipelines в GitLab CI

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

Привет, Хабр! Меня зовут Андрей, я SDET-разработчик SimbirSoft. В практике CI/CD один из общепринятых стандартов — настройка автоматического запуска автотестов при деплое сервиса на стенды. То есть при запуске сборки мы сразу видим, как пройдут смоук-автотесты, и на основе отчета решаем, передавать сборку дальше QA-команде или дорабатывать. А скорость исправления ошибок критично важна для бизнеса.

Мы разберем автоматический запуск автотестов с использованием Downstream pipelines в GitLab CI на примере проекта с несколькими микросервисами.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация

В рейтинге
262-й
Откуда
Россия
Работает в
Зарегистрирован
Активность