Часто ли вы видите в документации API (как, например, в 'javadoc публичных функций') описание "пределов значений", а также классическую документацию?
Примечание: Я не говорю о комментариях в коде
Под "пределами значений" я имею в виду:
- Может ли параметр поддерживать нулевое значение (или пустую строку, или ...)?
- Может ли возвращаемое значение быть нулевым или гарантированно никогда не будет нулевым (или может быть "пустым", или ...)?
Пример:
Что я часто вижу (не имея доступа к исходному коду):
/**
* Get all readers name for this current Report. <br />
* <b>Warning</b>The Report must have been published first.
* @param aReaderNameRegexp filter in order to return only reader matching the regexp
* @return array of reader names
*/
String[] getReaderNames(final String aReaderNameRegexp);
Что бы я хотел увидеть было бы:
/**
* Get all readers name for this current Report. <br />
* <b>Warning</b>The Report must have been published first.
* @param aReaderNameRegexp filter in order to return only reader matching the regexp
* (can be null or empty)
* @return array of reader names
* (null if Report has not yet been published,
* empty array if no reader match criteria,
* reader names array matching regexp, or all readers if regexp is null or empty)
*/
String[] getReaderNames(final String aReaderNameRegexp);
Моя точка зрения:
Когда я использую библиотеку с функцией getReaderNames (), мне часто даже не нужно читать документацию API, чтобы угадать, что она делает. Но мне нужно быть уверенным , как им пользоваться .
Моя единственная проблема, когда я хочу использовать эту функцию: чего мне ожидать в отношении параметров и возвращаемых значений? Это все, что мне нужно знать, чтобы безопасно настроить мои параметры и безопасно проверить возвращаемое значение, но я почти никогда не вижу такую информацию в документации API ...
Редактировать:
Это может повлиять на использование или нет для проверенных или непроверенных исключений .
Что ты думаешь? лимиты значений и API, они принадлежат друг другу или нет?