Как стать автором
Обновить
46
42
Artem Rovenskii @rip_m

Пользователь

Отправить сообщение

Медленная сборка кода с .NET Roslyn: как найти и устранить причину

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

.NET разработчики знают, что такое ждать сборки кода. Работать при этом невозможно: пока не увидишь, как обновится приложение, — не перейдешь к следующему шагу. А переключиться на другую задачу за это время не успеешь. Получается, если в день переписать код 5 раз, можно потерять полчаса при сборке, а то и больше.

Теперь на примере платформы автоматизации маркетинга Mindbox. Основное программное решение — это монолит на C#: несколько миллионов строк, 50 проектов, над которыми одновременно работают десятки команд. Даже сэкономленная при сборке минута выливается в кучу продуктивных человеко-часов. Поэтому, когда речь зашла о переходе всей компании на MacBook в будущем, мы решили выяснить, как это отразится на производительности.

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

Компиляция и запуск C# и Blazor внутри браузера

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

Введение



Если вы Web-разработчик и ведете разработку для браузера, то вы точно знакомы с JS, который может исполняться внутри браузера. Существует мнение, что JS не сильно подходит для сложных вычислений и алгоритмов. И хотя в последние годы JS cделал большой рывок в производительности и широте использования, многие программисты продолжают мечтать запустить системный язык внутри браузера. В ближайшее время игра может поменяться благодаря WebAssembly.


Microsoft не стоит на месте и активно пытается портировать .NET в WebAssembly. Как один из результатов мы получили новый фреймворк для клиенской разработки — Blazor. Пока не совсем очевидно, сможет ли Blazor за счет WebAssembly быть быстрее современных JS — фреймворков типа React, Angular, Vue. Но он точно имеет большое преимущество — разработка на C#, а так же весь мир .NET Core может быть использован внутри приложения.

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

ArrayPool<T>: подводные камни

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


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


Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>, stackalloc с поддержкой Span, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>.


В этой статье я расскажу о внутреннем устройстве реализаций ArrayPool<T> в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.

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

Как заработать на Bug Bounty

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

Меня зовут Алексей Гришин, я руководитель направления Bug Bounty VK. За 9 лет участия в программе по поиску уязвимостей на различных платформах мы накопили огромный опыт получения, проверки и оплаты самых разношерстных отчетов, поэтому в этой статье я хочу поделиться советами о том, как правильно написать отчет, чтобы его оплатили, и рассказать, что делать, если ваши ожидания по выплатам не совпали с реальностью. Добро пожаловать под кат.

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

Чему не учат разработчиков: советы для начинающих

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

Иногда меня спрашивают, как стать разработчиком? Сложно ли это, что для этого нужно, какой язык выбрать? Спрашивают друзья, родственники, знакомые. Далёкие от сферы информационных технологий или забросившие когда-то программирование и подумывающие о возвращении (читай дауншифтеры). Я не нашёл статьи, которую мог бы скидывать в таких случаях, и решил её написать. Здесь должна быть шутка про 14 конкурирующих стандартов, но как солдат не смеётся в цирке, так и программист не улыбается, говоря о конкурирующих стандартах.

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

Читать далее
Всего голосов 31: ↑21 и ↓10+16
Комментарии32

Ведьмаки цифрового мира: какой доход приносит охота за багами?

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

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

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

CancellationTokenSource и «утечки памяти»

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

Всем привет!

Я работаю в Тинькофф, в проекте «Тинькофф Телефония». Наша основная задача — организация IP-телефонии внутри компании и за ее пределами. В день через нас проходит несколько миллионов звонков. Всей этой кухней занимаются около 10 сервисов. 

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

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

В один прекрасный день терпение лопнуло, и мы с Женей Мишустиным и Кириллом Марковым накинулись на эту проблему: Женя с Кириллом ловили и анализировали дампы, а я занимался поиском причин такого поведения.

В этой статье хочу рассказать о том, какой интересный подводный камень таит в себе CancellationTokenSource и как это связано с нашими «утечками» памяти.

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

Как найти тему для выступления или статьи

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

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

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

API для Инвестиций, или Как написать торгового робота

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

На связи команда Тинькофф Инвестиций. В этой статье разберем, как клиенты с минимальными навыками программирования создают торговых роботов. Базой будет API брокера Тинькофф Инвестиций — Tinkoff Invest API. Добро пожаловать на борт!

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

IT's Tinkoff .NET Meetup в Томске и Нижнем Новгороде

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

Всем привет! Недавно мы провели два офлайн-митапа по .NET. Разработчики выступили с семью докладами — от рассказа о реальной стоимости операций под капотом платформы .NET до разбора межсервисных интеграций. Митапы прошли в Томске и Нижнем Новгороде — городах, где работают Центры разработки Тинькофф. 

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

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

Что нового в .NET 7?

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

Вышел .NET 7, а это значит, что можно вдоволь насладиться различными нововведениями и фишками. Расскажем про самые интересные улучшения: C# 11, контейнеры, производительность, GC и прочее.

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

Обзор нововведений в C# 11

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

C# 11 выходит уже совсем скоро, так что пора детально изучить новые особенности, которые появятся в языке. И хотя их немного, среди них есть довольно интересные: обобщённая математика, исходные строки, модификатор required, параметры типа в атрибутах и прочее.

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

Информация

В рейтинге
166-й
Работает в
Зарегистрирован
Активность