真实世界哈斯克尔

2020-11-07 11:17:26

很多人认为,在Haskell中,像运行Web应用这样的日常任务是困难的,甚至是不可能的!但这当然不是真的!在我们的真实世界Haskell系列中,我们将带您了解一系列允许您编写Web后端的库。这些库使用Haskell的功能以独特的方式处理数据库查询和API构建等问题。

在本系列的第1部分中,我们将使用持久化库和模板Haskell创建一个简单的数据库模式。这将使我们能够轻松地运行迁移。它还允许我们编写一些简单的类型安全SQL查询!

一旦我们建立了我们的数据库,我们就会想要提供我们通过Web API存储的信息。我们将用仆人图书馆来做这件事。Servant允许我们构建以类型安全的方式检索其查询参数的端点!请在本系列的第2部分中了解如何做到这一点!

现在我们已经设置了API,我们将看看如何通过添加Redis缓存来提高速度!我们将学习如何使用Haskell的Redis绑定,这样我们就可以避免在某些查询中使用数据库!请看第3部分中的所有内容是如何工作的。

我们的端到端系统现在相当复杂,因此测试很困难,原因有很多。在第四部分中,我们将看到一些技术专家来测试我们的Web API。我们还将使用Docker来简化此过程。

在我们的Real World Haskell系列的最后一部分,我们将学习更多关于高级SQL查询的知识。我们将扩展我们的模式,并使用Esqueleto库来执行不同数据类型之间的类型安全连接!

本系列介绍了一些很酷的库,但还有更多值得探索的地方!查看我们的生产核对表,并探索在Haskell中制作生产系统时可以用来完成各种任务的大量其他库!