Показать сообщение отдельно
Старый 02.09.2011, 10:08   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Чем принципиально отличается детализированные сообщения от недетализированных? Тем что вместе с ошибкой "класс вызван с неверными параметрами" будет выведена ещё и трасировка стека? Или в сообщении "поле должно быть заполненно" будет полностью расшифрованы названия таблиц и обязательных полей?
Нет, сообщения будут вполне обычными: поле такое-то должно быть заполнено, поле такое-то НЕ должно быть заполнено, значение поля такого-то должно быть в диапазоне от и до, значение поля должно быть больше/меньше/не равно такому-то значению и т.п. Идея в том, чтобы сделать "говорящими" по возможности все логические выражения, не перегружая при этом код, что в сочетании с грамотным использованием setprefix() подчас просто творит чудеса Без подобных средств модификации зачастую пишутся так, что проверяется с десяток самых разных условий, делается пяток ветвлений в коде, и на выходе пользователь получает лишь скупое "обновление было отменено".
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
пользователям не нужны такие детализированные сообщения, пользователям нужны сообщения на естественном языке, на языке бухгалтера, экономиста, кладовщика и т.д и т.п.
У вас наверняка в Аксапту уже встроен искусственный интеллект? Пользователи могут не подозревать о том, какой сложности функционал отрабатывает в ответ на их действия, именно поэтому в т.ч. им нужны детализированные сообщения об ошибках, в которых передается контекст происходящего и объясняется, какие проверки привели к тем или иным решениям.
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Вот программистам нужны детализированные сообщения. Так им проще локализовать ошибку.
"Если врач сыт, то и больному легче..." (с) х/ф "Формула любви"
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Есть конечно такие области системы (базовые классы, таблицы или универсальные обработки), в которых находится общая логика, где уже при всём желании невозможно конкретизировать выполняемую в данный момент задачу.
Да все возможно - setprefix() рулит! Просто нужно контекст передавать в сообщениях об ошибках, тогда они станут намного понятнее и доходчивее.
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Задача же клиентского кода работающего с конкретной задачей пропустить минимум ошибок мимо себя в такие базовые области. Т.е. Нужно стремиться ловить ошибки как можно ближе к месту их возникновения, тогда будет проще описывать их на естественном языке.
Непонятно, что тут понимается под клиентским кодом. validateField() на таблице - это клиентский код?..