1

我在工作项目之间研究F#已经有一段时间了,但从来没有真正有勇气在其中任何一个项目中开始使用它。使用 .net 时 通常只回退到 C# 。

我目前正在计划一个自动用户管理应用程序,基本上是数据库和 Active Directory 之间的 CRUD。我现在愿意使用 F#,因为我相信数据处理会工作得更好,而且我不会有太多的 GUI,只有后台的日志界面。

在这一点上,我的问题是,是否有人对 F# 有先验知识会建议我为这样的项目全力以赴地使用这种语言。我不是在问使用语言本身是否更好,但是否建议按原样使用,或者只是在此处和那里插入一些脚本更好。或者,如果 F# 不适合这样的项目,特别是对于那些有 Scala 术语并且只在 F# 中以不同方式编写一些数学函数的人来说。这个项目也有截止日期。

只是担心如果我不尽快开始在实际项目中使用该语言,我将永远不会。

4

2 回答 2

3

事实上,我的第一个生产(以专业身份)F# 代码位涉及查询 Active Directory 并将结果填充到 SQL Server 数据库中。效果非常好,所以我说去吧!

我记得的一些令人愉快的点:

  • 我创建了一些 F# 记录类型来将原始 ldap 结果投影到...记录类型上的模式匹配是一个福音。
  • 我实现了一个动态运算符的实现,?用于以一种不那么严格的方式访问 ldap 结果的属性。
  • 我使用 SQL Server 的大容量复制 ADO.NET 功能将 ldap 高效地插入到数据库中。F# 允许我创建干净、简单的抽象,隐藏原始 ADO.NET API 的一些丑陋。
  • 我在一个独立项目中实现了这些后端 F# 位,该项目由基于 C# 的 APS.NET MVC 项目使用(主要是为了按下按钮来执行某些操作)。与 C# 的互操作非常好(如果我记得的话,我确实必须公开一个对 C# 更友好的 API,但它很简单)。
  • F# 像冠军一样与 .NET API 互操作,因此 ldap API 没有问题
  • F# 很有趣,可以降低缺陷密度!
于 2013-08-08T14:21:21.813 回答
1

我本人肯定会尝试一下,因为即使对 F# 没有深入了解的人,代码似乎也非常易于维护。

不过,我的观点可能有点偏颇,因为我自己非常喜欢 F#。但我确实有机会将 F# 在工作中介绍给我的 C# 开发人员团队,他们根本没有 F# 知识。

我们从一些编码道场开始,在快速语言介绍之后,团队设法编写了更多的单元测试并完成了比以往任何时候在 C# 中更多的编码 kata,即使它们是 F# 的新手。这在过去的四个编码道场中始终如一。

我们还用 F# 重写了我们的构建脚本——我们之前使用过 powershell 脚本。这鼓励我们超越旧构建脚本的复杂性。事实上,团队现在感觉代码非常易于维护,即使他们的知识有限。

实际上,这是一项非常成功的尝试,我们现在正在认真考虑在 F# 中编写一些重要的核心组件。

于 2013-08-08T09:22:46.843 回答