-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
validate methods (related to Specification and Definition classes) questions #15
Comments
Вопросы:
- Валидатор, что это: класс, функция?
- Есть ли где-то реализованные примеры внутри каких-то
- Где вызываются Валидаторы? Предлагаю в конце cfg.py + должны падать с
описанием проблемы
Нам грозит еще сделать список переменных со строкой описания в cfg.py - для
фронпейдж.мд , его тоже надо валидировать, поэтому дело нужное.
плюс внутренне поддерживаю на основании того, что валидации и сообщения об
ошибках лучше держать отдельно от осноаного кода, потому что они ветвистые
и страшные
8 июн. 2017 г. 3:52 ПП пользователь "varnie" <notifications@github.com>
написал:
… Речь про метод vaildate в классе Дефиниции и Спецификации.
Открытые вопросы на обсуждение:
Как предполагается использовать методы validate в Спецификации и Дефиниции?
Как реагировать на невалидные данные: игнорировать и выбрасывать варнинг,
падать, или еще каким-то образом?
Может быть вынести эту логическую часть во внешнюю сторону, т.к. сейчас
опять придем примерно к той же ситуации, что была с классом Table (где
объекты могут иметь невалидное состояние).
Можно завести т.н. Валидаторы, в которых реализовать всю эту логику, как
для Спецификаций, так и для Дефиниций.
Плюс завернуть получение Спецификации и Дефиниций сразу в этот валидатор,
который на выходе даст только валидные объекты и отрапортует о найденных
проблемах.
Это на уровне идеи.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#15>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AI1grnuoHnrpEh5BN5_wVhDH74CxUlO1ks5sB-6bgaJpZM4N0Brt>
.
|
Валидатор - это название подхода, имплементация может быть как ф-цией так и классом. В самом простом случае подход через дескрипторы подойдет. Простейший пример представлен здесь: Есть еще тяжеловесный http://www.formencode.org/en/latest/Validator.html Хотел бы напомнить, что мы хотим уйти от необходимости наличия методов validate в классах, тем самым избежать заведения "невалидных" объектов. |
Some implementations at 027a92a |
Посмотрите плс - получилось реализовать классы IsuueWarning и Check по parse.py. |
Неочень понятна зона ответственности у класса Check и IssueWarning. Может быть не работать внешне с IssueWarning, а пусть все проверки (и нефатальные тоже) идут через класс Check, Скажем, сейчас в конструкторе Таблицы есть такое:
Чем это словесно отличается от метода table_defined класса Check, кроме того что в table_defined отлавливаются фатальные ошибки, а в этих строках просто варнинг? Понятнее было бы как-то так, в конструкторе Таблицы: Может выше непрозрачно написал; если перефразировать, то предлагаю сделать класс IssueWarning вспомогательным, который будет вызываться только из класса Check. |
Речь про метод vaildate в классе Дефиниции и Спецификации.
Открытые вопросы на обсуждение:
Как предполагается использовать методы validate в Спецификации и Дефиниции?
Как реагировать на невалидные данные: игнорировать и выбрасывать варнинг, падать, или еще каким-то образом?
Может быть вынести эту логическую часть во внешнюю сторону, т.к. сейчас опять придем примерно к той же ситуации, что была с классом Table (где объекты могут иметь невалидное состояние).
Можно завести т.н. Валидаторы, в которых реализовать всю эту логику, как для Спецификаций, так и для Дефиниций.
Плюс завернуть получение Спецификации и Дефиниций сразу в этот валидатор, который на выходе даст только валидные объекты и отрапортует о найденных проблемах.
Это на уровне идеи.
The text was updated successfully, but these errors were encountered: