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
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
930
MagicPod導入から半年、オープンロジQAチームで実際にやったこと
tjoko
0
110
slog.Handlerのよくある実装ミス
sakiengineer
4
470
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
2
260
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
2025/09/16 仕様駆動開発とAI-DLCが導くAI駆動開発の新フェーズ
masahiro_okamura
0
130
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
いま注目のAIエージェントを作ってみよう
supermarimobros
0
350
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
190
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい勘所を集めてみました! - / How to start Scrum that is not written in the Scrum Guide 2nd
takaking22
1
160
Claude Code でアプリ開発をオートパイロットにするためのTips集 Zennの場合 / Claude Code Tips in Zenn
wadayusuke
5
1.1k
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
530
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Practical Orchestrator
shlominoach
190
11k
How STYLIGHT went responsive
nonsquared
100
5.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Why Our Code Smells
bkeepers
PRO
339
57k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Documentation Writing (for coders)
carmenintech
74
5k
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