Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Станислав Капулкин, Владислав Цендровский «Теор...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for DotNetRu DotNetRu
February 28, 2019

Станислав Капулкин, Владислав Цендровский «Теория категорий для описания архитектуры программ: проектирование и документирование»

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

Avatar for DotNetRu

DotNetRu

February 28, 2019
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. Введение Теория категорий - удобный математически строгий язык схем, и

    мы увидим, как эти схемы удобно применять в программировании. 2
  2. Теоркат и ООП var list = new List<int>(new int []

    {1, 2, 3, 4, 5}); // new LinkedList<int>(new int [] {1, 2, 3, 4, 5}); foreach (var value in list) { Console.WriteLine(value); } 32
  3. Выделение классов по цепочке шагов стрелка - функция или метод

    void Transform(ref int arg); void Transform() { this.field = Math.Sin(field); } int Transform(int arg); 37
  4. Спасибо за внимание! Вопросы? t.me/catdotnet dev.viete.io Литература 1. "Розеттский камень",

    Баез Дж. К., Стэй М. 2. "Теория категорий для работающего математика", C. Маклейн 42