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
63
Other Decks in Technology
See All in Technology
プロダクトのコードから見るGoによるデザインパターンの実践 #go_night_talk
bengo4com
1
2.3k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
3
5.5k
Simplifying Cloud Native app testing across environments with Dapr and Microcks
salaboy
0
140
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
250
やる気のない自分との向き合い方/How to Deal with Your Unmotivated Self
sanogemaru
0
470
AWS Top Engineer、浮いてませんか? / As an AWS Top Engineer, Are You Out of Place?
yuj1osm
2
210
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
150
Git in Team
kawaguti
PRO
3
340
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
320
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
310
Azure Well-Architected Framework入門
tomokusaba
1
350
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
190
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
40
2.1k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Building Adaptive Systems
keathley
43
2.8k
Balancing Empowerment & Direction
lara
4
680
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Automating Front-end Workflow
addyosmani
1371
200k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
Done Done
chrislema
185
16k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
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