SlideShare a Scribd company logo
1 of 25
Download to read offline
Боремся со сложностью
 по-функциональному

     Роман Чепляка


     28 января 2012
     AgileBaseCamp
Борьба со сложностью




    повторное использование кода
    комбинируемость
    DRY
Функциональный
Функциональный




    Функции высшего порядка
    filter :: (a -> Bool) -> [a] -> [a]
Функциональный




    Функции высшего порядка
    filter :: (a -> Bool) -> [a] -> [a]
    λ-функции
    filteredList :: [Int]
    filteredList = filter (x -> x > 5) [1..10]
Итерация



  Задача: вычислить сумму элементов коллекции
  int s = 0;
  for ( iter = a.begin(); iter != a.end(); iter++ )
  {
      s += *iter;
  }
Итерация




  fold :: (s -> a -> s) -> s -> [a] -> s
Итерация




  fold :: (s -> a -> s) -> s -> [a] -> s
  sum list = fold (s a -> s + a) 0 list
Итерация




  fold :: (s -> a -> s) -> s -> [a] -> s
  sum list = fold (s a -> s + a) 0 list
  prod list = fold (s a -> s * a) 1 list
Итерация




  fold :: (s -> a -> s) -> s -> [a] -> s
  sum list = fold (s a -> s + a) 0 list
  prod list = fold (s a -> s * a) 1 list
  size list = fold (s a -> s + 1) 0 list
Maybe




 data Maybe a = Nothing | Just a
Maybe




 data Maybe a = Nothing | Just a
 foo =
     case bar of
         Just n -> n
         Nothing -> 0
Maybe




 fromMaybe :: a -> Maybe a -> a
 fromMaybe d m =
     case m of
         Just n -> n
         Nothing -> d
Maybe




 foo =
     case bar of
         Just n -> n
         Nothing -> factorial 1000000
Maybe




 foo = fromMaybe (factorial 1000000) bar
Ленивый
Ленивый




 Функция вычисляет свой аргумент только

     если он нужен
Ленивый




 Функция вычисляет свой аргумент только

     если он нужен

     в той степени, в которой он нужен
Повторное использование кода




  lotteryTickets :: Statistics -> [Ticket]
Повторное использование кода




  lotteryTickets :: Statistics -> [Ticket]
  myTickets = take 10 (lotteryTickets stats)
Чистый
Чистый




  Упрощает комбинирование функций
Чистый



  Упрощает тестирование функций
  prop :: [Int] -> Bool
  prop list = isSorted (mySort list)
Чистый



  Упрощает тестирование функций
  prop :: [Int] -> Bool
  prop list = isSorted (mySort list)

  > quickCheck prop
  +++ OK, passed 100 tests.
Итоги




   Функции помогают структурировать программы
  Ленивость снижает стоимость комбинирования
            функций
    Чистота делает код модульным и упрощает
            тестирование

More Related Content

What's hot

4 b stepennye fukcii
4 b stepennye fukcii4 b stepennye fukcii
4 b stepennye fukciiNarvatk
 
Алгебраические типы данных
Алгебраические типы данныхАлгебраические типы данных
Алгебраические типы данныхAlexander Schepanovski
 
Функциональное программирование на F#
Функциональное программирование на F#Функциональное программирование на F#
Функциональное программирование на F#akrakovetsky
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данныхAndrey Dolinin
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмовAndrey Dolinin
 
Обработка текста на Haskell - это просто!
Обработка текста на Haskell - это просто!Обработка текста на Haskell - это просто!
Обработка текста на Haskell - это просто!Mike Potanin
 
Одномерные массивы целых чисел
Одномерные массивы целых чиселОдномерные массивы целых чисел
Одномерные массивы целых чиселAndrey Dolinin
 
Олег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonОлег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonYandex
 
график функции y=IxI
график функции y=IxIграфик функции y=IxI
график функции y=IxILanaNork
 
