以下文章介绍了设置 F# 代码的格式指南以及语言功能的主题指南及其使用方式。
本指南是基于 F# 在大型代码库中由一组不同的程序员使用的经验制定的。 本指南通常会导致成功使用 F# 并在程序要求随时间变化时最大程度地减少挫折感。
良好的 F# 代码的五个原则
在编写 F# 代码时,请牢记以下原则,尤其是在随时间变化的系统中。 进一步文章中的每一篇指导都源于这五点。
优良的 F# 代码简洁、富有表现力且易于组合
F# 具有许多功能,可让你以更少的代码行表达作并重复使用泛型功能。 F# 核心库还包含许多有用的类型和函数,用于处理常见的数据集合。 你自己的函数和 F# 核心库(或其他库)中的函数组合是常规的惯用 F# 编程的一部分。 一般来说,如果你能用更少的代码行解决问题,其他开发人员(或将来的你)会表示赞赏。 此外,强烈建议使用 FSharp.Core 等库、F# 运行 的大量 .NET 库 ,或者在 NuGet 上运行第三方包(如果需要执行非琐碎任务)。
良好的 F# 代码可互作
互操作可以采用多种形式,包括使用不同语言的代码。 其他调用方与之互操作的代码边界是正确处理的关键部分,即使调用方使用的也是 F#。 编写 F# 时,应始终考虑其他代码将如何调用要编写的代码,包括是否从 C# 等其他语言调用它们。 F# 组件设计指南详细介绍了互作性。
良好的 F# 代码利用对象编程,而不是对象方向
F# 完全支持使用 .NET 中的对象进行编程,包括 类、 接口、 访问修饰符、 抽象类等。 对于更复杂的功能代码(如必须感知上下文的函数),对象可以轻松地以函数无法的方式封装上下文信息。 借助可选参数和谨慎使用重载等功能,调用者可以更容易地使用此功能。
良好的 F# 代码性能良好,无需暴露突变
编写高性能代码并不机密,必须使用突变。 毕竟,计算机的工作原理就是这样。 此类代码通常容易出错,难以正确。 避免向调用方公开变异。 相反, 构建一个功能接口,在性能至关重要时隐藏基于突变的实现 。
良好的 F# 代码是易于使用工具处理的
工具对于在大型代码库中工作非常有用,你可以编写 F# 代码,以便它可以更有效地与 F# 语言工具一起使用。 一个示例是确保不要过度使用无点编程样式进行编程,以便可以使用调试器检查中间值。 另一个示例是使用 XML 文档注释 来描述构造,以便编辑器中的工具提示可以在调用网站上显示这些注释。 请始终考虑其他程序员如何使用他们的工具来读取、浏览、调试和操作您的代码。
后续步骤
F# 代码格式设置指南提供了有关如何设置代码格式的指导,以便易于阅读。
F# 编码约定提供了 F# 编程成语的指导,可帮助长期维护较大的 F# 代码库。
F# 组件设计指南提供有关创作 F# 组件(如库)的指导。