Как консолидировать документацию по разным языкам / средам? - PullRequest
2 голосов
/ 19 июня 2010

Я занимаюсь разработкой библиотеки классов, предназначенной для решения широкого круга задач.Одна вещь об этой библиотеке - то, что она будет использоваться несколькими различными языками и средами изначально.Например, будет версия C ++, полностью написанная на C ++, версия .NET, написанная на C #, и версия Java, написанная на Java, без каких-либо зависимостей друг от друга ... в отличие от написания базовой библиотеки на C ++ и простого предоставленияПривязки .NET и Java к нему.

Библиотека в каждой из ее различных форм предназначена для решения различных, но иногда очень похожих задач.Например, может быть много классов, члены которых будут функционально идентичны на каждом языке, и также будет много классов, которые будут присутствовать только в одной или двух языковых версиях библиотеки, но не в других.Возьмите класс или структуру, представляющую номер версии программы.В .NET уже есть такой класс (System.Version), что я бы не включил его в свою версию .NET, но библиотеки C ++ и Java предоставили бы его.

Проблема, с которой я сталкиваюсь, заключается в том, что для классов, которые будутсуществуют в большинстве или во всех версиях библиотеки, документация останется относительно неизменной (очевидно).Краткий текст для версии C ++ и Java для структуры Version будет выглядеть примерно так: «Представляет номер версии программного обеспечения в форме major.minor.build.revision» ... как и подробное описание класса, а также всех членов.документация и т. д. Как вы знаете, .NET, Java и C ++ имеют собственный синтаксис документации.Есть ли какой-нибудь способ, которым я могу попытаться объединить документацию не зависящим от языка способом (БЕЗ написания документации отдельно от исходного кода - например, ручная документация, а не генерация с помощью doxygen / sandcastle / javadoc) или я застрял, копируя и вставляяодин и тот же текст в исходные файлы каждой версии?

1 Ответ

0 голосов
/ 19 июня 2010

У меня были те же проблемы, и я решил, что у меня есть только два варианта:

  1. Использование одного и того же генератора документации на всех языках.Если вы используете doxygen (или ROBODoc, или что-то еще) для всех из них, у вас будет только один синтаксис doc для всех языков.Это означает, что вам придется покончить с соглашениями, относящимися к конкретному языку.
  2. Напишите свой собственный анализатор документов.Это тяжелая работа, особенно для языка с довольно сложными синтаксическими правилами (например, C ++.)

В настоящее время мы используем doxygen для таких проектов.

...