Урок на тему "Показательная функция"
Урок на тему "Показательная функция"Урок на тему "Показательная функция"
Урок на тему "Показательная функция"Инна Фельдман
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеAndrey Dolinin
 
Идиоматичный функциональный код
Идиоматичный функциональный кодИдиоматичный функциональный код
Идиоматичный функциональный кодAlexander Granin
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисленияAndrey Dolinin
 

What's hot (20)

South migration
South migrationSouth migration
South migration
 
4 b stepennye fukcii
4 b stepennye fukcii4 b stepennye fukcii
4 b stepennye fukcii
 
Алгебраические типы данных
Алгебраические типы данныхАлгебраические типы данных
Алгебраические типы данных
 
Функциональное программирование на F#
Функциональное программирование на F#Функциональное программирование на F#
Функциональное программирование на F#
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данных
 
Iteratee explained.
Iteratee explained.Iteratee explained.
Iteratee explained.
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмов
 
Cтандартные функции
Cтандартные функцииCтандартные функции
Cтандартные функции
 
Урок 3. Карринг и ленивые вычисления.
Урок 3. Карринг и ленивые вычисления.Урок 3. Карринг и ленивые вычисления.
Урок 3. Карринг и ленивые вычисления.
 
Обработка текста на Haskell - это просто!
Обработка текста на Haskell - это просто!Обработка текста на Haskell - это просто!
Обработка текста на Haskell - это просто!
 
Одномерные массивы целых чисел
Одномерные массивы целых чиселОдномерные массивы целых чисел
Одномерные массивы целых чисел
 
Олег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonОлег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и Python
 
Progr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functionsProgr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functions
 
лекция 1
лекция 1лекция 1
лекция 1
 
курсовая
курсоваякурсовая
курсовая
 
график функции y=IxI
график функции y=IxIграфик функции y=IxI
график функции y=IxI
 
Урок на тему "Показательная функция"
Урок на тему "Показательная функция"Урок на тему "Показательная функция"
Урок на тему "Показательная функция"
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция Повторение
 
Идиоматичный функциональный код
Идиоматичный функциональный кодИдиоматичный функциональный код
Идиоматичный функциональный код
 
Системы счисления
Системы счисленияСистемы счисления
Системы счисления
 

Viewers also liked

Kicking Off A Scrum Startup
Kicking Off A Scrum StartupKicking Off A Scrum Startup
Kicking Off A Scrum StartupAgile Base Camp
 
Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"Agile Base Camp
 
Разработка веб-сервисов осень 2013 лекция 2
Разработка веб-сервисов осень 2013 лекция 2Разработка веб-сервисов осень 2013 лекция 2
Разработка веб-сервисов осень 2013 лекция 2Technopark
 
Velocity как инструмент планирования и управления проектом: предсказываем, из...
Velocity как инструмент планирования и управления проектом: предсказываем, из...Velocity как инструмент планирования и управления проектом: предсказываем, из...
Velocity как инструмент планирования и управления проектом: предсказываем, из...Magneta AI
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Magneta AI
 
Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...
Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...
Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...Magneta AI
 
Рождение и Жизнь в переходный период Agile-команды – через тернии к звездам
Рождение и Жизнь в переходный период Agile-команды – через тернии к звездамРождение и Жизнь в переходный период Agile-команды – через тернии к звездам
Рождение и Жизнь в переходный период Agile-команды – через тернии к звездамMagneta AI
 
Портрет профессионального разработчика
Портрет профессионального разработчикаПортрет профессионального разработчика
Портрет профессионального разработчикаMagneta AI
 
Игорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиковИгорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиковAgile Base Camp
 

Viewers also liked (9)

Kicking Off A Scrum Startup
Kicking Off A Scrum StartupKicking Off A Scrum Startup
Kicking Off A Scrum Startup
 
Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"Максим Ткачук "Hard Rock Design"
Максим Ткачук "Hard Rock Design"
 
