2011-06-17 109 views
1

有些库对我来说非常明显。我的意思是我可以自己创建数学,字符串等库。我不明白人们如何创建像OpenGL,Op​​enCV,DirectX和MFC这样的API。我不懂如何自己编写它们,就像编写库来计算数学和字符串函数一样。网络上有没有资源可以教会我如何去做这件事。如何开始创建我自己的API /框架/库

回答

1

这些类型的图书馆是由两件事情驱动的。

1)是他们(特别是GPU架构,以及它们的能力和限制)正在使用的域名,并

2)的这些能力,鉴于由API设计模型。

简而言之,某个对问题域有一些(理想)合理理解的人说:“我认为,如果你想用GPU工作,我希望GPU看起来像这样”,并提出了一个模型,呈现给API消费者。然后编写该框架来转换API设计人员根据底层机制(在本例中为GPU)的实际工作原理设计的模型视图。

考虑类似于对象关系映射器工具。在这里,他们正在尝试提供一个与底层关系表示交互的OO视图。

设计师可能注意到他们想要的一些想法,试图出来,看看它是如何做的逼真,然后开始在填补空白和抛光的边缘。

你开始的方法是简单地选择一个你知道的领域,但不喜欢它的工作方式,并认为“天哪,这会更好”,然后开始解决这个问题。如果事情顺利,你会有一些动力,这个过程可能会从那里变得更加有机。但是,理想情况下不要太有机。

难的是把你的新的API工作,并把它作为人谁不知道这个API,或必然的域,会使用它。使用它也让你有机会再次遇到“天哪,这会更好”。

冲洗和重复,直到你满意的结果。

很少有纸张设计能够在系统的实际开发中保持联系。有些比其他人做得更好,但是直到开始使用API​​时,很难知道API作为开发人员的感受。

因此,尝试了几个API的你自己,学习那些你喜欢的,研究这些你恨,想如何让他们更好地和工作理念上实现的一些证据,看看它是如何去。