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

ThreadPool. async/await

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

А вы никогда не задумывались, что async и await выглядят как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и таких модификаторов, кроме как в методах, работающих с Task и Task<T>.

А ещё интересно, сколько вообще стоит пользоваться async/await? И когда можно (нужно?) обходиться без них?

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

yield return

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

А вы никогда не задумывались, что yield return выглядит как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и такой инструкции, кроме как внутри методов, возвращающих перечисление.

А ещё интересно, сколько же на самом деле стоит перечислять элементы с помощью yield return? И можно ли лучше?

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

Пародия на замыкания

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


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

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

Несите трубы! Как мы строили пайплайн ML-эксперимента

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

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

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

ThreadPool.Intro

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

Тема тредпула, скажем так, complex and hard. У меня в жизни было два «осознания», когда я гордо говорил себе — вот теперь-то я точно понял, как устроен и как работает тредпул в дотнете! Впрочем, после второго раза я неоднократно осознавал, как же я ошибался.

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

Пришло время пересмотреть структуру проектов на .NET

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

C релизом .net 6 у нас появился новый упрощенный подход для быстрого создания сервисов  Minimal APIs. Эта статья появилась потому, что с новым подходом появились новые вопросы, связанные с организацией кода внутри проекта.

Это — немного вольный перевод статьи "Maybe it's time to rethink our project structure with .NET 6" от Tim Deschryver про подход к созданию сервисов с помощью Minimal APIs, который может помочь нам сделать архитектуру приложения более чистой, простой и легкой в поддержке и развитии.

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

Как Контур меняет стандарты обучения разработчиков и работает с ними

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

В Екатеринбурге есть Уральский Федеральный Университет (УрФУ), а в нем направление фундаментальной информатики и информационных технологий (ФИИТ), на котором готовят разработчиков. С 2019 года Контур совместно с IT-сообществом региона меняет, развивает и поддерживает это направление.

Здесь сократили количество обязательных математических дисциплин, позвали разработчиков читать лекции и дали студентам самим выбирать предметы для изучения.

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

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

Инструменты анализа эффективности работы приложения. PerfView

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

Иногда приходится разбираться, почему .NET приложение работает "плохо". Не так, как мы ожидали. Тупит, медленно работает, зависает, запросы «не исполняются», утекает память или потребляется слишком много CPU.

Есть множество способов, как разбираться в таких ситуациях. Сегодня мы немного обсудим, что это за способы. Когда и какой способ нужно использовать. И более детально рассмотрим один из инструментов: PerfView.

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

Сказка про Method as Parameter

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

Наверняка вы вызывали методы в C#. И казалось бы, что тут может быть интересного. Но тут есть о чем поговорить, есть что интересного рассказать.

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

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

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

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


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


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


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


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


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

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

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

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

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

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

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

.NET 6: PriorityQueue

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация

Сайт
tech.kontur.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия
Представитель
Варя Домрачева