Рекомендации и рекомендации по разработке API [закрыто]
Каковы некоторые рекомендации и рекомендации, которые я могу придерживаться при разработке API? Самый минимум, я знаю, что API должен быть простым в использовании и гибким. К сожалению, эти термины могут быть довольно субъективными, поэтому я искал некоторые конкретные рекомендации, касающиеся хорошего дизайна API.
5 ответов
Я нашел, что следующее стоит посмотреть Джошуа Блох -Как создать хороший API и почему это имеет значение
примеры находятся в Java, но все же вы можете провести параллели. Поскольку вы не упомянули конкретную технологию ; я предполагаю, что вам не нужны нишевые решения.
как тот, кто должен потреблять тонны API...
пожалуйста, напишите свой API последовательным образом:
согласованное именование в самом API. Используйте глаголы, существительные, ключевые слова в точно таком же стиле.
в соответствии с целевой средой, в которой он будет использоваться. Если .NET, то обратитесь к рекомендациям Microsoft по именованию.
в соответствии с концепцией. Фабричная модель? Шаблон строителя? Статические методы? Интерфейсы? Просто выбери одну и держись ее. ДЕЙСТВИТЕЛЬНО. Нет такой вещи, как маленький исключение из правил. Он будет торчать, как большой больной палец. Более 1 исключение? Ваш API все более и более любительский.
вот еще один: специфика.
базовые классы, которые я могу реализовать, если вы решите их предоставить, должны иметь несколько и четко определенных функций для реализации. Не говорите мне, что " GetData ()" возвращает "object []", а затем ожидайте, что я его реализую, выясню, почему я должен привести его к строке [], а затем отлаживаю, почему он вызывается 20 раз. Гораздо лучше иметь DataPoint[] GetChartData(), string[] GetLabelData () и т. д. и позвольте мне выбрать, какие из них я должен реализовать.
пожалуйста, не глупите-долго с именами: PostRenderColorWheelModifyHSVBasehandler. Можно выполнить рефакторинг супер-конкретные вещи в более общее название + параметры.
-
строковые параметры-нет-нет! Используйте перечисления. Я не хочу использовать обработчик как
PostRenderHandler ("ColorWheel"," HSV", someDelegate);
Я бы предпочел перечисление, которое я могу исследовать:
PostRenderHandler(ModuleType.ColorWheel, Options.ColorWheelHSV, someDelegate);
есть хорошие презентационные навыки об этой теме от Джошуа Блоха. В презентации используется Java, но идеи не зависят от языка. другой источник (pdf) краткий обзор.
Это ссылка от Microsoft: http://msdn.microsoft.com/en-us/library/ms229042.aspx
появилась эта книга: Рекомендации по разработке платформы: соглашения, идиомы и шаблоны для многоразовых библиотек .NET
Я думаю, что ваш вопрос не получить ответ в указанный объем с количеством информации, которую вы даете. Я поместил несколько ссылок из набора "api design" в google, и на первой странице они выглядят красиво хорошо!--1-->
http://web.archive.org/web/20151229055009/http://lcsd05.cs.tamu.edu/slides/keynote.pdf
http://www.artima.com/weblogs/viewpost.jsp?thread=142428
http://web.archive.org/web/20090520234149/http://chaos.troll.no/~shausman/api-design/api-design.pdf