代码之家  ›  专栏  ›  技术社区  ›  Drew Noakes

设计.NETAPI以供将来使用的技巧#

  •  3
  • Drew Noakes  · 技术社区  · 14 年前

    我正在设计一个.NETAPI,允许开发人员为应用程序创建RoboCup代理 3D simulated soccer league

    我很满意API如何与C代码一起工作,但是我想用这个项目来提高我的F技能(目前它是基于阅读而不是实践)。

    所以我想问一下,在设计一个同时被C和F代码使用的API时,我应该考虑哪些方面。

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

    我想尽快发布一个API版本,如果我意识到从F#开始工作太困难,我不想在以后对它进行重大更改。任何建议都将不胜感激。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Brian    14 年前

    最好的建议可能是尝试使用F#的API

    • 任何好的C#API都应该是相当好的F#API
    • Func / Action 在边界上,但这里没有什么可以改变的
    • 枚举、事件、接口、类、结构都很好
    • 如果可能的话,一定要避免返回通常被忽略的值的API(例如,fluent接口“return this”能够“chain calls”,这会导致F#需要大量的 |>ignore 秒)

    但真的,花一个小时,试着写一个图书馆的F#消费者。很有可能,在最坏的情况下,你可以为F#建议一些辅助函数或扩展方法来平滑界面边界上的任何摩擦点,但我认为你所拥有的一切都应该是好的。