Одним из вариантов является создание документации API из заголовка с использованием (например) Doxygen. Очевидно, вы по-прежнему отправляете документы вместе с кодом.
Это дает два преимущества:
1) Вы не волнуйтесь так много о том, стоит ли что-то быть «в документации» или просто «в комментариях в заголовке», потому что изменение одного так же просто как изменение другого. Так что все идет в документации.
2) Пользователи с меньшей вероятностью начнут читать ваш файл заголовка в первую очередь, потому что они могут быть разумно уверены, что все, что интересует, содержится в документации. Но даже если они умирают «я не доверяю документам, я читаю коды», они все еще видят все, что вы хотите, чтобы они видели.
Недостатком созданных автоматически документов API является то, что они могут стать кошмаром для поиска, поэтому ИМО стоит приложить дополнительные усилия для написания действительно хорошей «вводной» документации. Это может быть или не быть частью созданных документов API, в зависимости от того, что вы предпочитаете. Для небольшого API просто список всех функций в «логическом», а не в алфавитном порядке или порядке источника, описанных в соответствии с их для, а не в том, что они делают, может значительно облегчить доступ к документам API , Под «логическим» я имею в виду список часто используемых функций в первую очередь в том порядке, в котором клиент будет их называть, с альтернативами, которые «делают то же самое» (такие как send и sendTo для сокетов), сгруппированные вместе. Затем перечислите менее часто используемые функции и, наконец, неясные вещи для продвинутых пользователей и необычные случаи использования.
Одной из основных трудностей подхода, который может быть демонстрационным стопором, является то, что в зависимости от вашей организации у вас может быть команда документов, и может быть невозможно редактировать заголовок. В лучшем случае сценарий заключается в том, что они копируют-редактируют то, что вы сделали, и делаете изменения и кормите их. В худшем случае вся идея прерывается, потому что «только команда документов должна писать документацию, ориентированную на клиента, и она должна быть в стандартном формате, и мы не можем сделать вывод Doxygen в таком формате».
Что касается «что еще вы должны рассмотреть» - Вы уже сказали, что вы будете следовать рекомендациям, так что трудно добавить много :-)
Можете ли вы пояснить: «ничто не нужно разработчикам» - я предполагаю, что вы имеете в виду разработчиков _our_; что нужно разработчикам _customer_, нет?Я надеялся, что кто-то упомянет лицензионные/юридические вопросы. Благодаря! – 2008-11-10 01:08:07
@Adam: «ничего, что нужно только разработчикам» означает людей, предоставляющих заголовок. В частности, публичный заголовок не должен содержать никаких typedef или перечислений (или просто структур или объединений), которые не требуются явными функциями открытого интерфейса (и глобальными переменными, если они есть). – 2008-11-15 23:08:43