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

Kotlin Best Practices

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

Kotlin, созданный всего 5 лет назад, с 2019 года считается приоритетным языком программирования под Android. И все же этот язык достаточно молод и продолжает развиваться, поэтому иногда бывает непонятно, каким образом лучше написать код. У нас в команде часто бывают обсуждения на тему чистого Kotlin-кода, и на их основе мы составили свои best practices. Хотим поделиться этими рекомендациями и ждем ваших вопросов.

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

Читать далее

Как найти подходящую абстракцию для работы со строками в Android

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

В своих проектах мы стараемся по мере необходимости покрывать код тестами и придерживаться принципов SOLID и чистой архитектуры. Хотим поделиться с читателями Хабра переводом статьи Hannes Dorfman – автора серии публикаций об Android-разработке. В этой статье описан способ, который помогает абстрагировать работу со строками, чтобы скрыть детали взаимодействия с разными типами строковых ресурсов и облегчить написание юнит-тестов. 

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

Читать далее

Оценка трудозатрат в веб- и мобильных проектах

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

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

Читать далее

Тестирование в Puppeteer vs Selenium vs Playwright: сравнение производительности

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

Ранее мы уже писали о том, когда бывает нужна автоматизация тестирования и какие проверки при этом используют. Сегодня предлагаем обсудить использование инструментов на практике и оценить их производительность. С разрешения Giovanni Rago – автора серии полезных материалов о тестировании – мы перевели его статью «Puppeteer vs Selenium vs Playwright: сравнение скорости» (Puppeteer vs Selenium vs Playwright, a speed comparison). Статья будет интересна тем, кто задумывается о выборе подходящего инструмента автоматизации в своих проектах.

Читать далее

Сентимент-анализ. Определяем эмоциональные сообщения на Хабре

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

Анализ тональности текста (или сентимент-анализ) – одна из задач, с которыми работают специалисты Data Science. С помощью такого анализа можно изучить массив сообщений и иных данных и определить, как они эмоционально окрашены – позитивно, негативно или нейтрально.

Рассмотрим, как это работает – проанализируем ряд статей на основании датасета Linis Crowd. Предлагаем определить, какие модели наиболее перспективны, например, для разработки всевозможных сервисов мониторинга. В качестве предметной области выберем статьи технического характера (например, на Хабре), что может быть полезно для реализации автоматического сбора мнений.

Читать далее

Как безболезненно мигрировать с RxJava на Kotlin Coroutines+Flow

Время на прочтение7 мин
Количество просмотров22K
Для выполнения асинхронных операций в Android-приложениях, где нужна загрузка и обработка любых данных, долгое время использовали RxJava — и о том, как перейти на RxJava 3, мы уже писали в нашем блоге. Сейчас на смену фреймворку постепенно приходят инструменты Kotlin — Coroutines+Flow. Актуальность этой связки подтверждается тем, что Google сделал Kotlin приоритетным языком для Android-разработки. 

Корутины позволяют тратить меньше системных ресурсов, чем RxJava. Кроме того, поскольку они являются частью Kotlin, Android предоставляет удобные инструменты для работы с ними — например, viewModelScope и lifecycleScope. В этой статье мы рассмотрим use cases, распространенные в Rx Java, и то, какие возможности вы получите при переходе на Flow.

Читать дальше →

Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android

Время на прочтение10 мин
Количество просмотров9.2K
Полнотекстовый поиск необходим в приложениях для того, чтобы быстро находить совпадения в большом объеме данных. Такая возможность удобна, например, для поиска товаров, фильмов, рецептов, научных статей, а также фрагментов текста в электронных книгах. Хотя зачастую поиск реализуют на сервере, иногда бывает необходимо работать в оффлайне, повысить отзывчивость мобильного приложения, избежав задержек при взаимодействии с сервером. В таких случаях используют полнотекстовый поиск — Full-Text Search.

