Как стать автором
Обновить
74.85
Рейтинг

C# *

Объектно-ориентированный язык программирования

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Исключения среди исключений в .NET

Блог компании Аркадия Программирование *.NET *C# *

В свое время я случайно узнал, что исключения в моём горячо любимом языке C# — и, как следствие, во всем .NET — не все ведут себя одинаково. Причём, что ещё гораздо интереснее, далеко не все и не всегда могут быть обработаны и перехвачены. Что, казалось бы, полностью противоречит интуитивному восприятию конструкции try-catch-finally

Изучая этот вопрос, я находил всё новые и новые исключения среди исключений, которые оказывались «сильнее», чем конструкция try-catch-finally. К тому моменту, когда мой список вырос до 7 пунктов, я внезапно осознал, что нигде не было такого места, где можно было бы найти их все сразу. Максимум — 2 или 3 случая, рассмотренных в одной статье. 

Это и подтолкнуло меня к написанию данной статьи. 

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

Новости

Старое доброе ООП: решаем тестовое задание

Программирование *.NET *C# *


Да, это еще одна статья, вызванная к жизни все тем же тестовым заданием, про решение которого я уже писал. И которое, вообще-то, объективно не заслуживает такого внимания, но так получилось, что меня оно зацепило. Еще когда я разбирался с крутым решением этого задания во второй посвященной ему статье, меня никак не оставляла в покое мысль — а как решить его, чтобы, с одной стороны, не "на отвали" (как в исходной статье), а с другой — без монад и goto, как в крутом решении во второй статье. И тогда я вспомнил про старое доброе объектно-ориентированное программирование (ООП), про те далекие времена, когда я писал сервисы для Windows на Delphi и подумал: а не написать ли мне решение именно в духе того старого доброго ООП. Я подумал — и я написал. И как ненастоящий программист, не обязанный писать код по долгу службы, но пишущий код исключительно ради своего удовольствия, я решил поделиться и кодом, и удовольствием (если получится) с читателями.


Я не обещаю в этом решении сократить объем кода, используя крутые сторонние библиотеки, или увеличить его производительность крутой оптимизацией под JIT. Я просто хочу продемонстрировать, как можно решить эту задачу, используя старую добрую объектно-ориентированную парадигму, без монад и без goto, руководствуясь здравым смыслом (ну, и небольшим объемом знаний). И как при этом можно написать код — легко* читаемый (* — если вы привыкли использовать ООП) и легко расширяемый, без сторонних библиотек, и оптимизировать его чисто на алгоритмическом уровне, без помощи тонких настроек JIT.


Итак, кому интересно решение этого неинтересного тестового задания в духе старого доброго ООП, и кто не забыл ещё (но уже осилил), что означает ключевое слово virtual — добро пожаловать под кат.

Читать дальше →
Всего голосов 3: ↑1 и ↓2 -1
Просмотры 6.2K
Комментарии 13

Миллиард отправок в неделю и 730 тысяч запросов в минуту. Как справляемся с ежегодным удвоением и не унываем

Блог компании Mindbox .NET *C# *Agile *DevOps *
Четвертый ежегодный отчет о развитии разработки Mindbox по итогам черной пятницы — недели максимальной нагрузки.

Маркетинговая CDP — это не только коммуникации, приносящие значимую долю выручки, но и механики реального времени: расчет чеков, персонализация мобильных приложений и сайтов. Mindbox задуман и всё чаще работает как центральная back-end система бизнеса, интегрирующая другие. Так, например, выглядит схема интеграций одного из давних и продвинутых клиентов:

image

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

  • как справляемся с надежностью при росте нагрузке (кажется, неплохо);
  • что для этого уже сделали;
  • что будем делать дальше: планы по технике и продукту.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 1.9K
Комментарии 4

Польская нотация или как легко распарсить алгебраическое выражение

Программирование *Алгоритмы *C# *Математика *Processing *
Из песочницы

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

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

Книга «Изучаем C# через разработку игр на Unity. 5-е издание»

