Всем привет! Решил запустить канал по .NET-разработке. Зачем мне это нужно? В процессе работы появляются удачные решения, которыми хочется поделиться, упаковать их в удобный формат и, возможно, обсудить дополнительно. Часто задают одни и те же вопросы, ответы на которые можно заранее тщательно подготовить, подробно расписать и затем просто давать на них ссылку.
Что здесь будет? Удачные практики, хорошо показавшие себя в коммерческих проектах, а также неудачные кейсы с описанием проблем и их последствий. Интересные теоретические моменты которыми я хотел бы поделиться. Возможно, немного лайф-контента — красивые фотографии из путешествий, чтобы разбавить текстовые посты.
Что здесь будет? Удачные практики, хорошо показавшие себя в коммерческих проектах, а также неудачные кейсы с описанием проблем и их последствий. Интересные теоретические моменты которыми я хотел бы поделиться. Возможно, немного лайф-контента — красивые фотографии из путешествий, чтобы разбавить текстовые посты.
🔥3👍1
Кастомизация Visual Studio с помощью расширений
В своих проектах я стараюсь использовать sealed классы. Во-первых, я стремлюсь не применять наследование классов и sealed классы дополнительно указывают на это. Во-вторых, sealed классы могут немного повысить производительность.
Для новых классов я создал шаблон (class template) для Visual Studio. Возможно, об этом я напишу в одном из следующих постов. Для уже существующего кода мне требовалось решение для подсветки и автоматической замены на sealed. Я не нашёл способа настроить .editorconfig для этой задачи, поэтому решил создать собственный плагин для Visual Studio. К тому же у меня не было подобного опыта.
На создание плагина у меня ушло несколько часов — я ориентировался на статью How to write a Roslyn analyzer, а также использовал GitHub Copilot. Затем около часа потребовалось на регистрацию и публикацию расширения в маркетплейсе. О том, как это сделать, можно прочесть в статье Walkthrough: Publishing a Visual Studio Extension.
В целом, создавать собственные расширения для Visual Studio оказалось не так сложно. Исходный код моего расширения можно найти в репозитории GitHub. У меня есть ещё много идей для будущих расширений. Для более глубокого погружения рекомендую книгу Visual Studio Extensibility Development автора Rishabh Verma.
В своих проектах я стараюсь использовать sealed классы. Во-первых, я стремлюсь не применять наследование классов и sealed классы дополнительно указывают на это. Во-вторых, sealed классы могут немного повысить производительность.
Для новых классов я создал шаблон (class template) для Visual Studio. Возможно, об этом я напишу в одном из следующих постов. Для уже существующего кода мне требовалось решение для подсветки и автоматической замены на sealed. Я не нашёл способа настроить .editorconfig для этой задачи, поэтому решил создать собственный плагин для Visual Studio. К тому же у меня не было подобного опыта.
На создание плагина у меня ушло несколько часов — я ориентировался на статью How to write a Roslyn analyzer, а также использовал GitHub Copilot. Затем около часа потребовалось на регистрацию и публикацию расширения в маркетплейсе. О том, как это сделать, можно прочесть в статье Walkthrough: Publishing a Visual Studio Extension.
В целом, создавать собственные расширения для Visual Studio оказалось не так сложно. Исходный код моего расширения можно найти в репозитории GitHub. У меня есть ещё много идей для будущих расширений. Для более глубокого погружения рекомендую книгу Visual Studio Extensibility Development автора Rishabh Verma.
Моя одна из любимых тем — это создание надёжных и отказоустойчивых приложений, поэтому я не мог не поделиться этим видео Антология технологий Яндекс Такси. Надёжность сервиса.
Основные моменты для разработчиков:
Изоляция точек отказа (1:53) — по этой теме я в ближайшее время напишу отдельный пост. Думаю, я ещё неоднократно буду освещать этот вопрос.
Фолбэк (13:15) и Деградация (14:14) — позволяет отключать дополнительные сервисы, чтобы снизить нагрузку на систему.
Дополнительная нагрузка "виртуальными заказами" прямо на проде (7:25) — казалось бы, мы тестируем систему в реальном окружении и можем её «положить», но, в отличие от реальных заказов, виртуальные заказы можно быстро отключить для восстановления нормальной работы.
Очень крутая практика — симуляция инцидентов (9:44) и тренировка навыков их решения. Она также позволяет понять, насколько хорошо у нас налажены мониторинг и логирование. В идеале логи и графики должны быть такими, чтобы дежурный специалист из отдела мониторинга, который никогда не видел наш код, смог понять логи и при необходимости отключить сломанный сервис, а также предпринять другие меры.
Основные моменты для разработчиков:
Изоляция точек отказа (1:53) — по этой теме я в ближайшее время напишу отдельный пост. Думаю, я ещё неоднократно буду освещать этот вопрос.
Фолбэк (13:15) и Деградация (14:14) — позволяет отключать дополнительные сервисы, чтобы снизить нагрузку на систему.
Дополнительная нагрузка "виртуальными заказами" прямо на проде (7:25) — казалось бы, мы тестируем систему в реальном окружении и можем её «положить», но, в отличие от реальных заказов, виртуальные заказы можно быстро отключить для восстановления нормальной работы.
Очень крутая практика — симуляция инцидентов (9:44) и тренировка навыков их решения. Она также позволяет понять, насколько хорошо у нас налажены мониторинг и логирование. В идеале логи и графики должны быть такими, чтобы дежурный специалист из отдела мониторинга, который никогда не видел наш код, смог понять логи и при необходимости отключить сломанный сервис, а также предпринять другие меры.
YouTube
Антология технологий Яндекс Такси. Надёжность сервиса
В новой серии «Антологии технологий» рассказываем про отказоустойчивость — основное свойство системы такси, которое позволяет приложению работать 24/7.
Как сделать так, чтобы сервис справлялся с любыми нагрузками даже в праздники? Для этого есть множество…
Как сделать так, чтобы сервис справлялся с любыми нагрузками даже в праздники? Для этого есть множество…
👍2
Вот и завершился мой отпуск... Это была моя вторая поездка в Майами (впервые я побывал здесь в 2022 году) и пока для меня это самое комфортное место для отдыха. В этот раз я впервые посетил Ки-Уэст — самую южную точку США. Остался под большим впечатлением и обязательно сюда вернусь.
🔥4👍1