Як постійно оновлювати приклади коду в javadocs


9

Я працюю над невеликою бібліотекою, яка забезпечує реалізацію основних, добре відомих рядкових показників. Переважно для моєї власної освіти. Тож розвиток відбувається коли-небудь у мене трохи вільного часу.

Через це я автоматизував більшість процесів, тому я можу випускати версію так часто, як я працюю над нею без особливих зусиль. Однак підтримка Java-документа все ще є тягарем, оскільки вона включає приклади.

У міру розвитку API я повинен вручну перевіряти кожен приклад знову і знову. Чи є кращий спосіб зробити це?

Я розглядав можливість переміщення документації та прикладів в окремий проект (наприклад, Підручник з суппорта ), щоб він міг бути повторно розроблений і складений разом із звичайним кодом. Однак це відсуває документацію від класу, про який йдеться.

Так що так. Я хотів би мати свій торт і їсти його теж. : D

 * <h2>Tokenization</h2>
 * 
 * Tokenization cuts up a string into tokens e.g.
 * <code>chilperic ii son of childeric ii</code> is tokenized into
 * <code>[chilperic, ii, son, of,
 * childeric, ii]</code>. Tokenization can also be done repeatedly by tokenizing
 * the individual tokens e.g.
 * <code>[ch,hi,il,il,lp,pe,er,ri,ic, ii, so,on, of, ch,hi,il,ld,de,er,ri,ic, ii]</code>
 * <p>
 * 
 * <pre>
 * <code>
 * {@code
 *  return new StringMetricBuilder()
 *          .with(new SimonWhite<String>())
 *          .tokenize(new Whitespace())
 *          .tokenize(new QGram(2))
 *          .build();
 * }
 * </code>
 * </pre>
 * 
 * <p>

Якщо вище, це занадто абстрактно. Це зразок документації. В даний час я додаю статичні конструктори, як радить Ефективна Java, наприклад Tokenizers.createQGram(2), знецінюючи метод конструктора. Кожен раз, коли я роблю щось подібне, мені доведеться оновлювати приклад коду вище та перевіряти, чи він все ще працює.

Відповіді:


8

Це може не відповісти на ваше запитання - залежно від того, наскільки "вимога" має бути ці приклади у вашій документації.

Можливо, ви могли б зробити інший кут: Наведіть приклади у своїх тестах JUnit. (Можливо, навіть такий пакет, як com.examples) Проблема коду в коментарях полягає в тому, що ваша IDE здебільшого ігнорує його. Але ваш IDE підтвердить код у ваших тестах JUnit. Роблячи це, ви гарантуєте, що приклади коду є "правильними" - тести або не збиратимуться, або просто виходять з ладу, якщо ви їх не оновлювали.

Я не є майстром з Javadocs, але може бути спосіб пов’язати документацію вашого вихідного файлу з файлом JUnit з прикладом коду. Я дійсно не знав би з чого почати. Допитливий гуглінг показав мені @seeмітку . Я тестував це в проекті, але не перевіряв його у фактичному Javadoc після його генерування.

Це, безумовно, вимагатиме трохи попередніх досліджень, але я дійсно думаю, що вам буде краще в довгостроковій перспективі, якби ваші приклади коду справді збиралися.

Як мета розтягування, ви також можете додати кодове покриття під час запуску своїх прикладів JUnit. Таким чином, ви з першого погляду дізнаєтесь, наскільки ваша база коду покрита вашими прикладами.


Переконала мене здатність одиничного тестування. Я відокремлю документацію в простому функціональному описі і переміщую приклади в проект підручника. Жорстке посилання на файл на github може бути трохи незручним, але це прийнятна компроміс.
депутат Корстаньє
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.