В этой статье рассмотрим особенности полнотекстового поиска в Android с использованием FTS3, FTS4 и FTS5. Статья будет наиболее полезна для читателей, знакомых с Android и SQLite.

Читать дальше →

Как создавать гибкие списки: обзор динамического UICollectionView – IGListKit

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

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

Читать дальше →

Тестируем комплементарную кросс-энтропию в задачах классификации текста

Время на прочтение5 мин
Количество просмотров3.7K
Ранее в этом году И. Ким совместно с соавторами опубликовали статью [1], в которой предложили новую функцию потерь для задач классификации. По оценке авторов, с её помощью можно улучшить качество моделей как в сбалансированных, так и в несбалансированных задачах классификации в сочетании со стандартной кросс-энтропией.

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

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

Читать дальше →

Виды биометрии в мобильном приложении

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

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

Читать дальше →

5 мифов о тимлидах. Как стать тимлидом и избежать ошибок

Время на прочтение6 мин
Количество просмотров6.4K
Привет, Хабр! Один из «вечных» споров в IT – о том, как развиваться разработчику: прокачивать хардскиллы или навыки управленца? Если и вы задаете себе этот вопрос, давайте вспомним 5 известных мифов о работе тимлида – и конечно, сравним их с реальностью.
Читать дальше →

Big Stream: отвечаем онлайн, как стать разработчиком-сеньором и в чем прокачаться

Время на прочтение4 мин
Количество просмотров4K
Опытный разработчик, новичок, тимлид – что у них общего? Возможно, вопросы, которые все задают себе. Например, если вы разработчик – какие hard skills нужны, чтобы развиваться как Middle+, Senior, архитектор, тимлид, пресейл или ментор. Для начинающих – с чего именно стартовать и как расти в IT, выбирать между старыми и новыми инструментами.

Делимся примерами, какие этапы роста проходят разработчики и какие навыки, знания технологий, фреймворков, библиотек и языков нужны на каждом из них. Мы проводим Big Stream – трансляцию по 4 потокам: хард- и софтскилы, менеджмент и начало карьеры. Готовим 22 полезных мини-доклада. Если эти вопросы вам близки, приглашаем к обсуждению в Zoom.

«Иногда начинать новое дело, или даже пробовать новую роль – все равно что без карты идти в лес. Есть риск запутаться. Я думаю, что у каждого разработчика бывают моменты, когда хочется посоветоваться с коллегами о том, в чем прокачаться. В этом мы готовы помочь – подключайтесь в Zoom», – советует идеолог Big Stream, один из самых опытных менторов SimbirSoft Олег Власенко.

Читать дальше →

Как реализовать динамическую диаграмму для Vue на основе SVG

Время на прочтение5 мин
Количество просмотров6.2K
Бывает, что на сайте, в корпоративной IT-системе или другом ПО нужно отображать круговые диаграммы с какими-либо данными. Например, это может быть таймер для отсчета времени или индикатор, сколько товаров продано в той или иной категории. Если это статическое изображение, конечно, можно обойтись форматом svg, png или gif. Однако, зачастую нужно показать данные в динамике – например, для мониторинга или просто для привлечения внимания пользователей, для создания красивой анимации при загрузке сайта. Делимся примером, как можно построить диаграмму из элементов SVG с помощью JS и CSS.

Читать дальше →

31 октября приглашаем на офлайн-митап по тестированию HOT QA в Краснодаре

Время на прочтение1 мин
Количество просмотров873
Всем привет! Мы продолжаем серию митапов в Краснодаре по всем направлениям разработки. 31 октября приглашаем IT-специалистов, которые занимаются тестированием и обеспечением качества (QA), на наш офлайн-митап HOT QA с соблюдением всех мер безопасности.

Читать дальше →

Ближайшие события

29 октября приглашаем на онлайн-митап Hot Java

