所以在我开始之前,我是 Flutter 和编程的初学者。
我过去只是跟随视频教程并考虑它们的最佳实践,我最早的教程之一向我介绍了 Dartz 库,它在从 api 获取数据时使用。
final Either<ServerException, answer> result = await repository.get(...);
result.fold(
(exception) => handle,
(answer) => yaay
);
它是作为唯一方法引入的,所以我认为,但是现在我对未来类型及其所有功能有了更多了解,我还了解到我可以使用 OnError 或 try and catch 处理异常。
更多搜索让我了解到 Dartz 确实为 dart 提供了函数式编程风格,因为它是 OOP 语言。
考虑到这一切
1- 是更好还是只是有些人更喜欢那样?
2- 为什么我觉得人们那么讨厌 OOP?
3- 对于像我这样仍在学习的人来说,使用库来改变语言风格并避免使用本机代码行为有什么好处吗?
我更喜欢 fpdart,并且正在为许多客户在生产中使用它。
https://pub.dev/packages/fpdart 关于 dartz 有这样的说法:
与达茨比较 dartz一直以来的一大痛点就是缺少 文档。对于尝试使用该包的函数式编程新手来说,这是一个巨大的问题。
dartz 于 2016 年发布,最初针对 Dart 1.
dartz 还缺少一些功能和类型(Reader、TaskEither 等)。
fpdart是基于fp-ts和cats的重写。主要区别是:
Fpdart 有完整的文档。 Fpdart 使用去功能化实现更高种类的类型。 Fpdart 基于 Dart 3。 Fpdart 从一开始就是完全空安全的。 Fpdart 有更丰富的 API。 Fpdart 在 dartz 中实现了一些缺失的类型。 ? Fpdart(当前)不提供不可变集合(ISet、IMap、IHashMap、AVLTree)的实现。