нормально, все вменяемые разработчики пытаются обеспечить ввод всех общедоступных методов (литье в соответствующих типов, проверяющий, дезинфицировать и т.д.)Защита ввода частных/защищенных методов?
Мой вопрос: вы в коде проверки достоверности данных и параметров, передаваемых защищенных/частных методов ? По-моему, это необязательно, если вы обеспечиваете правильное определение параметров общедоступных методов и возвращаете значения извне (другие классы, db, ввод пользователя и т. Д.).
Но я постоянно сталкиваюсь с фреймворками и приложениями (например, prestashop, чтобы назвать их), где валидация часто повторяется в вызове метода, в теле метода и еще раз для сохранения возвращаемого значения - что, я думаю, создает служебные накладные расходы и также является признаком плохого дизайна.
Вы не получите много служебных накладных расходов от проверки, если не используете регулярные выражения (которых вам не следует). – Andy
Я видел довольно плохие подтверждения, т.е. в упомянутом выше preashop у них есть метод isTableOrIdentifier в ORM, который использует regexp для проверки достоверности имени таблицы/столбца и называется буквально десятки раз внутри одного объекта (и представьте теперь импортировать сотни или тысячи объектов) –
Если вы делаете подходящий уровень Unit Testing, то пропустить некоторую проверку некоторых частных членов будет хорошо. Всегда есть риск, но если ваш; или рецензентов; проверка кода показывает, что ваши исходные предположения всегда будут правильными, исходя из того, что делают публичные члены-вызовы, тогда это хорошо. – JoeGeeky