• Алгоритм BASE64 и собственная реализация на .NET

    2 марта, 2021 DEV

    С самого раннего своего компьютерного детства я весьма плотно и серьёзно полюбил алгоритмы. Да, собственно, чего уж — я их люблю до сих пор. Но ещё больше мне нравится когда они красивые и такие, что можно понять за одно прочтение 🙂 И сегодня как раз об одном из таких алгоритмов и пойдёт речь: удивительно простой…

    Read more
  • Тестирование в .NET. Часть 2 — MSTest

    21 января, 2021 DEV

    Привет. В прошлой статье я немного рассказал о тестировании программного обеспечения в целом и вообще, сегодня мы попробуем написать несколько первых тестов при помощи фреймворка тестирования MSTest (Microsoft Test). Это простой, лёгкий и удобный вариант для быстрого тестирования личных или не очень больших проектов. Хотя, конечно, никто не запрещает покрывать все свои проекты при помощи…

    Read more
  • Эмулятор шифровальной машины Enigma C# .NET

    14 декабря, 2020 DEV

    Наверное, две недели я занимался этим проектом и глядя на результирующее количество кода — трудно понять куда было потрачено столько времени и почему результат вышел настолько маленьким (относительно количества строк кода). Конечно, это были не фултайм две недели, а под настроение — когда хотелось и моглось. Тем не менее, по ощущениям прошло невероятно долгое исследование,…

    Read more
  • Тестирование в .NET. Часть 1 — Вступление

    15 ноября, 2020 DEV

    Зачем вам тесты? Пишите сразу без багов!… Сегодня поднимем больную тему (для меня), но сил больше терпеть никаких не осталось — прошу услышать мою боль и я, надеюсь, мы встанем на одну сторону баррикад. Тема сложная, при всей кажущейся простоте и выгоде — не очевидная. Ведь до сих пор, даже в наше передовое время, тестирование…

    Read more
  • Битовые маски и флаги в .NET C#

    22 октября, 2020 DEV

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

    Read more
  • Теория о бесконечных обезьянах

    7 марта, 2019 DEV

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

    Read more
  • Реализация стека при помощи массива на языке C#

    18 мая, 2018 DEV

    Как я и обещал, практически сразу после написания статьи про структуру данных стек — выйдет примерная очень simple реализация стека нативными средствами языка C#. Это простой и лёгкий в освоении алгоритм, понятный любому человеку, который хоть раз в жизни мыл тарелки 🙂 Несколько недель назад я писал свою собственную реализацию очереди и там же указывал,…

    Read more
  • gRPC Часть №1 — .NET C# и Google Protobuff. Знакомство.

    23 апреля, 2018 DEV

    Так исторически сложилось, что на текущей моей работе весь стек бекенда состоял изначально из GoLang и .NET. Так начинался наш проект, к  слову, абсолютно для меня экспериментальный — новый виток карьеры (в профессиональном плане). До этого момента я был полностью и целиком desktop-разработчиком под Windows (а ещё до этого десктоп QT и Linux). Я не…

    Read more
  • Реализация очереди при помощи массива на языке C#

    26 октября, 2017 DEV

    Совсем недавно я рассказывал про базовую структуру данных очередь. И, как обещал, от теории переходим к практике. Сегодня хочу показать как реализовать алгоритм очереди нативными средствами языка C#. Замечу, что собственная реализация подобных базовых структур, как правило, избыточный овер инжиниринг и не нужный велосипед. Всё уже давно реализовано, наверное, для всех платформ и на всех…

    Read more