Запреты vs ограничения, пример
Apr. 20th, 2013 01:37 amЭто вот прямо “за что боролись, на то и напоролись”. Я тут ратовал как-то про то, что ограничения лучше, чем полное исключение фич – и сам такую ошибку сделал. Очень показательный пример.
Мне написал про jQuery.my француз. Дескать, вот код работал раньше в версии 0.7, а с 0.7.2 – перестал. В ИЕ6, ога. Ну, я под ИЕ6 это и не тестировал толком даже, но он очень странные симптомы описал. По его словам глючило то, что не глючило у меня ни разу с рождения и устроено так, чтобы никогда не глючить вообще – обвешено обработчиками ошибок.
Я ему ответил, что это оч странно и попросил код прислать. Он прислал.
Код – все прелести javascript. Вплоть до рерайтинга, красота. Такое не пишут напоказ, это самый лучший код. И неприятно очень там видеть
delete (parsed['param']); // pas compatible avec Jquery.my donc on supprime
“Несовместимо с jQuery.my и поэтому должно быть удалено”. Это я без г-транслейта понял, увы.
Так вот его код не взлетел, потому что я в 0.7.2 вырезал одну фичу. Я решил, что если контрол в форме ни с какими данными не связан, то и проверять его на валидность незачем.
А чувак использует jQuery.my только для валидации форм. Обычных. Которые ему сервер нарисовал. Он ни с какими даными контролы не связывает. Он их просто валидирует, а потом форму кнопкой Submit на сервер отправляет если данные ок, ога. И оно у него даже в ИЕ6 работало о_О
Причём я когда jQuery.my придумывал, я такой сценарий предусмотрел – а потом решил, что эта фича лишняя и можно чуток ускориться (процента на 2, ога). Ну и вырезал её нахрен. Ну казалось бы, кому нужен ещё один просто валидатор?
А у него вот такой сценарий, что нужен просто валидатор – но очень навороченный, а не regexp там нопремер. Причём такой, который зависит от кучи состояний runtime environment’а.
Фичу верну, будет включаться опцией в параметрах.