Никита Волков: postgresql, hasql, haskell – 2015.10.14 postgresqlrussia.org meetup in...

29
PostgreSQL, Hasql, Haskell и жонглирование Никита Волков

Upload: nikolay-samokhvalov

Post on 14-Apr-2017

286 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

PostgreSQL, Hasql, Haskellи жонглирование

Никита Волков

Page 2: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

Page 3: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

1

Page 4: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11

Page 5: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11

1

Page 6: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11

1 1

Page 7: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11

1 1 1

Page 8: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11

1 1 1 1

Page 9: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11n*4

Page 10: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11n*41

Page 11: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11n*41

+ exceptions 1

Page 12: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

11n*41

+ exceptions

+ time

11

Page 13: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

5 + 4n

Page 14: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?Дополнительная проблема: выбор

Page 15: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Эта функция простая?

При этом, пока так и осталась нерешённой проблема разбора результата.

Её решение – это отдельная песня.

Page 16: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office
Page 17: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office
Page 18: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

t

Exceptions,Time,Resourcemanagement

Parameters,Decisions

Page 19: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office
Page 20: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Вывод

Нужно меньше мячиков

Page 21: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Вывод

Нужно меньше мячикови желательно без пил

Page 22: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

HasqlАбстракция Statement

Page 23: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Что мы получаем?

● “Чистая” функция без сторонних эффектов

● Прозрачный, декларативный код

● Нет проблемы времени

● Нет проблемы исключений

● Нет проблемы управления ресурсами

Page 24: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Что мы получаем?Завершённая абстракция

Page 25: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Что мы получаем?Завершённая абстракция

Решения 4 проблем SQL, сериализации, десериализации и кеширования объединяются в единую, в дальнейшем, неделимую сущность, о деталях которой её пользователям уже задумываться не придётся.

Page 26: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Что мы получаем?Стимул модулировать код

● В одном модуле находится модель приложения

● В другом – её сериализаторы● В третьем – десериализаторы

● В четвёртом – стейтменты, которые комбинируют типы и функции из предыдущих трёх

● В пятом модуле – транзакции, комбинируемые из стейтментов

Page 27: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Исполнение стейтментов

Page 28: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Производительностьв сравнении с конкурентами

Page 29: Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office

Ссылки

● Репозиторий Hasql:https://github.com/nikita-volkov/hasql

● Мой блог с моими контактами:http://nikita-volkov.github.io/

● Отличное место для начала изучения Haskell:http://learnyouahaskell.com/chapters