Время на прочтение1 мин
Количество просмотров1.5K
Всем привет! Если вы занимаетесь разработкой на Java и хотите обсудить кейсы из практики ─ подключайтесь к новому онлайн-митапу Hot Java! Наши разработчики представят несколько докладов, поделятся опытом и ответят на вопросы. Участие бесплатное, а самые интересные вопросы мы по традиции отметим подарками. Ждем вас!

Читать дальше →

C++: Коварство и Любовь, или Да что вообще может пойти не так?

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


“C позволяет легко выстрелить себе в ногу. На C++ это сделать сложнее, но ногу оторвёт целиком” — Бьёрн Страуструп, создатель C++.

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

Читать дальше →

Как мы использовали GraphQL в разработке на примере интернет-каталога

Время на прочтение6 мин
Количество просмотров5.3K
В этой статье мы делимся опытом реального применения GraphQL при создании интернет-каталога. Рассказываем о том, какие достоинства и недостатки этого языка запросов мы нашли при использовании стека GraphQL + Apollo Client, Next JS (SSR) + TypeScript.

Дисклеймер: мы не описываем подробно «магическую суть» и историю возникновения инструмента (об этом уже рассказано немало). Надеемся, что тем, кто уже знаком с GraphQL, окажется полезен наш практический опыт.

Читать дальше →

От тестировщика до QA. Как сократить путь в профессию на несколько месяцев

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

В 2020 году в пятерке самых востребованных ИТ-профессий – специалист по тестированию, или QA Engineer, по данным порталов для поиска работы. Рынок растет, и ИТ-компании активно формируют команды Quality Assurance.


В вузах тестирование преподают в рамках некоторых, но далеко не всех ИТ-специальностей. Поэтому в QA чаще всего приходят через онлайн-курсы или самообучение. Как правило, оба способа занимают не менее 12 месяцев. При этом вложенные время и деньги еще не гарантируют, что начинающий QA сможет сразу пройти собеседование и получить желаемую работу.


Можно ли развить навыки быстрее, не теряя в качестве? Этот вопрос встал перед нами особенно остро, когда все наши ежегодные ИТ-митапы и интенсивы пришлось переносить в онлайн. Делимся мнением, что должно быть в программе, чтобы качественно и при этом быстро сделать первые шаги в QA – в среднем за 3 месяца (или 60+ часов). Надеемся, что этот опыт пригодится всем, кто вовлечен в передачу знаний в QA, и ждем ваших откликов.


Зачем нам вулканец на борту: обзор Spock Framework

Время на прочтение12 мин
Количество просмотров9.9K
Автоматизация тестирования помогает постоянно контролировать качество IT-продукта, а также снижать затраты в долгосрочной перспективе. В автоматизации существуют различные подходы, например, Behavior Driven Development (BDD), разработка через поведение.

С этим подходом связаны инструменты cucumber, robot framework, behave и другие, в которых разделены сценарии выполнения и реализация каждой конструкции. Такое разделение помогает составить удобочитаемые сценарии, но требует значительных затрат времени и поэтому может быть непрактичным при написании реализации.

Рассмотрим, как можно упростить работу с BDD, используя подходящие инструменты – например, фреймворк Spock, который сочетает в себе красоту, удобство принципов BDD и особенности jUnit.

Читать дальше →

От монолита к микросервисам: ускорили банковские релизы в 15 раз

Время на прочтение7 мин
Количество просмотров10K
Бывает, что компания использует устаревшую монолитную IT-систему, с которой сложно быстро выпускать обновления и решать свои бизнес-задачи. Как правило, рано или поздно владелец продукта начинает проектировать новое, более гибкое архитектурное решение.

Недавно мы писали о том, как работают IT-архитекторы, а теперь расскажем подробности об одном из наших кейсов и покажем схему работы системы. В этом проекте мы помогли заменить «коробочное» банковское приложение на микросервисное ДБО, при этом наладив быстрый выпуск релизов – в среднем 1 раз в неделю.

Читать дальше →

Информация

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