home.social

#pattern_matching — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #pattern_matching, aggregated by home.social.

fetched live
  1. [Перевод] Стохастический клеточный автомат на системе типов

    Давайте разберёмся, как алгори ф мы Маркова и pattern matching в WL позволяют генерировать лабиринты, реки, падающий песок и другие клеточные автоматы с помощью системы типов

    habr.com/ru/articles/1065604/

    #алгоритмы_Маркова #Wolfram_Language #pattern_matching #клеточные_автоматы #процедурная_генерация #MarkovJunior #GOL #wljs

  2. Anti-corruption Layer на C#: три шва на проекте миграции с Rails

    Anti-corruption layer в учебниках выглядит как одна аккуратная коробка между чужой системой и вашей: всё чужое остаётся снаружи, внутрь проходит только то, что уже переведено на язык вашего домена. Граница ровная, как по линейке. Почти за год, что мы вытесняли 10-летний Rails-монолит на .NET, такой ровной границы я не увидел ни разу – ни у себя, ни, кажется, у кого-то ещё на живом проекте. Понятно это стало в первую же неделю. Мы открыли таблицу exercises и нашли в одной JSONB-колонке 14 разных форм одного типа задания, слепленных за 10 лет. Смаппить это в новые DTO как есть – и новая модель отрастит ровно ту же форму, что у Rails. “Нужен ACL”, подумали мы. Только, как выяснилось на практике, не один.

    habr.com/ru/articles/1042556/

    #anticorruption_layer #ACL #DDD #рефакторинг_легаси #Strangler_Fig #pattern_matching #JSONB #миграция

  3. [Перевод] Сопоставление с образцом на C#: объяснение и примеры

    За годы своего развития C# существенно эволюционировал; одна из самых мощных фич языка — это сопоставление с образцом ( pattern matching) . Работая недавно над небольшим хобби-проектом, я наткнулся на такую прекрасную строку кода C#. if (person is not null and { Age: > 18 }) {} Выглядит изящно. Откровенно говоря, она заставила меня призадуматься. Годами я писал проверки на null и свойства-аксессоры классическим образом: if (person != null && person.Age > 18) {} Функционально? Да. Удобочитаемо? Не особо. Безопасно? Спорно, особенно когда код становится сложнее. Я решил создать шорт YouTube об этом современном синтаксисе. Это небольшое забавное напоминание о том, что C# позволяет при помощи сопоставления с образцом комбинировать проверки на null и обращение к свойству в одно условие. Я понятия не имел, что это короткое видео приведёт к гораздо более глубокому исследованию, и покажет мне, насколько полезно и универсально сопоставление с образцом в современном C#. Эта фича повышает читаемость, уменьшает объём бойлерплейта и обеспечивает более выразительную обработку логики. В этой статье мы изучим различные типы образцов, поддерживаемых в C#, их работу и поймём, когда их использовать, на понятных примерах из реального мира.

    habr.com/ru/articles/907264/

    #pattern_matching #сопоставление_с_образцом #csharp

  4. Эволюция оператора switch в Java

    Наверное, есть только малая часть приложений, код в которых выполняются строго последовательно. Классический Hello World! как раз из таких. В таких случаях говорят, что у выполняющейся программы есть только один поток выполнения - флоу . Однако, подавляющее число приложений меняют свой поток выполнения в зависимости от внешних условий (контекста выполнения, переменных среды, значений пропертей) или внутренних (переменные, значения полей и т.д.). Для таких случаев в Java еще с самой первой версии, как и во остальных языках программирования, есть оператор if-else и его модификации. Давайте рассмотрим пример кода, в котором в зависимости от того, кем является член семьи, он делает какую-то обязанность по дому:

    habr.com/ru/articles/838890/

    #Java #switch #pattern_matching #switch_expressions #switch_statements #ifelseswitch

  5. [Перевод] Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3

    Сопоставление шаблонов (pattern matching) и исчерпывающие переключатели (exhaustive switches) объединяются для создания функциональных моделей данных, которые легко сочетаются с объектно-ориентированным ядром Dart. 💪

    habr.com/ru/articles/802165/

    #flutter #dart #oop #algebraic_data_types #sealed_классы #functional_style #pattern #pattern_matching #switch #функциональная_парадигма