Никита Волков: postgresql, hasql, haskell – 2015.10.14 postgresqlrussia.org meetup in...
TRANSCRIPT
![Page 1: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/1.jpg)
PostgreSQL, Hasql, Haskellи жонглирование
Никита Волков
![Page 2: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/2.jpg)
Эта функция простая?
![Page 3: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/3.jpg)
Эта функция простая?
1
![Page 4: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/4.jpg)
Эта функция простая?
11
![Page 5: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/5.jpg)
Эта функция простая?
11
1
![Page 6: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/6.jpg)
Эта функция простая?
11
1 1
![Page 7: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/7.jpg)
Эта функция простая?
11
1 1 1
![Page 8: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/8.jpg)
Эта функция простая?
11
1 1 1 1
![Page 9: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/9.jpg)
Эта функция простая?
11n*4
![Page 10: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/10.jpg)
Эта функция простая?
11n*41
![Page 11: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/11.jpg)
Эта функция простая?
11n*41
+ exceptions 1
![Page 12: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/12.jpg)
Эта функция простая?
11n*41
+ exceptions
+ time
11
![Page 13: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/13.jpg)
Эта функция простая?
5 + 4n
![Page 14: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/14.jpg)
Эта функция простая?Дополнительная проблема: выбор
![Page 15: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/15.jpg)
Эта функция простая?
При этом, пока так и осталась нерешённой проблема разбора результата.
Её решение – это отдельная песня.
![Page 16: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/16.jpg)
![Page 17: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/17.jpg)
![Page 18: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/18.jpg)
t
Exceptions,Time,Resourcemanagement
Parameters,Decisions
![Page 19: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/19.jpg)
![Page 20: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/20.jpg)
Вывод
Нужно меньше мячиков
![Page 21: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/21.jpg)
Вывод
Нужно меньше мячикови желательно без пил
![Page 22: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/22.jpg)
HasqlАбстракция Statement
![Page 23: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/23.jpg)
Что мы получаем?
● “Чистая” функция без сторонних эффектов
● Прозрачный, декларативный код
● Нет проблемы времени
● Нет проблемы исключений
● Нет проблемы управления ресурсами
![Page 24: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/24.jpg)
Что мы получаем?Завершённая абстракция
![Page 25: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/25.jpg)
Что мы получаем?Завершённая абстракция
Решения 4 проблем SQL, сериализации, десериализации и кеширования объединяются в единую, в дальнейшем, неделимую сущность, о деталях которой её пользователям уже задумываться не придётся.
![Page 26: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/26.jpg)
Что мы получаем?Стимул модулировать код
● В одном модуле находится модель приложения
● В другом – её сериализаторы● В третьем – десериализаторы
● В четвёртом – стейтменты, которые комбинируют типы и функции из предыдущих трёх
● В пятом модуле – транзакции, комбинируемые из стейтментов
![Page 27: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/27.jpg)
Исполнение стейтментов
![Page 28: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/28.jpg)
Производительностьв сравнении с конкурентами
![Page 29: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office](https://reader031.vdocuments.pub/reader031/viewer/2022021921/58f03dc91a28ab396d8b4615/html5/thumbnails/29.jpg)
Ссылки
● Репозиторий Hasql:https://github.com/nikita-volkov/hasql
● Мой блог с моими контактами:http://nikita-volkov.github.io/
● Отличное место для начала изучения Haskell:http://learnyouahaskell.com/chapters