2011-06-17 75 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的你自己,學習那些你喜歡的,研究這些你恨,想如何讓他們更好地和工作理念上實現的一些證據,看看它是如何去。