Как мне создать собственный API / Framework / Libraries - PullRequest
1 голос
/ 17 июня 2011

Некоторые библиотеки очень очевидны для меня.Я имею в виду, что могу самостоятельно создавать библиотеки математики, строк и т. Д.Я не понимаю, как люди создают такие API, как OpenGL, OpenCV, DirectX и MFC.Я не понимаю, как писать их самостоятельно, как я пишу библиотеки для вычисления математических и строковых функций.Есть ли в сети какие-нибудь ресурсы, которые бы научили меня, как я могу это делать.

1 Ответ

1 голос
/ 17 июня 2011

Такие библиотеки управляются двумя вещами.

1) это домен, в котором они работают (особенно архитектура графического процессора, их возможности и ограничения), и

2) модель этих возможностей, представленная разработчиком API.

Просто кто-то с некоторым (в идеале) разумным пониманием проблемной области сказал: «Я думаю, если вы хотите работать с графическим процессором, я бы хотел, чтобы графический процессор выглядел так», и предложил модель для представления потребителю API. Затем была написана среда для преобразования этого модельного представления, которое разработчик API разработал с учетом фактической работы базового механизма (в данном случае - графического процессора).

Рассмотрим что-то вроде инструмента Object Relational Mapper. Здесь они пытаются представить ОО-представление, сопряженное с базовым реляционным представлением.

Дизайнеры, вероятно, взяли некоторое представление о том, что они хотели, опробовали их, чтобы увидеть, насколько реалистично это было сделать, а затем начали заполнять пробелы и полировать края.

Чтобы начать, вам нужно просто выбрать домен, о котором у вас есть знания, но вам не нравится, как он работает, и подумать: «Черт, так будет лучше», а затем начать решать ЭТУ проблему. Если дела пойдут хорошо, у вас будет импульс, и процесс, скорее всего, станет более органичным. Но в идеале не слишком органично.

Сложная часть заключается в том, чтобы заставить ваш новый API работать и использовать его так, как его использует тот, кто не знает API или домен. Его использование также дает вам возможность снова встретить фазу «черт возьми, так будет лучше».

Прополощите и повторяйте до тех пор, пока вы не будете довольны результатом.

Мало бумажных конструкций переживают контакт с фактическим развитием системы. Некоторые из них работают лучше, чем другие, но трудно понять, как API будет чувствовать себя разработчиком, пока вы не начнете его использовать.

Так что попробуйте несколько apis самостоятельно, изучите те, которые вам нравятся, изучите те, которые вы ненавидите, и подумайте, как их улучшить, и поработайте над некоторыми доказательствами реализации концепций, чтобы увидеть, как это происходит.

...