bslls:CachedPublic¶
Кеширование программного интерфейса (CachedPublic)¶
- Тип: Дефект кода
- Важность: Важный
- Включена по умолчанию: Да
- Теги:
standard,design
Описание диагностики¶
Не следует создавать программный интерфейс в модулях с повторным использованием возвращаемых значений.
3.6. Другой пример скрытия деталей реализации библиотеки от потребителя. Допустим: в первой версии библиотеки потребителям предоставлялась экспортная функция общего модуля с повторным использованием возвращаемых значений; Но в следующей версии библиотеки это проектное решение пересмотрено в пользу «обычного» общего модуля, куда эта функция была перенесена (аналогично, если в обратную сторону). В данном примере, для того чтобы избавить потребителя библиотеки от дополнительных усилий по замене вызовов «старой» функции на новую, рекомендуется сразу размещать экспортную функцию в «обычном» модуле, в его разделе «программный интерфейс». Тогда эта функция, в зависимости от текущего проектного решения, может вызывать служебную функцию из модуля с повторным использованием возвращаемых значений или из любого другого модуля, или непосредственно сама содержать реализацию. Однако для потребителя ее местоположение уже не будет меняться в следующих версиях библиотеки.
Примеры¶
Источники¶
Соответствие стандартам¶
- #std644, п. 3.6: Обеспечение совместимости библиотек — Диагностика «Кеширование программного интерфейса (CachedPublic)» проверяет условие пункта 3.6 стандарта std644.
Источник диагностики¶
- Исходная статья
- Ревизия:
f4616cda8a216789ee40529ed857e614b9e2ea25 - Лицензия:
LGPL-3.0-or-later