Кеширование программного интерфейса (CachedPublic)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Дефект кода |
BSL |
Важный |
Да |
5 |
standard design |
Описание диагностики¶
Не следует создавать программный интерфейс в модулях с повторным использованием возвращаемых значений.
3.6. Другой пример скрытия деталей реализации библиотеки от потребителя. Допустим: в первой версии библиотеки потребителям предоставлялась экспортная функция общего модуля с повторным использованием возвращаемых значений; Но в следующей версии библиотеки это проектное решение пересмотрено в пользу «обычного» общего модуля, куда эта функция была перенесена (аналогично, если в обратную сторону). В данном примере, для того чтобы избавить потребителя библиотеки от дополнительных усилий по замене вызовов «старой» функции на новую, рекомендуется сразу размещать экспортную функцию в «обычном» модуле, в его разделе «программный интерфейс». Тогда эта функция, в зависимости от текущего проектного решения, может вызывать служебную функцию из модуля с повторным использованием возвращаемых значений или из любого другого модуля, или непосредственно сама содержать реализацию. Однако для потребителя ее местоположение уже не будет меняться в следующих версиях библиотеки.
Примеры¶
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:CachedPublic-off
// BSLLS:CachedPublic-on
Параметр конфигурационного файла¶
"CachedPublic": false