Блог компании Издательский дом «Питер» C# *Unity *Профессиональная литература
image Привет, Хаброжители! Изучение C# через разработку игр на Unity — популярный способ ускоренного освоения мощного и универсального языка программирования, используемого для решения прикладных задач в широком спектре предметных областей. Эта книга дает вам возможность с нуля изучить программирование на C# без зубодробительных терминов и непонятной логики программирования, причем процесс изучения сопровождается созданием простой игры на Unity.

В пятом издании изложены последние версии всех современных функций C# на примерах из игрового движка Unity, а также добавлена новая глава о промежуточных типах коллекций. Вы начнете с основ программирования и языка C#, узнаете основные концепции программирования на С#, включая переменные, классы и объектно-ориентированное программирование. Освоив программирование на C#, переключитесь непосредственно на разработку игр на Unity и узнаете, как написать сценарий простой игры на C#. На протяжении всей книги описываются лучшие практики программирования, которые помогут вам вывести свои навыки Unity и C# на новый уровень. В результате вы сможете использовать язык C # для создания собственных реальных проектов игр на Unity.
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 2.7K
Комментарии 7

Создание многопоточного сервера на C#

.NET *C# *Разработка под Windows *
Из песочницы

Данная статья предназначена для таких же новичков как и я. Вся информация в этой статье основывается на моем опыте создания одного единственного веб-сервера, который был создан в рамкам учебного проекта на 3 курсе по специальности 09.02.07 СПО.

Читать далее
Всего голосов 18: ↑4 и ↓14 -10
Просмотры 9.1K
Комментарии 72

Исследуем .NET 6. Часть 3. Рассматриваем код WebApplicationBuilder

.NET *C# *
Перевод

Часть 1. ConfigurationManager
Часть 2. WebApplicationBuilder

В предыдущем посте я сравнивал новый WebApplication с универсальным хостом. В этом посте я рассмотрю код, лежащий в основе WebApplicationBuilder, чтобы увидеть, как он обеспечивает более чистый, минимальный API хостинга, при этом обеспечивая ту же функциональность, что и универсальный хост.

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

4 года Q#

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

В этой статье мы решили собрать все самые важные новинки в языке Q# за этот год. Среди них Azure Quantum, QIR Alliance, Python и многое другое. Подробности под катом.

Здесь вы можете увидеть все примечания к выпускам за год.

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

Dependency Injection в .NET на почтальонах

.NET *C# *
Из песочницы

Наверное, все сталкивались с таким паттерном проектирования, как Inversion of control(IoC, инверсия управления) и его формой - Dependency Injection (DI, внедрение зависимостей). .NET и, в частности, .Net Core предоставляют этот механизм «из коробки». Очень важным моментом является такое понятие, как Lifetime или, время существования зависимости.
Давайте немного подробней разберемся, какие типы зависимостей бывают, какое время их существования и в чём различия.

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

Немного о собеседованиях с позиции .net разработчика

.NET *C# *Карьера в IT-индустрии

В поисках работы я прошел 20 собеседований и теперь хотел бы поделиться субъективным мнением на этот счет.

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 11K
Комментарии 24

Immutype упростит работу с неизменяемыми типами данных

.NET *C# *

При работе с неизменяемыми типами данных, такими как readonly struct, нам часто приходится писать методы, которые создают копию объекта, изменяя определенное свойство или поле. Такие методы позволяют сделать код чище и проще, обеспечивая неизменяемость. Но почему бы не переложить эту скучную работу на генератор кода?

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

Третья проверка Umbraco статическим анализатором PVS-Studio

Блог компании PVS-Studio CMS *.NET *C# *

6 лет назад была написана первая статья про проверку проекта с помощью анализатора PVS-Studio для C#. Мы решили оглянуться назад и вновь вернуться туда, откуда всё начиналось – к анализу исходного кода Umbraco CMS.

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

Контент с .NET Conf 2021 — видео, презентации, демонстрации и многое другое