Разработка веб-сервисов осень 2013 лекция 2
Разработка веб-сервисов осень 2013 лекция 2Разработка веб-сервисов осень 2013 лекция 2
Разработка веб-сервисов осень 2013 лекция 2
 
Velocity как инструмент планирования и управления проектом: предсказываем, из...
Velocity как инструмент планирования и управления проектом: предсказываем, из...Velocity как инструмент планирования и управления проектом: предсказываем, из...
Velocity как инструмент планирования и управления проектом: предсказываем, из...
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2
 
Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...
Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...
Внедрение agile в Банк ВТБ24, и интеграция UX и Usability в процесс разработк...
 
Рождение и Жизнь в переходный период Agile-команды – через тернии к звездам
Рождение и Жизнь в переходный период Agile-команды – через тернии к звездамРождение и Жизнь в переходный период Agile-команды – через тернии к звездам
Рождение и Жизнь в переходный период Agile-команды – через тернии к звездам
 
Портрет профессионального разработчика
Портрет профессионального разработчикаПортрет профессионального разработчика
Портрет профессионального разработчика
 
Игорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиковИгорь Лужанский - Динамика развития отношений в команде разработчиков
Игорь Лужанский - Динамика развития отношений в команде разработчиков
 

Similar to Боремся со сложностью по-функциональному

Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.Sergey Tihon
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
 
Лекция о языке программирования Haskell
Лекция о языке программирования HaskellЛекция о языке программирования Haskell
Лекция о языке программирования Haskellhusniyarova
 
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...Dmitri Soshnikov
 
8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)Smolensk Computer Science Club
 
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"LogeekNightUkraine
 
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)Ontico
 
20100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-0320100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-03Computer Science Club
 
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...JetBrains Russia
 
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...CocoaHeads
 
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPython Meetup
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Roman Brovko
 
Java осень 2014 занятие 2
Java осень 2014 занятие 2Java осень 2014 занятие 2
Java осень 2014 занятие 2Technopark
 
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Dmitry Stropalov
 

Similar to Боремся со сложностью по-функциональному (20)

Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.
 
Урок 4. "Завязывание узлов". Классы
Урок 4. "Завязывание узлов". КлассыУрок 4. "Завязывание узлов". Классы
Урок 4. "Завязывание узлов". Классы
 
Scala
ScalaScala
Scala
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
Лекция о языке программирования Haskell
Лекция о языке программирования HaskellЛекция о языке программирования Haskell
Лекция о языке программирования Haskell
 
Java8. Innovations
Java8. InnovationsJava8. Innovations
Java8. Innovations
 
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
 
8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)
 
Charming python sc2-8
Charming python sc2-8Charming python sc2-8
Charming python sc2-8
 
Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"Sergii Tsypanov "Performance 1001 Tips"
Sergii Tsypanov "Performance 1001 Tips"
 
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
Олег Бартунов, Федор Сигаев, Александр Коротков (PostgreSQL)
 
20100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-0320100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-03
 
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
Разработка IntelliJ IDEA: впечатления новичка. Тагир Валеев, Senior Software ...
 
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
 
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
 
Java 8. Lambdas
Java 8. LambdasJava 8. Lambdas
Java 8. Lambdas
 
Java осень 2014 занятие 2
Java осень 2014 занятие 2Java осень 2014 занятие 2
Java осень 2014 занятие 2
 
Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)Scala and LiftWeb presentation (Russian)
Scala and LiftWeb presentation (Russian)
 
Algo 00
Algo 00Algo 00
Algo 00
 

More from Agile Base Camp

Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"Agile Base Camp
 
Александр Белецкий "Архитектура Javascript приложений"
 Александр Белецкий "Архитектура Javascript приложений" Александр Белецкий "Архитектура Javascript приложений"
Александр Белецкий "Архитектура Javascript приложений"Agile Base Camp
 
Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"Agile Base Camp
 
Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"Agile Base Camp
 
Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"Agile Base Camp
 
JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"Agile Base Camp
 
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"Agile Base Camp
 
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"Agile Base Camp
 
Brad Hoover "Differences between building a consumer vs. enterprise product"
Brad Hoover  "Differences between building a consumer vs. enterprise product"Brad Hoover  "Differences between building a consumer vs. enterprise product"
Brad Hoover "Differences between building a consumer vs. enterprise product"Agile Base Camp
 
Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"Agile Base Camp
 
Решение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командахРешение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командахAgile Base Camp
 
Роман Чернышев “Организационные риски в коммерческих проектах”
Роман Чернышев “Организационные риски в коммерческих проектах”Роман Чернышев “Организационные риски в коммерческих проектах”
Роман Чернышев “Организационные риски в коммерческих проектах”Agile Base Camp
 
Nadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycleNadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycleAgile Base Camp
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileAgile Base Camp
 
Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Agile Base Camp
 
Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"Agile Base Camp
 
Игорь Лужанский “Потери в процессе разработки ПО”
Игорь Лужанский “Потери в процессе разработки ПО”Игорь Лужанский “Потери в процессе разработки ПО”
Игорь Лужанский “Потери в процессе разработки ПО”Agile Base Camp
 

More from Agile Base Camp (20)

Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"Алексей Колупаев "За что ещё платят менеджеру?"
Алексей Колупаев "За что ещё платят менеджеру?"
 
Александр Белецкий "Архитектура Javascript приложений"
 Александр Белецкий "Архитектура Javascript приложений" Александр Белецкий "Архитектура Javascript приложений"
Александр Белецкий "Архитектура Javascript приложений"
 
Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"Сергей Кудряшов "Делайте продукт и ничего более"
Сергей Кудряшов "Делайте продукт и ничего более"
 
Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"Daniel Lewis "How to build a motivational system"
Daniel Lewis "How to build a motivational system"
 
Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"Мark Phillips "Intoduction to Silicon Valley"
Мark Phillips "Intoduction to Silicon Valley"
 
JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"JDaniel Lewis "How to build a motivational system"
JDaniel Lewis "How to build a motivational system"
 
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
Алексей Колупаев "Неочевидная разница между фальстартом, стартапом и страпоном"
 
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"Саша Белецкий "Continuous Delivery в продуктовой разработке"
Саша Белецкий "Continuous Delivery в продуктовой разработке"
 
Brad Hoover "Differences between building a consumer vs. enterprise product"
Brad Hoover  "Differences between building a consumer vs. enterprise product"Brad Hoover  "Differences between building a consumer vs. enterprise product"
Brad Hoover "Differences between building a consumer vs. enterprise product"
 
Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"Сергей Кудряшов "Небольшие команды побеждают мир"
Сергей Кудряшов "Небольшие команды побеждают мир"
 
Решение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командахРешение коммуникативных проблем в распределенных командах
Решение коммуникативных проблем в распределенных командах
 
Deadline management
Deadline managementDeadline management
Deadline management
 
Paper prototyping
Paper prototypingPaper prototyping
Paper prototyping
 
Роман Чернышев “Организационные риски в коммерческих проектах”
Роман Чернышев “Организационные риски в коммерческих проектах”Роман Чернышев “Организационные риски в коммерческих проектах”
Роман Чернышев “Организационные риски в коммерческих проектах”
 
Nadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycleNadia Zemskova - Invention of bicycle
Nadia Zemskova - Invention of bicycle
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagile
 
Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi
 
Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"Доклад Гапонова "За двумя требованиями погонишься"
Доклад Гапонова "За двумя требованиями погонишься"
 
Retrospective rus
Retrospective rusRetrospective rus
Retrospective rus
 
Игорь Лужанский “Потери в процессе разработки ПО”
Игорь Лужанский “Потери в процессе разработки ПО”Игорь Лужанский “Потери в процессе разработки ПО”
Игорь Лужанский “Потери в процессе разработки ПО”
 

Боремся со сложностью по-функциональному