Занимательные баги вёрстки
Иногда верстальщикам приходится отлавливать самые занимательные баги. К примеру на один из сервисов мы довольно старательно сделали весь базовый функционал, дизайн, вёрстку, вроде всё честно. Сделали языковые версии сервиса (я верстала под английскую и чуток стерелизовала после под прочие – французскую, немецкую, итальянскую и испанскую). Дальше канадские программеры сказали, что “остальные мелочи мы уж тут сами”. Сегодня звонят, мол глюк у нас тут, да такой, что уже крышу сносит. В одном из блоков (простенько отвёрстанный блок, чуток только декорированный, с перечнем причин, почему могла не пройти транзакция) на английской версии (той, которую я верстала) всё нормально, а остальные версии – там типа какие-то пробелы в середине блока добавляются. Причём смотрят ресурсные файлы – вёрстка одинаковая, равная правильной английской. Смотрят source code документа в браузере – там всё чисто, вёрстка без ошибок, нигде не могут найти баг. Т.е. глюк есть, а бага не видно.
Я тоже не сразу нашла. Честно говоря танцы с бубном пришлось исполнить. Знаете, что оказалось? Их мудрый верстальщик, или кто-то там, кто правил ресурсные файлы, открывал xml на редактирование в каком-то (пока не знаю в каком) редакторе, который после себя оставил некоторое количество непечатных символов, не в смысле матерных, а в смысле не отображаемых. Они не обнаруживались простыми методами, они не показывались в исходном коде документа браузера, они не ловились даже если с клавиатуры по символам идти построчно. Совершенно случайно в M$ Studio в режиме редактирования полей ресурсов увидела странные квадратики. Почистила код, запустила проект ура, всё работает! Заодно обнаружила ещё несколько кривостей, уже не наших. Отписываю это всё канадскому PM`у:
Alex: так-перетак-разтак!!! Как ты смогла это вычислить?
Tatyana: гы. танцы с бубном
Alex: шаман, однако
Alex: Ты можешь все это кинуть мне в мыло? Подробненько, чтобы и дятлу было понятно. Пли-и-из
Tatyana: Счас, секунду. только я по русски напишу письмо
Alex: Да хоть на суахили. Мне все-равно туда нужно будет маты вставлять
Alex: Ну открой секрет, как же ты все-таки находишь такие баги, Таня
Tatyana: Я ковыряла долго. Потом, с возрастом приходит убеждение, что чудес не бывает
Alex: А-а-а-а, так вот в чем разница. Я-то все еще верю в чудеса…
Tatyana: Чудеса может и бывают, но логически предсказуемые!

Я так понимаю, что макет был в UTF и баги были в IE, а символами были BOM (http://unicode.org/faq/utf_bom.html#22)? =)
Я сам на это наткнулся пару месяцев назад и был сильно удивлен =)
BOM`ы, говоришь… не знаю, наверное. С ними самое удивительное – это найти куда смотреть. Ищешь-то траблы в вёрстке, в таблице стилей, смотришь в 105-й раз на код… В общем, как в тексте – есть глюк, а в чём баг – не понятно
первый раз столкнулась.
я их первый раз обнаружил с помощью IEDevToolBar =)
Такие вещи вылавливаются быстро, особенно в XML если пропускать через всякие xsltproc и другие lint’ы.
А еще совет знать и любить кодировки в которых пишешь
А редактор который ставит BOM’ы это MS Notepad.
Расследование показало, что… есть там, короче, один красавец. Если я ничего не путаю, он начинал менеджером, его потихоньку приобщили к простым процедурам, как в случае с ресурсными файлами – когда перевёрстывать ничего не надо, нужно только повставлять в шаблоны переведённые на 5 языков тексты. Вот именно он их редактировал, а уж в каком редакторе… история умалчивает.
Похоже, его уровень квалификации не позволит ему понять, что такое кодировки и в куда их можно любить.
ммм…в верстке без проблем не обойтись =(