Блог компании Microsoft Программирование *.NET *Visual Studio *C# *

.NET Conf 2021 была крупнейшей .NET Conf когда-либо с более чем 80 сессиями от докладчиков со всего мира! Мы хотим сказать огромное спасибо всем, кто выступил в прямом эфире, задавал вопросы в ленте Twitter и участвовал в интерактивах. Смотрите повторы сессий и следите за репозиторием нашей конференции на GitHub, где мы собираем все слайды и демонстрации от докладчиков. Подробности под катом.

Читать далее
Рейтинг 0
Просмотры 1.8K
Комментарии 0

Исследуем .NET 6. Часть 2. WebApplicationBuilder

.NET *C# *
Перевод

В этой серии статей я собираюсь взглянуть на некоторые из новых функций, которые появились в .NET 6. Про .NET 6 уже написано много контента, в том числе множество постов непосредственно от команд .NET и ASP.NET. Я же собираюсь рассмотреть код некоторых из этих новых функций.

Часть 1. ConfigurationManager

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

Исследуем .NET 6. Часть 1

.NET *C# *
Из песочницы
Перевод

В этой серии статей я собираюсь взглянуть на некоторые из новых функций, которые появились в .NET 6. Про .NET 6 уже написано много контента, в том числе множество постов непосредственно от команд .NET и ASP.NET. Я же собираюсь рассмотреть код некоторых из этих новых функций.

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

Pinned Object Heap в .NET 5

.NET *C# *
Перевод

Эта небольшая статья Конрада Кокосы дополняет опубликованный неделей ранее перевод «Внутреннее устройство Pinned Object Heap в .NET». В этом материале Кокоса подходит немного ближе к практике, рассказывая об API, используемом для выделения объектов в POH, сравнивая его с закреплением объектов в SOH и LOH, и не забывая упомянуть об ограничениях.

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

У Unity всё плохо

Программирование *Разработка игр *C# *Unity *
Из песочницы

На просторах интернета, и в частности хабра, очень трудно встретить статьи с критикой игрового движка Unity. Я решил это исправить, и приготовил вам текст о переходе на DOTS, насилию над C#, знаменитых UI пакетах, MonoBehaviour, универсальности и о многом другом.

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

Читать далее
Всего голосов 91: ↑83 и ↓8 +75
Просмотры 71K
Комментарии 166

GraphQL: как сделать бэкенд приложения экономнее и быстрее

Блог компании Россельхозбанк .NET *API *C# *

Самый распространённый стандарт для обмена информацией внутри приложений — это REST API. Его все любят, но знают, что он не идеален. В этой статье обсудим его альтернативу — GraphQL. Мы расскажем, в чём преимущество GraphQL, как выглядят запросы и с чего начать.

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

Производительность Unity C#: советы и приемы

Блог компании Издательский дом «Питер» Программирование *Разработка игр *C# *Unity *
Перевод

С чем бы вы ни работали – ПК, мобильным устройством или консолью, наступит такой момент, когда вы захотите оптимизировать вашу игру. В этой статье приведено несколько советов о том, что нужно и чего не нужно делать, чтобы ваш код на Unity стал бегать немного быстрее.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 5.4K
Комментарии 14

Разделяй и властвуй: детерминированный и скриптованный Match-3 движок

Блог компании MY.GAMES Разработка игр *C# *Игры и игровые консоли

Привет! Я Павел Щеваев, CTO студии BIT.GAMES, части MY.GAMES. Вы можете знать нас по таким играм, как «Гильдия Героев» и «Домовята» в Одноклассниках (да, это тоже были мы), а также по нашему текущему флагману Storyngton Hall — это классическая три-в-ряд с сюжетом в викторианском стиле. О нем-то и пойдет речь далее.

Когда я писал про тестовую ферму из Android-устройств, я не раз упоминал наш самописный детерминированный движок Match-3, благодаря которому и возникла возможность повсеместного покрытия игры тестами без ущерба для жизни и здоровья QA-команды.

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

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

Вклад авторов

Работа