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
61
Other Decks in Technology
See All in Technology
Javaで作る RAGを活用した Q&Aアプリケーション
recruitengineers
PRO
1
130
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
340
Leveraging Open-Source Tools for Creating 3D Tiles in the Urban Environment
simboss
PRO
0
120
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
140
「良さそう」と「とても良い」の間には 「良さそうだがホンマか」がたくさんある / 2025.07.01 LLM品質Night
smiyawaki0820
1
370
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
340
作曲家がボカロを使うようにPdMはAIを使え
itotaxi
0
170
フィンテック養成勉強会#54
finengine
0
180
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
11
4k
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.9k
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
240
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
Documentation Writing (for coders)
carmenintech
72
4.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Typedesign – Prime Four
hannesfritz
42
2.7k
A Tale of Four Properties
chriscoyier
160
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Code Review Best Practice
trishagee
68
18k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Unsuck your backbone
ammeep
671
58k
Balancing Empowerment & Direction
lara
1
380
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
How STYLIGHT went responsive
nonsquared
100
5.6k
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