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

Возможности С++: от стандартных алгоритмов до диапазонов (Ranges)

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

Привет, Хабр! Меня зовут Николай, я разработчик С++ в SimbirSoft. В предыдущей статье мы с вами рассмотрели применение стандартных алгоритмов в повседневном коде и их преимущества над обычными циклами. В продолжение этой темы мне хотелось бы рассказать о недостатках стандартных алгоритмов и способах их решения с помощью библиотеки Ranges. Практические примеры я разбил на три части: в первой показаны обычные циклы, во второй — вариант написания с помощью алгоритмов (но не всегда можно это сделать), в третьей – с использованием Ranges. Этот материал будет полезен тем разработчикам, которые хотят применять новые стандарты и подходы у себя на проектах.

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

Создавай и упрощай: оптимизируем Android-приложение с видеоконтентом

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

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

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

Меня зовут Рустам и я Android‑разработчик в компании SimbirSoft. Рекомендую свою статью тем, кто сталкивается с видеоконтентом на проектах, и кому хотелось бы оптимизировать свою работу с ним. Я рассказал о таких методах на примере стандартных инструментов из библиотеки ExoPlayer, поэтому у middle‑разработчиков и выше не должно возникнуть трудностей.

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

Глубокое погружение в CancellationToken: эффективное управление отменой в .NET

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

Привет, Хабр! Меня зовут Давид, я C#-разработчик в SimbirSoft. В современном программировании эффективное управление ресурсами и контроль за выполнением задач становятся ключевыми аспектами для создания надежных и масштабируемых приложений. В C# одним из важнейших инструментов в для достижения этих целей является механизм Cancellation Token. Эта концепция позволяет разработчикам изящно и безопасно управлять долгосрочными или ресурсоемкими операциями, обеспечивая возможность их отмены по требованию.

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

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

Квест на Node.js — борьба с утечкой памяти. От диагностики до решения

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

Всем привет! Меня зовут Артём и я backend-разработчик компании SimbirSoft. На протяжении восьми лет я работаю на Node.js. Сегодня хочу поделиться опытом поиска утечек памяти при gRPC-вызовах в Node.js + Nest.js. В частности, речь пойдет об отладке утечки памяти при взаимодействии между микросервисами. Статья будет полезна backend-разработчикам, которые работают с Node.js и gRPC.

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

Одной из задач, которую ставил перед нами клиент,  был поиск и устранение утечки памяти при работе микросервисов. Задача была открыта уже давно, но не было четкого понимания, как ее решать. Судя по описанию, было несколько API, при вызове которых отделы DevOps и QA наблюдали сильный рост памяти при мониторинге системы и тестировании соответственно. В дополнении к REST API присутствовали gRPC-методы.

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

NLP, Catboost и тематическое моделирование: создаем модель для прогнозирования цен с использованием новостей

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

Привет, Хабр! Меня зовут Иван, я Data Science специалист SimbirSoft. Я расскажу, как на одном из проектов мы занимались прогнозированием на месяц вперед с помощью методов NLP, Catboost и тематического моделирования на новостном потоке.

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

К нам обратился заказчик, который занимается продажами удобрений. Ему необходимо было протестировать различные подходы к прогнозированию цен на удобрения. Нашей задачей стало построить бейзлайн-модель и оценить, насколько перспективен подход с использованием новостей. Заказчик хотел, чтобы мы оценили предсказательную силу именно новостей, поэтому мы не использовали признаки из самого временного ряда цен (лаги/сезонность/тренд) и признаки, связанные с рынком.

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

Prompt-engineering: чем полезен SDET-специалистам, или Как оставаться востребованным на рынке в эпоху ИИ

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

Нейросети и искусственный интеллект (далее ИИ) развиваются стремительными темпами, и у многих SDET-специалистов появляются опасения о потере работы. И действительно, список задач, которые уже сегодня может выполнить чат-бот, впечатляет.

Подготовка тестовых данных занимает много времени? ИИ сгенерирует для ваших тестов данные любой сложности и в любых форматах.

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

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

Учитывая перечисленное, может ли ИИ заменить человека в профессии или снизить востребованность SDET-специалистов на рынке? 

