Как стать автором
Обновить
78.1
Рейтинг
Контур
Делаем веб-сервисы для бизнеса
Сначала показывать

MVI и State Machine — объединяем концепции. Визуализация и анализ диаграммы состояний в Android и KMM проектах

Блог компании Контур Open source *Программирование *Разработка мобильных приложений *Разработка под Android *


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


В итоге мы получаем конечный автомат.


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


Мы написали и выложили в опенсорс MVI-библиотеку на Kotlin — VisualFSM, которая умеет по исходному коду строить визуализацию вашей системы, что позволит быстрее понимать сложные бизнес-процессы, упрощать поиск ошибок, добавлять новую функциональность и проводить рефакторинг.


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

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

Повторение — мать выгорания: как «Контур» борется с рутиной

Блог компании Контур Управление продуктом *Управление персоналом *Карьера в IT-индустрии
Мегапроект

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

Давно пора положить этому конец. Сегодня, дорогие хабровчане, мы приветствуем вас в самой нерутинной статье про рутину. Четверо сотрудников компании «Контур» в четырёх разных форматах поделятся своими историями про борьбу с рутиной. Пристегните ремни и добро пожаловать под кат.

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

.NET 6: PriorityQueue

Блог компании Контур Программирование *.NET *Алгоритмы *

В .NET 6 появилась новая коллекция — PriorityQueue<TElement,TPriority>. До этого очереди с приоритетами уже были в .NET, но только в виде внутренних классов — они использовались под капотом разных механизмов в WPF, Rx.NET и в других частях фреймворка. 

Но в .NET 6 PriorityQueue стала новой коллекцией, которой теперь можно пользоваться из клиентского кода. Давайте посмотрим, что предлагает эта очередь, как она устроена внутри и насколько быстро работает. Под катом будет постепенное погружение: от примеров использования в коде к введению n-арные деревья.

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

Сказка про Guid.NewGuid()

Блог компании Контур Высокая производительность *Программирование *.NET *Алгоритмы *

C#. Guid.NewGuid(). Linux. Windows. Randomness or Uniqueness. RNG and PRNG. Performance. Benchmarking.

Цель нашей сегодняшней сказки — развлечься как следует. Детективная история в поисках потерянного перфоманса с красивым финалом и эффектным результатом непосредственно связана с набором слов из предыдущего абзаца.

Читать далее
Всего голосов 71: ↑69 и ↓2 +67
Просмотры 15K
Комментарии 33

Векторные пространства и поиск ближайших соседей на production

Блог компании Контур Программирование *Алгоритмы *Машинное обучение *Data Engineering *

Иногда при решении задач классификации необходимо применять алгоритм kNN в векторных пространствах. И если при обучении всё просто и знакомо, то при выводе в production люди сталкиваются с проблемами.

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

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

Делаем базу знаний для .NET разработчиков

Блог компании Контур Программирование *.NET *Карьера в IT-индустрии Конференции

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

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

Читать далее
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 8.7K
Комментарии 17

Как и зачем делать доклады?

Блог компании Контур Учебный процесс в IT Конференции Презентации

Всем привет, меня зовут Рома Неволин и я много занимаюсь докладами. Готовлю доклады, выступаю с докладами, делаю доклады, ищу докладчиков, ищу темы для докладов, а еще постоянно отвечаю на вопросы про доклады. А их всегда много.

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

На все эти вопросы я и отвечу под катом. С аргументацией, кучей примеров из разнообразных докладов и всякими полезными ссылками.

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

Как мы поучаствовали в ICFPC 2021 и что из этого вышло

Блог компании Контур Ненормальное программирование *Спортивное программирование *Программирование *Алгоритмы *

Одна старая академическая конференция, International Conference on Functional Programming, уже больше двадцати лет организует соревнование по программированию своего имени. 1 задание, 72 часа, участвуют команды произвольного размера. На этом ограничения все. Задача может быть любой, решения — тем более.

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

Под катом обзор контеста 2021 года и нашего участия в нем. А еще алгоритмы, теории, байки и разбор решений других команд.

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

Над чем задуматься перед тем, как брать ML-задачу в работу

Блог компании Контур Программирование *Машинное обучение *Data Engineering *

В Контуре мы решаем самые разные задачи с помощью машинного обучения: распознаем документы и ищем подделки паспортов, анализируем банковские транзакции, предсказываем вероятность банкротства компаний, классифицируем товары, автоматически отвечаем на вопросы в чате, развиваем собственный speech-to-text… и еще десятки проектов, которые привносят в продукты новые фичи или помогают оптимизировать процессы.

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

В этой статье я приведу ответы на вопросы, над которыми стоит задуматься в самом начале, если вдруг вам пришла в голову идея "прикрутить к проекту ML-фичу" (добавить ложечку Data Science / AI / другие модные названия).

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

Транспортный агент MS Exchange для защиты от вирусов и нежелательной почты

