Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PostgreSQL, Hasql, Haskell
Search
Evgeniy
October 21, 2015
Technology
0
180
PostgreSQL, Hasql, Haskell
Никита Волков: PostgreSQL, Hasql, Haskell – 2015.10.14 PostgreSQLRussia.org meetup in Yandex office
Evgeniy
October 21, 2015
Tweet
Share
More Decks by Evgeniy
See All by Evgeniy
PostgREST. Как быстро создать RESTful API
gosdev
0
110
Как спать спокойно
gosdev
0
62
Other Decks in Technology
See All in Technology
DeNA での思い出 / Memories at DeNA
orgachem
PRO
6
1.9k
サポートエンジニアから見たRancher運用の現場
masap
0
110
Bye-Bye Query Spaghetti: Write Queries You'll Actually Understand Using Pipelined SQL Syntax
tobiaslampertlotum
0
120
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
4
1.2k
Vault meets Kubernetes
mochizuki875
0
150
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
4
990
個人CLAUDE.md紹介と設定から学んだこと/introduce-my-claude-md
shibayu36
0
140
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
1
130
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
430
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
240
モダンフロントエンド 開発研修
recruitengineers
PRO
9
6k
クラウドセキュリティを支える技術と運用の最前線 / Cutting-edge Technologies and Operations Supporting Cloud Security
yuj1osm
2
240
Featured
See All Featured
Done Done
chrislema
185
16k
Into the Great Unknown - MozCon
thekraken
40
2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Embracing the Ebb and Flow
colly
87
4.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Pragmatic Product Professional
lauravandoore
36
6.8k
How GitHub (no longer) Works
holman
315
140k
Transcript
PostgreSQL, Hasql, Haskell и жонглирование Никита Волков
Эта функция простая?
Эта функция простая? 1
Эта функция простая? 1 1
Эта функция простая? 1 1 1
Эта функция простая? 1 1 1 1
Эта функция простая? 1 1 1 1 1
Эта функция простая? 1 1 1 1 1 1
Эта функция простая? 1 1 n*4
Эта функция простая? 1 1 n*4 1
Эта функция простая? 1 1 n*4 1 + exceptions 1
Эта функция простая? 1 1 n*4 1 + exceptions +
time 1 1
Эта функция простая? 5 + 4n
Эта функция простая? Дополнительная проблема: выбор
Эта функция простая? При этом, пока так и осталась нерешённой
проблема разбора результата. Её решение – это отдельная песня.
None
None
t Exceptions, Time, Resource management Parameters, Decisions
None
Вывод Нужно меньше мячиков
Вывод Нужно меньше мячиков и желательно без пил
Hasql Абстракция Statement
Что мы получаем? • “Чистая” функция без сторонних эффектов •
Прозрачный, декларативный код • Нет проблемы времени • Нет проблемы исключений • Нет проблемы управления ресурсами
Что мы получаем? Завершённая абстракция
Что мы получаем? Завершённая абстракция Решения 4 проблем SQL, сериализации,
десериализации и кеширования объединяются в единую, в дальнейшем, неделимую сущность, о деталях которой её пользователям уже задумываться не придётся.
Что мы получаем? Стимул модулировать код • В одном модуле
находится модель приложения • В другом – её сериализаторы • В третьем – десериализаторы • В четвёртом – стейтменты, которые комбинируют типы и функции из предыдущих трёх • В пятом модуле – транзакции, комбинируемые из стейтментов
Исполнение стейтментов
Производительность в сравнении с конкурентами
Ссылки • Репозиторий Hasql: https://github.com/nikita-volkov/hasql • Мой блог с моими
контактами: http://nikita-volkov.github.io/ • Отличное место для начала изучения Haskell: http://learnyouahaskell.com/chapters