Привет! Меня зовут Дария, я SDET-специалист в компании SimbirSoft и недавно задалась этим вопросом. Как известно, лучший способ познакомиться с новыми технологиями и инструментами — «потрогать их руками», чем я и занялась.

В этой статье хочу поделиться результатом своего исследования. 

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

Оптимизация Go: как повысить скорость и эффективность кода

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

Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность, он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт.

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

Мы начинаем!

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

Почему JOOQ — идеальный инструмент для работы с БД при интеграционном тестировании API

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

Привет! Меня зовут Евгений, я SDET-специалист в SimbirSoft. Хочу поделиться примером того, как я автоматизировал тестирование API, заменив встроенные JDBC-средства на JOOQ. И расскажу, почему считаю это лучшим решением.

Все началось с того, что передо мной поставили задачу автоматизировать тестирование API с проверкой данных в БД. Так как проект только начинался, а я один отвечал за эту часть работы, то надо было сделать всё с нуля. Мне хотелось сделать все идеально (удобно, понятно, масштабируемо, с удобной поддержкой кода). Получилось все, кроме одного — масштабирование сверки данных из БД. Об этом и пойдет речь. А в конце вы найдете ссылку на исходный код.

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

Как работать с MassTransit и RabbitMQ: реализуем RPC с Saga и без

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

Привет, Хабр! Меня зовут Евгений, я backend-разработчик SimbirSoft. В этой статье я разберу два варианта решения нетривиальной задачи создания RPC через брокер сообщений RabbitMQ и библиотеку MassTransit. Подробно разберём подключение MassTransit и работу с Saga. Тема будет полезна как для начинающих, так и опытных backend-разработчиков .NET.

🚌 Поехали!
Всего голосов 2: ↑2 и ↓0+4
Комментарии1

Мастерим многопоточность: техники и инструменты для Java-разработчиков. Часть 1

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

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

Меня зовут Влад, я Java-разработчик в компании SimbirSoft. Надеюсь, что моя статья будет полезна как начинающим, так и продвинутым Java-специалистам, которые заинтересованы в прокачке своих знаний для успешной подготовки к собеседованиям на боевые проекты.

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

Какие бывают аналитики: 10 ролей и еще 3

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

Привет, Хабр! Меня зовут Николай, я аналитик компании Simbirsoft. Мне довелось участвовать во многих проектах, и на каждом из них заказчики понимали задачи и роль аналитика по-своему. Поэтому вопрос ролей аналитика на проекте —  мои личные кровь и пот боли: часто в одном лице хотят видеть и разработчика, и продвинутого тестировщика с пониманием процессов автотестирования, и многое-многое другое. Тем не менее, многие требования находят отражение в навыках и интересах аналитика, но эти требования ещё нужно правильно сформулировать при поиске.

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

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

Иными словами, типология ролей аналитиков призвана предотвратить расхождение интересов специалиста и клиента. Я нередко наблюдал ситуации, когда запросы клиентов не отражали полный список требований, ожидаемых от специалиста на самом деле. Например, при обсуждении выяснялось, что вместо системного аналитика для разработки ТЗ требовался аналитик 1С. Или от аналитика-джуниора по умолчанию ожидались навыки по разработке взаимодействия конкретных систем, довольно редких в отрасли. При этом я не беру в расчет обычные проблемы обычного системного аналитика, когда приходится погружаться в незнакомую предметную область или принимать дела в самом разгаре проекта. 

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

Как я написал свой первый классификатор эмоций

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

Всем привет! Немного о себе. Меня зовут Максим, я работаю специалистом по Machine Learning в компании SimbirSoft. Последние два года я углубленно изучал область машинного обучения и компьютерного зрения и сегодня с удовольствием поделюсь с вами опытом разработки личного пет-проекта.

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

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

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

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

«Ревизорро» в IT: тестируем суммаризацию текста в GigaChat и YandexGPT

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

После появления на рынке API для беседы с ChatGPT 3.5 каждый второй заказчик решения на основе машинного обучения (ML) хочет внедрить у себя ИИ, который может красиво и содержательно общаться на русском языке.

