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

Выбираем алгоритм, или Когда ждать уже невыносимо

Блог компании SimbirSoft JavaScript *Angular *ReactJS *VueJS *

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

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

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

Новости

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

Блог компании SimbirSoft Анализ и проектирование систем *

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

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

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

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

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

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

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

Проверь себя в Go

Блог компании SimbirSoft

Golang (Go), известный чуть менее 15 лет, входит в пятерку популярных языков на Stack Overflow. Порог входа относительно невысок, при этом язык хорошо показывает себя при реализации высоконагруженных проектов, хотя и имеет свои подводные камни. 

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

Читать далее
Всего голосов 26: ↑11 и ↓15 -4
Просмотры 2.5K
Комментарии 13

Реализуем чистую архитектуру на Flutter с cubit

Блог компании SimbirSoft Разработка мобильных приложений *Проектирование и рефакторинг *Dart *Flutter *

Соблюдать принципы чистой архитектуры – значит обеспечить удобство тестирования, поддержки и модернизации приложения. Понимание архитектуры и state management – это база, необходимая начинающему специалисту для успешной командной работы. В этой статье мы расскажем, как с помощью Cubit реализовать чистую архитектуру на примере стартового приложения Flutter – счетчика нажатий на кнопку. 

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

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

Блог компании SimbirSoft Тестирование IT-систем *SQL *Тестирование веб-сервисов *

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

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 5.4K
Комментарии 11

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

Блог компании SimbirSoft Анализ и проектирование систем *Проектирование и рефакторинг *

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

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

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

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

Flutter: открытие виджетов ключами

Блог компании SimbirSoft Разработка мобильных приложений *Dart *Flutter *
Перевод

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

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

А вы задумывались, когда нужно использовать ключ и что происходит “под капотом”? В этом руководстве мы найдем ответ, создав простое приложение для управления списком задач и отображения заголовков новостей. Вы узнаете:

- Какие бывают ключи и как они работают.

- Когда использовать ключ.

- Как работать с разными типами ключей

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

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

Блог компании SimbirSoft Анализ и проектирование систем *Управление разработкой *Управление продуктом *

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

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

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

Читать далее
Всего голосов 4: ↑0 и ↓4 -4
Просмотры 2K
Комментарии 15

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

Блог компании SimbirSoft Тестирование IT-систем *Python *Разработка под Windows *

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

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

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

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

Блог компании SimbirSoft Машинное обучение *

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

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

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

Блог компании SimbirSoft Python *Алгоритмы *Обработка изображений *Машинное обучение *

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

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

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

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

2d-графика в React с three.js

Блог компании SimbirSoft JavaScript *Программирование *ReactJS *

У каждого из вас может возникнуть потребность поработать с графикой при создании React-приложения. Или вам нужно будет отрендерить большое количество элементов, причем сделать это качественно и добиться высокой производительности при перерисовке элементов. Это может быть анимация либо какой-то интерактивный компонент. Естественно, первое, что приходит в голову – это Canvas. Но тут возникает вопрос: «Какой контекст использовать?». У нас есть выбор – 2d-контекст либо WebGl. А как на счёт 2d-графики? Тут уже не всё так очевидно.

Читать далее
Рейтинг 0
Просмотры 5.2K
Комментарии 4

То, чего нам так не хватало: Render Effect в Android 12

Блог компании SimbirSoft Разработка мобильных приложений *Разработка под Android *Дизайн мобильных приложений *

Иногда бывает нужно размыть задний план на экранах мобильного приложения, например в чате. Теперь это можно сделать всего парой строк кода. В Android 12 появился новый API Render Effect, который позволяет накладывать визуальные эффекты на Canvas или View. Этот API радует своей простотой и высокой скоростью отрисовки. Наибольший интерес представляет Render Effect для размытия (BlurEffect), но в этой статье мы затронем и остальные виды эффектов. Материал может быть полезен не только андроид-разработчикам, но и дизайнерам мобильных приложений.

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

Vue.js и слоистая архитектура: вынесение бизнес-логики в сервисы

Блог компании SimbirSoft JavaScript *Программирование *ООП *VueJS *

Когда нужно сделать код в проекте гибким и удобным, на помощь приходит разделение архитектуры на несколько слоев. Рассмотрим подробнее этот подход и альтернативы, а также поделимся рекомендациями, которые могут быть полезны как начинающим, так и опытным разработчикам Vue.js, React.js, Angular. 

В старые времена, когда JQuery только появился, а о фреймворках для серверных языков лишь читали в редких новостях, веб-приложения реализовывали целиком на серверных языках. Зачастую для этого использовали модель MVC (Model-View-Controller): контроллер (controller) принимал запросы, отвечал за бизнес-логику и модели (model) и передавал данные в представление (view), которое рисовало HTML. 

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

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 10K
Комментарии 24

Фоновая работа в Android: обзор возможностей WorkManager

Блог компании SimbirSoft Разработка мобильных приложений *Разработка под Android *

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 8.3K
Комментарии 5

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

Блог компании SimbirSoft Законодательство в IT Карьера в IT-индустрии IT-компании Удалённая работа

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

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

Как реализовать таб-бар с нестандартной кнопкой: CAShapeLayer и UIResponderChain

Блог компании SimbirSoft Разработка под iOS *Разработка мобильных приложений *

Привет, Хабр!

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

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

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

С чего начать изучение Flutter в 2021 году

Блог компании SimbirSoft Разработка мобильных приложений *Flutter *
Перевод

Как и многие мобильные разработчики, мы с нетерпением ждали презентации Flutter и теперь хотим поделиться с читателями Хабра переводом статьи Tadas Petra о том, как можно выстроить свое обучение, если вы хотите познакомиться с Flutter и кроссплатформенными приложениями в 2021 году. Кстати, мы подключились к созданию курса Flutter, и об этом тоже расскажем в конце статьи. Приглашаем прочитать или посмотреть видеоверсию!

2021 год обещает быть очень важным для Flutter. Комьюнити разработчиков продолжает стремительно расти, а 3 марта 2021 года состоялась презентация Flutter Engage. Это делает потенциал Flutter поистине огромным.

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

Читать далее
Всего голосов 16: ↑11 и ↓5 +6
Просмотры 9.3K
Комментарии 2

Kotlin Best Practices

Блог компании SimbirSoft Совершенный код *Разработка мобильных приложений *Разработка под Android *Kotlin *

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

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

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 8.4K
Комментарии 10

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

Блог компании SimbirSoft Разработка мобильных приложений *Проектирование и рефакторинг *Разработка под Android *Kotlin *
Перевод

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

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

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

Информация

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