IHP-Haskell Web框架

2020-11-24 09:20:14

IHP是包含在电池中的现代Haskell Web框架,建立在Haskell和Nix的基础上。

我们相信函数式编程是软件开发的未来,并希望使用haskell和nix使函数式编程可供任何人使用。我们尝试提供一种解决方案,供尚未使用haskell的开发人员使用。 IHP随附了用haskell和nix构建出色的Web应用程序所需的一切。我们已做出许多务实的决定,以使您入门更快。这样一来,您就可以沿途拾起Haskell了:-)

类型安全且可靠:通过Haskell和Nix,我们使用最可靠的技术来确保您的应用程序不会因Null Pointer Exceptions而崩溃。

实时重载:虽然haskell是一种编译语言,但是内置的dev服务器会以最快的方式自动重载您的代码更改。变化会立即反映出来。就像旧的PHP一样。

无障碍:完全托管的开发环境的设置仅需5分钟。所有依赖项(甚至数据库和编译器)都使用nix软件包管理器进行管理。这意味着依赖性问题不再发生。而且,对于您团队中的所有开发人员,一切都保证是相同的。

无需Haskell经验:即使您还没有专业的haskell经验,代码生成器也可以帮助您快速构建东西。通过构建实际应用程序来获取haskell。

集成的开发工具:为了加快您的开发过程,IHP附带了一整套基于Web的开发工具。包括:数据库架构设计器,基于Web的代码生成器,基于Web的repl,...

HSX:就像React的JSX。在haskell文件中编写html代码。它将在编译时转换为实际的类型检查过的haskell代码。

自动刷新:当基础数据更改时,在后台重新渲染视图。当您希望视图始终反映实时数据库状态时,这很有用。自动刷新可以很容易地替换为使用AJAX手动轮询更改。

这是使用自动刷新的视图,这里没有应用特定的JS代码。所有视图更新均由服务器触发:

框架发布后的一年,长期的路线图框架已经消失了。特别是在快速发展的JS世界中。但是不用担心国际水文计划。自2017年以来,我们一直以数字化方式使用它。我们以及我们的朋友和合作伙伴一直在积极使用它。即使没有外部贡献者,我们也将构建新功能并在将来进行定期维护发布。我们为IHP制定了宏伟的计划,作为一家盈利且独立的软件公司,我们有能力长期执行这些计划。

IHP是我拥有的最佳Web框架体验。我认为许多有抱负的haskeller会通过诸如为您了解Haskell for Great Good之类的文字或类似内容工作,然后再四处寻找一个实际的项目.IHP使用nix削减了设置ghc的所有工作/ stack / cabal对于初学者来说可能非常棘手,它刚刚添加了haskell语言服务器集成,它启动了postgres服务器,使您不必记住SQL语法,并且意味着您可以在开始获取时立即开始编写haskell代码通过GHCi对您的黑客行为提供即时反馈,并通过在浏览器中实时重新加载Web应用程序以视觉方式获得反馈。我发现[hsx ||]准引用非常有趣,并且类型安全性通过防止将表单链接到数据库时容易出现的错误而加快了开发速度。

我喜欢IHP中的设计选择,就我而言,目前,我喜欢专注于服务器端Web应用程序开发,这鼓励您更加谨慎地使用JavaScript。

通过对模型或视图的IHP意见和路由选择,这意味着我可以专注于将存在于Web应用程序中的其他一些非常酷的haskell库集成在一起。 (如果您想与了解功能类型签名的人一起阅读,我也尝试在https://ihpcafe.ihpapp.com上记录我的经历))

我一直在通过国际水文计划学习Haskell。这是我尝试过的最好,实际上最简单的Web框架。开发人员的经验是我对MVC风格的框架所拥有的最好的体验。而且我必须学习Haskell,而不必将头撞到墙上。真的很喜欢:)我真的需要像IHP这样的东西来开始Haskell。它既有趣又容易,而且文档也很容易遵循。

我看到有人认为他们希望对设置做出更多自定义选择。这正是我所不想要的,这就是为什么IHP非常适合我。

从简单性的角度来看,我认为选择仅支持Nix和Postgres实际上是强项。这样一来,他们就可以简化框架的开发过程,而不必支持每个人的次要偏好。对于大多数Web开发人员来说,这些选择应该非常有效。

有人可能对此表示不同意见,也许国际水文计划不适合他们,但我认为这不应使那些考虑尝试并形成自己观点的人感到沮丧。

我准备为学习Haskell的艰辛而准备,因为大多数资源都非常学术,我主要只是一个简单的应用程序构建器。 IHP正是我需要填补的空白,它使它变得非常有趣:)

IHP应该成为Haskell的Django / Rails / Phoenix。自2013年以来,我一直在专业地使用Django,但是几周前开始使用IHP。虽然还很早,但是粗糙的边缘却很少,也就是说,开发人员的人机工程学比我预期的要好得多。它具有出色的文档,并且正在迅速改进(与许多其他Haskell库相对,后者仅提供API文档或什至只是类型化的函数定义而已),并提供了有关数据库管理和迁移的全新知识。

我们很乐意通过邮寄给您酷酷的贴纸。让他们在这里

在Beta版期间,星期五每两周发布一次新版本。您可以在发行说明中找到更新至最新版本的步骤。