Pull to refresh
59
0.4
Альберт @mynameco

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

Send message

Однобитный компьютер

Reading time6 min
Views39K

Картинка для привлечения внимания:

Внимание! Под катом много картинок!

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

Читать далее
Total votes 113: ↑112 and ↓1+111
Comments54

Интересные моменты в C# (boxing unboxing)

Reading time2 min
Views71K
В этой статье мы коротко пройдемся по малоизвестным особенностям boxing/unboxing.

Предыдущая статья о foreach
Предыдущая статья об Array

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

Тестовый код:
object box = (int)42;
long unbox = (long)box;

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

Правильный ответ:
object box = (int)42;
long unbox = (long)(int)box;

Обычно это считается правильным ответом, но это не совсем так…
Читать дальше →
Total votes 40: ↑29 and ↓11+18
Comments10

Анализ одного рефакторинга

Reading time4 min
Views12K
В данном крохотном посте речь пойдет об одной из глав, книги «Принципы, паттерны и методики гибкой разработки на языке C#», с названием «Рефакторинг». Глава полностью посвящена рефакторингу. На примере одного большого метода, автор последовательно модифицирует код, попутно объясняя почему он делает те или иные модификации. После каждого этапа, код прогоняется через тесты.

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

Статья не преследует цели дискредитации автора, просто показалось интересным выложить свои наблюдения и услышать мнение сообщества по этому поводу.
Читать дальше →
Total votes 35: ↑28 and ↓7+21
Comments10

Паттерн «VIP сервис»

Reading time4 min
Views7.9K
В предыдущей статье мы рассмотрели маленький паттерн для упрощения кода пользователей сервисов, в этой статье мы рассмотрим особый вид сервиса. Данный паттерн применяется в архитектурах имеющих слои, если рассматриваемая архитектура не имеет слоев, то паттерн может не иметь нужного эффекта либо быть вообще вредным.

Архитектурные слои
К сожалению на хабре нет статей описывающих что такое слои, но снаружи есть статья хабраюзера primepix

Паттерн не привязан к языкам программирования.

Update: Добавил пример из реальной практики.

Картинка для привлечения внимания:


Читать дальше →
Total votes 13: ↑7 and ↓6+1
Comments11

Minecraft на C# (19 строк кода)

Reading time1 min
Views82K
В продолжении общей, предновогодней истерии, решил написать свою игрушку. За основу взята игра Minecraft, а язык программирования C#.

В игре присутствуют следующие блоки:
  • Воздух
  • Вода
  • Земля
  • Лестница
  • Коренная порода (Bedrock)

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


Update1:
Добавил коренную породу.

Update2:
Убрал мерцание и дерганье экрана.

Update3:
Добавил бинарное демо.

Картинка для привлечения внимания:


Читать дальше →
Total votes 146: ↑98 and ↓48+50
Comments57

Паттерн «VIP слушатель»

Reading time4 min
Views17K
Признаюсь честно, описание этого паттерна мне не встречалось, соответственно его название я выдумал. Если у кого есть информация о правильном названии, буду очень рад услышать. Паттерн не привязан к языку но в данной статье я буду использовать C#.

Картинка для привлечения внимания:


Читать дальше →
Total votes 41: ↑23 and ↓18+5
Comments22

Порядок полей в соответствии с порядком в коде (C#)

Reading time2 min
Views7.8K
При работе с отражением (Reflection) порядок отраженных полей не гарантируется. Обычно это не имеет значения, но иногда нужен порядок в точном соответствии порядку определенному в коде. Например, это бывает необходимо для частичной сериализации.
Для решения этой надуманной проблемы мы воспользуемся сервисами межъязыкового взаимодействия.

Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments5

Интересные моменты, которые вы, возможно, не знали о C# (Array)

Reading time1 min
Views53K
В продолжении статьи «8 фактов, которые вы, возможно, не знали о C#» описывающей интересные моменты языка C#, представляю крохотный очерк. Очень жаль, что некоторые воспринимают такие статьи как “капитанство” отбивая всякое желание к написанию, но несмотря на это, в комментариях, порой, всплывает много полезной информации.

Итак, что возвращают функции поиска индекса в массивах, если элемент не найден?
Читать дальше →
Total votes 82: ↑60 and ↓22+38
Comments35

Система работы с атрибутами

Reading time10 min
Views7.3K
В этой статье речь пойдет об унификации работы с атрибутами в проектах написанных на C#. Статья предназначена для разработчиков средних и больших проектов, или тех кому интересна тематика проектирования систем. Все примеры и реализации являются условными и предназначены для отражения подходов или идей.
Читать дальше →
Total votes 12: ↑6 and ↓60
Comments18

Information

Rating
1,695-th
Date of birth
Registered
Activity