Блог компании Контур Информационная безопасность *Open source *Антивирусная защита *

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

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

Что происходит в Контуре в этот момент

Блог компании Контур Карьера в IT-индустрии Офисы IT-компаний IT-компании
Recovery mode

Гуляем с фотографом по новому офису Контура и заодно рассказываем о всяком, что в этом офисе происходит.

Читать далее
Всего голосов 29: ↑21 и ↓8 +13
Просмотры 11K
Комментарии 22

Как работать с иерархической структурой классов

Блог компании Контур Программирование *Машинное обучение *Data Engineering *

Задача классификации - одна из самых известных в машинном обучении. Очень многие проблемы, решаемые с помощью ML, так или иначе сводятся к классификации — распознавание изображений, например. И все выглядит просто и понятно, когда нам нужно определить объект в один из нескольких классов. А что если у нас не плоская структура из нескольких классов, а сложная разветвленная иерархия на 683 категории? Именно о таком случае мы сегодня и поговорим. Под катом - рассказ о том, зачем в задачах классификации нужны сложные иерархии и как с ними жить.

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

Как мы перестали проверять всё подряд одной задачей и ускорили проверку тестовых на стажировку

Блог компании Контур C# *Учебный процесс в IT Карьера в IT-индустрии

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

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 5.3K
Комментарии 31

От WPF к Авалонии

Блог компании Контур Программирование *.NET *Разработка под MacOS *Разработка под Windows *

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

Под катом мы разберем отличия Авалонии от WPF. Что нужно знать людям, переходящим с WPF на Авалонию? В чем преимущества нового фреймворка, а в чем его недостатки по сравнению с WPF?

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

Как Контур балансирует нагрузку в микросервисах

Блог компании Контур Высокая производительность *Системное администрирование *Программирование *IT-инфраструктура *

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

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

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

Вышел .NET 5. И что?

Блог компании Контур Программирование *.NET *C# *

Несколько недель назад вышел .NET 5. На сайте Microsoft можно найти подробный анонс со всеми изменениями, но главный вопрос для меня, как для разработчика — и что с того? Что мне с выхода пятого дотнета, как я могу его использовать, есть ли смысл переходить на новую версию прямо сейчас? На эти вопросы я постараюсь ответить дальше.


image

Читать дальше →
Всего голосов 44: ↑44 и ↓0 +44
Просмотры 59K
Комментарии 100

[Анонс] Advent of Code 2020: решаем вместе с разработчиками Контура

Блог компании Контур Ненормальное программирование *Спортивное программирование *Хакатоны Конференции

Декабрь — время предвкушения Рождества. На западе эти 24 дня даже имеют специальное название — адвент. Обычные люди в этот период покупают адвент-календари и скрашивают ожидание праздников конфетами. А разработчики придумали кое-что поинтереснее — Advent of Code!

Ну-ка, что там
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 4K
Комментарии 1

Авалония для самых маленьких

Блог компании Контур Программирование *.NET *Разработка под MacOS *Разработка под Windows *
Туториал
В свежем превью Rider, помимо прочего, появилась поддержка Авалонии. Авалония — это самый крупный .NET фреймворк для разработки кроссплатформенного UI, и его поддержка в IDE — отличный повод наконец разобраться, как писать десктопные приложения для любых платформ.

В этой статье я на примере простой задачи по реализации калькулятора покажу:

  • как управлять разметкой,
  • как связывать функциональность с компонентами,
  • как управлять стилями.


Читать дальше →
Всего голосов 43: ↑43 и ↓0 +43
Просмотры 17K
Комментарии 34

Анонс онлайн-митапа по .NET: три доклада о кроссплатформенных десктопных приложениях

Блог компании Контур .NET *C# *Конференции

Вы уже не ждали, а мы сделали. В этот четверг, спустя почти год после предыдущего митапа, мы проводим первую (надеюсь, среди многих ?) онлайн-встречу с тремя бомбическими докладами про кроссплатформенные десктопные приложения. Миша Романов рассмотрит всевозможные фреймворки для кроссплатформенных приложений и расскажет, как и зачем. Никита Цуканов потравит байки про разработку Avalonia — интероп с COM и автогенерированный CQRS прилагаются. А Саша Якунин расскажет о разработке библиотеки для отслеживания изменений в данных, которая позволяет делать real-time UI (как и другие штуки) действительно быстрыми.

Когда: 26 ноября в 17:00 (Мск)
Где: Ютуб-канал Контура

Давай подробности!
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.2K
Комментарии 4

ICFP Contest 2020 от идеи до воплощения. Как организовать контест и выжить

Блог компании Контур Ненормальное программирование *Спортивное программирование *Функциональное программирование *


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

Читать дальше →
Всего голосов 47: ↑47 и ↓0 +47
Просмотры 5.1K
Комментарии 13

Информация

Сайт
tech.kontur.ru
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия