SlideShare a Scribd company logo
Функциональное
программирование на Elixir
Владимир Цыганов
AnjLab Tech Talks
г. Владимир
Erlang
• Разработан для применения в распределенных
отказоустойчивых системах
• Концепция “Let it crash”
• набор библиотек OTP для построения
приложений, надежных на 99,999999%
Elixir
• Создан в 2012 г. Хосе Валимом (José Valim)
• Компилируется в байт-код для Erlang VM (BEAM)
• Вызов Erlang-функций без влияния на время
исполнения кода
• Полиморфизм, макросы, pattern matching
Типы данных
• Value-типы: int, float, atom, range, regex
• Системные типы: PID, reference
• Коллекции: tuple, list, map, binary
• Функции
Pattern matching
Модули
Pipe оператор
Многопоточность
Применение
• Микросервисы
• High-load сервисы
• Web (Phoenix Framework)
Phoenix Framework
• MVC вэб фрэймворк
• OTP-приложение
• Быстрый, многопоточный
Phoenix Framework
• Endpoint
• Router
• Controller
• View
• Template
• Channel
Спасибо за внимание
anjlab.com
twitter.com/AnjLab
Ресурсы:
elixir-lang.org
phoenixframework.org

More Related Content

Similar to Функциональное программирование на Elixir

Refactorings with RubyMine
Refactorings with RubyMineRefactorings with RubyMine
Refactorings with RubyMineavokin
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Grouptfmailru
 
Марат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаМарат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаYandex
 
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
SQADays_2009_Piter
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
Fwdays
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...DevDay
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
 
Project under control
Project under controlProject under control
Project under control
Alex Simanovich
 
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionJVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
Nikita Lipsky
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
Alexander Lisachenko
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendenciesDarkestMaster
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
DotNetConf
 
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС
2ГИС Технологии
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
SQALab
 
Технология MVC в высоконагруженных проектах
Технология MVC в высоконагруженных проектахТехнология MVC в высоконагруженных проектах
Технология MVC в высоконагруженных проектахMedia Gorod
 
Популярні способи зломів та шахрайські схеми
Популярні способи зломів та шахрайські схемиПопулярні способи зломів та шахрайські схеми
Популярні способи зломів та шахрайські схеми
Avivi Academy
 

Similar to Функциональное программирование на Elixir (20)

Refactorings with RubyMine
Refactorings with RubyMineRefactorings with RubyMine
Refactorings with RubyMine
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
 
Марат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная системаМарат Мавлютов - Современный веб как сложная система
Марат Мавлютов - Современный веб как сложная система
 
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...Платформа для автоматического тестирования Erlang проектов на примере UserGat...
Платформа для автоматического тестирования Erlang проектов на примере UserGat...
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
Project under control
Project under controlProject under control
Project under control
 
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionJVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС«Winium — это как Selenium, только под Windows»  – Глеб Головин, 2ГИС
«Winium — это как Selenium, только под Windows» – Глеб Головин, 2ГИС
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
Sivko
SivkoSivko
Sivko
 
Технология MVC в высоконагруженных проектах
Технология MVC в высоконагруженных проектахТехнология MVC в высоконагруженных проектах
Технология MVC в высоконагруженных проектах
 
Популярні способи зломів та шахрайські схеми
Популярні способи зломів та шахрайські схемиПопулярні способи зломів та шахрайські схеми
Популярні способи зломів та шахрайські схеми
 

More from AnjLab

Изучайте Machine Learning во имя добра или Teach my shiny metal ass
Изучайте Machine Learning во имя добра или Teach my shiny metal assИзучайте Machine Learning во имя добра или Teach my shiny metal ass
Изучайте Machine Learning во имя добра или Teach my shiny metal ass
AnjLab
 
RxJava
RxJavaRxJava
RxJava
AnjLab
 
Магия AsyncDisplayKit
Магия AsyncDisplayKitМагия AsyncDisplayKit
Магия AsyncDisplayKit
AnjLab
 
Функциональное программирование и Clojure
Функциональное программирование и ClojureФункциональное программирование и Clojure
Функциональное программирование и Clojure
AnjLab
 
SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)
AnjLab
 
PassKit & Wallet marketing
PassKit & Wallet marketingPassKit & Wallet marketing
PassKit & Wallet marketing
AnjLab
 
Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)
AnjLab
 

More from AnjLab (7)

Изучайте Machine Learning во имя добра или Teach my shiny metal ass
Изучайте Machine Learning во имя добра или Teach my shiny metal assИзучайте Machine Learning во имя добра или Teach my shiny metal ass
Изучайте Machine Learning во имя добра или Teach my shiny metal ass
 
RxJava
RxJavaRxJava
RxJava
 
Магия AsyncDisplayKit
Магия AsyncDisplayKitМагия AsyncDisplayKit
Магия AsyncDisplayKit
 
Функциональное программирование и Clojure
Функциональное программирование и ClojureФункциональное программирование и Clojure
Функциональное программирование и Clojure
 
SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)SpriteKit (AnjLab Tech Talks)
SpriteKit (AnjLab Tech Talks)
 
PassKit & Wallet marketing
PassKit & Wallet marketingPassKit & Wallet marketing
PassKit & Wallet marketing
 
Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)
 

Функциональное программирование на Elixir