Меня зовут Екатерина, я IT-архитектор команды SimbirSoft, специалист по ML и поклонница всего, что связано с обработкой текстов на естественном языке (NLP). Сегодня будем разбираться в тонкостях решения одной из популярных на рынке задач – автоматического составления аннотаций. Для эксперимента мы использовали две GPT-подобных модели, «заточенных» на русский язык:  GigaChat и YandexGPT. Заявленный потенциал систем тестировали на текстах трёх жанров: научном, научно-популярном и художественном. Что из этого получилось, расскажем в статье.

Материал будет полезен тем, кто следит за тенденциями развития машинного обучения на рынке и в целом интересуется внедрением больших языковых моделей (LLM) в ML-проектах – для оценки их возможностей «из коробки».

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

Привычка быть SOLIDным разработчиком

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

Привет, Хабр! Меня зовут Грант, я уже 5 лет занимаюсь backend-разработкой в SimbirSoft, а с 2021 года возглавляю Backend-отдел компании в Краснодаре. В последние несколько лет неоднократно замечаю, что на входном интервью соискатели часто путают принципы разработки. Поэтому в этой статье решил разобрать, как проще их понимать, какие связи между ними прослеживаются, стоит ли учить все или что-то можно пропустить. А еще попробую раскрыть некоторые особенности, какие секреты скрывают популярные принципы разработки.

Погрузиться 👀
Всего голосов 15: ↑12 и ↓3+11
Комментарии5

Применяем стандартные алгоритмы в C++. Семь примеров

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

Привет, Хабр! Меня зовут Николай, я разработчик С++ в SimbirSoft. В этой статье я хочу поделиться своим опытом применения алгоритмов. 

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

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

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

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

Быстрый старт, или Как ускорить запуск iOS-приложений

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

Всем привет! Меня зовут Фируза, я iOS-разработчик в компании SimbirSoft. В этой статье мы попробуем разобраться, как ускорить запуск приложения, а именно:

что происходит от момента нажатия на иконку приложения до представления возможности пользователю взаимодействовать с UI;

как собрать актуальные метрики скорости запуска и отзывчивости приложения; 

какие тактики применить, чтобы ускорить старт и отзывчивость запуска.

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

Ускориться ?
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

Как использовать ChatGPT для разработки и учебы. Четыре сценария

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

Привет, Хабр! В 2023 году искусственный интеллект (далее ИИ)  вышел на тот уровень популярности, когда о нем не говорил только ленивый. Все больше компаний активно начали обсуждать свои разработки в этой области, а такие модели как Midjourney, ChatGPT, Gemini (ex-Bard), Bixby и другие стали общедоступными.

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

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

Хватит маппить все руками, используй Mapster

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

Привет, Хабр! Меня зовут Георгий, я С#-разработчик в SimbirSoft. Хочу рассказать об опыте использования библиотеки Mapster: как он может упростить разработку, сэкономить силы и частично избавиться от рутины маппинга.

Данная статья подойдет и тем, кто только собирается открыть для себя мир автомаппинга, и тем, кто хочет найти для себя альтернативу используемой библиотеки. Для полного понимания, что тут будет происходить желательно обладать базовым пониманием C#, знать о существовании DI и подозревать, что рефлексия не так проста, как кажется.  Ну и LINQ с EF.Core, куда же без них (хотя про них достаточно просто когда-то слышать и примерно представлять, зачем они нужны).

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

Автоматизируем проверку содержимого PDF-файлов с помощью pdf-test

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

Многие сервисы в различных отраслях генерируют печатные формы счетов, отчётов и прочего в формате PDF. И, конечно, перед специалистами тестирования встаёт вопрос о проверке этих документов.

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

В этой статье мы познакомим вас с инструментом, который достаточно просто может закрыть потребность в проверке содержания PDF-файлов. Это инструмент с открытым исходным кодом — pdf-test. Он по сути является обёрткой pdfbox и позволяет из коробки использовать основные мэтчеры, не задумываясь о том, чтобы писать свои или о том, как именно парсить документ. Рассмотрим далее его применение на языке Java.

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

Спутник как IT-проект. Что нужно разработчику для создания и запуска своего кубсата

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

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

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

🚀 Три, два, один — пуск!
Всего голосов 12: ↑12 и ↓0+12
Комментарии9
1
23 ...

Информация

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