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
190
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
120
Как спать спокойно
gosdev
0
67
Other Decks in Technology
See All in Technology
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
540
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
170
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
210
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
5
760
使いにくいの壁を突破する
sansantech
PRO
1
120
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
290
Digitization部 紹介資料
sansan33
PRO
1
6.8k
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
700
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
150
日本語テキストと音楽の対照学習の技術とその応用
lycorptech_jp
PRO
1
420
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
160
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Paper Plane (Part 1)
katiecoart
PRO
0
4k
BBQ
matthewcrist
89
10k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Practical Orchestrator
shlominoach
191
11k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
GraphQLとの向き合い方2022年版
quramy
50
14k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
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