У нас вы можете посмотреть бесплатно Brandon Kase - Abstract Algebra Driven Design Animation in Swift as almost Semirings - λC 2018 или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
It's not immediately clear how to build "nice" libraries. Let's consider animations: Think of a box flying across an iPhone screen before fading out. How might we design this library? Writing the type first, before the implementation, is known and common in the functional programming community as a method for writing correct code, but is it the right way to build an API? Authors should consider something else even before the type: Composability. How can we make animations compose? We can combine two animations in sequence to produce an animation. And two animations in parallel is an animation, as well. But we shouldn't stop here. Documenting the laws to which these binary operations conform leads to a better understanding of the domain both for consumers and producers of a library. In this talk, we will introduce algebraic properties: associativity, commutativity, identity, idempotency, distributivity, etc. We will talk about the algebraic structures they induce on a binary operation: semigroup, monoid, commutative monoid, semiring, etc. At every step, we will make the abstract concrete by bringing it back to our animation example. Only after we fully understand the laws around our animations' composition do we think about the type and the implementation of our animations. This is abstract-algebra-driven design. In Swift, a language without higher-kinded-types, we can still reify our knowledge of algebraic structures into software! Here, we'll look at an implementation of the animation library we designed earlier. By the end of the talk, it will be clear how to build complex animations out of our simple, lawful, composable primitives. More importantly, we'll understand basic abstract algebra and its application to API design!