Эмпирическое правило, которое вы предложили, звучит так же разумно, как и все остальное для меня. Действительно, это будет в каждом конкретном случае, когда потребители схемы (деловые люди, внутренние и внешние разработчики и т. Д.) Должны согласовать ее использование.
Внешняя схема - это ваш контракт с людьми (и их компьютерными системами), использующими эту схему. Так что да, вы должны как можно больше использовать схему, чтобы выразить свои ожидания от входящих данных - нет ничего хуже, чем передать схему, которая пронизана xs: любые элементы!
Если содержание элемента больше заданной длины вызовет ошибку, поместите эту информацию в схему.
Однако в реальном мире вы часто будете сталкиваться с ситуациями, когда вещи должны измениться по той или иной причине. Компрометация внутренних схем с более свободными ограничениями избавит вас от боли в будущем. В частности, при отображении множества внешних схем в вашу внутреннюю схему очень часто используется набор требований super , представленный внутренней схемой. Хотя, конечно, это означает, что ваша внутренняя обработка ошибок должна быть более надежной.