• Антипаттерн №4 — Метод копипаста (Copy and paste programming)

    18.05.2018 koshevoy

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

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

    18.05.2018 koshevoy

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

    Читать далее
  • Антипаттерн №3 — Божественный объект (God Object)

    30.04.2018 koshevoy

    Совсем недавно мной были рассмотрены два наиболее распространённых антипаттерна (антипаттерн — пример плохой реализации кода, проектирования etc.) — спаггети код и магические числа. Сегодня мы поговорим про почётное третье место — Божественный объект (англ.: God Object). Во времена, когда только-только зарождалось понятие Web 2.0 (2000-2005) и фактически происходило становление динамического интернета — было почему-то модно…

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

    23.04.2018 koshevoy

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

    Читать далее
  • Антипаттерн №2 — Спагетти-код (Spaghetti code)

    21.04.2018 koshevoy

    Когда-то давно, когда компьютеры были большими, а программы маленькими — существовал единственный возможный способ написания кода. При помощи интерпретатора (если повезёт) выполнялась какая-либо вбиваемая программа. Строчка-за-строчкой. Людей, которые писали бы подобные листинги было невероятно мало, мирового опыта и понимания КАК НАДО ещё не было сформировано — ни методологий и никаких правил. Каждый был творцом собственного…

    Читать далее
  • Антипаттерн №1 — Магическое число (Magic Number)

    18.04.2018 koshevoy

    Из всего многообразия грехов разработки магическое число (magic number) — это, пожалуй, самый распространённый антипаттерн. Греховность его можно оценить как лёгкую, т.к., в целом, данный методологический изъян лёгок в обнаружении и устранении. Магическое число — это оперирование явно указанными в коде коэффициентами (как правило целочисленными), значение и смысл которых знает только автор программы. Как правило,…

    Читать далее
  • Sem Ver семантическое версионирование

    Semver — семантическое версионирование

    11.12.2017 koshevoy

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

    Читать далее
  • Интеграция GIT и Visual Studio

    06.12.2017 koshevoy

    Не представляю, как мы когда-то все жили без GIT. Подобный интерфейс взаимодействия с кодом рано или поздно должен был произойти и, нам повезло, эволюционно у нас появился GIT. Инструмент, который полностью поменял и перевернул мир разработки, вынесший написание кода и работу с листингом на кардинально новый, более высокий уровень. Разработка вышла из локальных групп и…

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

    26.10.2017 koshevoy

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

    Читать далее