繁体   English   中英

设计.NET API以供将来与F#一起使用的提示

[英]Tips on designing a .NET API for future use with F#

我正在设计.NET API,允许开发人员为3D模拟足球联赛创建RoboCup代理。

我很高兴API如何使用C#代码,但是我想使用这个项目来提高我的F#技能(目前基于阅读而不是练习)。

所以我想问一下在设计一个由C#和F#代码使用的API时我应该考虑哪些事情。

有些观点。

  • 我大量使用矩阵和矢量数学。 这些是当前不可变的类/结构。
  • API当前使用消费者实现(例如: IAgent )定义了一些接口,使用其实现的实例(例如: MyAgent )来构造其他API类(例如: new Client(myAgent) )。
  • API触发事件。
  • API公开了一些委托类型。
  • API包含几个枚举。

我想尽快发布一个版本的API,如果我意识到使用F#太难了,我不想在以后对它进行重大修改。 任何建议表示赞赏。

最好的建议可能是尝试使用F#中的API。 :)

那就是说,我觉得你听起来不错

  • 任何好的C#API都应该是一个非常好的F#API
  • 在边界使用delegates / Func / Action时会有一点摩擦,但这里没有什么可以改变的
  • 枚举,事件,接口,类,结构都很好
  • 如果可能的话,请避免使用返回通常被忽略的值的API(例如,'返回'以便能够'链接调用'的流畅接口 - 这会导致F#需要大量的|>ignore s)

但实际上,花一个小时尝试编写库的F#使用者。 在最坏的情况下,你可能会建议一些辅助函数或F#的扩展方法来平滑界面边界上的任何摩擦点,但我认为你所拥有的一切都应该没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM