Обновить
0
0

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

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

Анализ дампа: с чего начать

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

Всем привет! Меня зовут Виктор, и я программист. Восемь лет работаю в команде Т-Банка и все это время вместе с коллегами занимаюсь проектом «Т-Телефония». Моя команда разрабатывает сервисы, которые обеспечивают голосовую коммуникацию внутри и вне банка. 

Звонки — один из основных способов связи с нами, поэтому система критична для бизнеса с высоким требованием к доступности. Она обрабатывает более 2 млн звонков в день. Если происходит сбой в любой пользовательской системе и нашим клиентам плохо, количество звонков сразу увеличивается, а нагрузка на систему повышается в два-три раза.

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

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

Читать далее

Делегаты в C# подробнее

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели3.4K

Как они работают под капотом? Что именно происходит при "замыканиях", грамотное обращение со структурами при работе с делегатами.

На что нужно обращать внимание.

Читать далее

Проблемы при использовании разделенных запросов в Entity Framework Core 8

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели1.2K

Недавно во время обновления Entity Framework Core (далее — EFC) с версии 2 до версии 8 мы столкнулись с проблемами при использовании разделенных запросов. Эти проблемы могли оставить часть сотрудников без обедов. Спешу ими поделиться.

Читать далее

Транзакция, ACID, CAP теорема и уровни изоляций транзакций простыми словами

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели37K

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

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

Читать далее

Async/await в C#: концепция, внутреннее устройство, полезные приемы

Время на прочтение24 мин
Охват и читатели278K
Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использовать асинхронность в большинстве случаев нужно лишь знание синтаксиса и никаких других подробностей. Но если лезть вглубь, тема довольно объемная и сложная. Ее излагали многие, каждый в своем стиле. Есть очень много классных статей по этой теме, но все равно существует масса заблуждений вокруг нее. Постараемся исправить положение и разжевать материал настолько, насколько это возможно, не жертвуя ни глубиной, ни пониманием.


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

Сказ о том, как я за год решил более 600 leetcode задач

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели186K

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее

Насколько круто иметь свой сервер в комнате

Время на прочтение6 мин
Охват и читатели151K

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

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →

Упрощение сложной фильтрации в LINQ с помощью шаблона «Спецификация» и библиотеки XSpecification

Время на прочтение3 мин
Охват и читатели5.6K

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

Исходники традиционно на https://github.com/xumix/XSpecification, пакеты на Nuget.

Теперь к деталям: данная либа будет полезна, в первую очередь, для тех, кого есть большое количество бизнес-логики при фильтрации или множество параметров фильтрации. Как пример бэкенд для грида типа такого https://reactdatagrid.io/demo или фильтра типа такого https://i.imgur.com/Jw5UAFz.png.

Читать далее

Собеседование Golang разработчика (теоретические вопросы), Часть I

Время на прочтение14 мин
Охват и читатели203K

Как сейчас проходят собеседования на golang разработчика? Что спрашивают?

Читать далее

Мне было стыдно за свой интерпрайз-код настолько, что я сделал свой велосипед. За него стыдно меньше

Время на прочтение11 мин
Охват и читатели13K

image


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


Всё началось с того, что я рассказывал про проблематику проектирования приложений на .NET и ныл про нелёгкую жизнь в кровавом интерпрайзе. Затем я описал решение, которое сам придумал и реализовал — Reinforced.Tecture. То была теория, концептуальные рассуждения, визионёрство и снова нытьё. На этот раз о том, что на дворе 2020 год, а HKT в C# так и не завезли.


Сегодня я продемонстрирую свой подход в действии на примере простенького проекта и покажу профиты, которые он даёт: от сокращения количества кода до автоматизации тестирования и оригинального подхода к документации. Как советовал старина Торвальдс: "Болтовня ничего не стоит, покажите мне код".

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

Эволюция конфигурации .NET

Время на прочтение14 мин
Охват и читатели18K


Каждый программист представлял — ну или может хочет представить — себя пилотом самолета, когда у тебя есть огромный проект, к нему огромная панель датчиков, метрик и переключателей, с помощью которых можно легко настроить всё как надо. Ну, по крайней мере, не бежать самому поднимать шасси вручную. И метрики, и графики — это всё хорошо, но сегодня хочу рассказать про те самые тумблерочки и кнопочки, которые могут менять параметры поведения самолета, конфигурировать его.
Читать дальше →

Творческое использование методов расширения в C#

Время на прочтение5 мин
Охват и читатели14K
Привет, Хабр!

Продолжая исследование темы C#, мы перевели для вас следующую небольшую статью, касающуюся оригинального использования extension methods. Рекомендуем обратить особое внимание на последний раздел, касающийся интерфейсов, а также на профиль автора.


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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность