Pull to refresh

Разработчик-детектив: занимательные задачки из реальной жизни

Reading time3 min
Views4K
image

Посреди долгой рутины веб-разработки мне иногда встречаются необычные ошибки. Вот, вроде, всё хорошо — и так работает, и сяк работает. А по-третьему — не работает, хотя на первый взгляд должно. Я просто обожаю процесс поиска причин таких ошибок и хотел бы поделиться некоторыми из таких историй. Ответы (что на самом деле было не так) опубликую через пару дней.

1. Загадочный слайдер


Есть два сайта на поддержке (разработаны не мной), интернет-магазины. Код полностью идентичен — как фронтенд, так и бэкенд (один скопирован с другого после завершения разработки). На главной у обоих сайтов, помимо прочего, обычный javascript'овый слайдер с товарами.

Однажды заказчик обратился и сообщил, что один из слайдеров «сломался». Перестал крутиться (автоматически и при нажатии на кнопки). Когда именно он сломался, сказать не может, но код явно не модифицировался уже давно. И, что главное — другой слайдер на другом сайте работает как часы.

Как я уже говорил, код сайтов идентичен, единственные различия — хостинг-провайдер, домен, название, и также — разный ассортимент товаров (пересекается только процентов на 20).

В чём может быть причина поломки?

Важная подсказка: оба сайта занимаются парфюмерией.

2. Загадочная корзина


Те же два сайта. Заказчик жалуется, что на одном из сайтов товары иногда не добавляются в корзину (кнопкой со страницы товара). Но — только на одном из них.

Поверхностное тестирование показало — проблема воспроизводится, и в самом деле, лишь на одном из сайтов. Возникает проблема только в случае, если открыть каталог и пытаться как можно быстрее открывать оттуда страницы товаров и нажимать на кнопку «В корзину».

В консоли ошибок JS нет, единственное — не может найти файл какой-то картинки-иконки из шаблона сайта:

GET http:// домен_cайта /img/1.gif 404 (Not Found)

Но ошибка возникает на обоих сайтах и домен везде указан верный (свой). Да и какое это может иметь отношение?

3. Загадочная гугло-карта


На поддержку попал чужой кастомный код с гугл картой, на которой должны были показываться точки найденных городов. Смысл простой — по текстовому названию города ищутся его координаты и по ним ставится точка.

Вводим Лондон — получаем точку в Лондоне, вводим Париж — тоже на первый взгляд всё выглядит верно. Но ни один другой город не работает правильно — точки оказываются посреди совсем другой страны. США, РФ, Азиатские страны — всё не туда.

Сначала подумал, что возможно оно таки находит по указанным координатам мелкие города-тёзки, но нет, посмотрел по карте — и близко таких нет. А некоторые точки так и вообще указаны где-то в море.

Посмотрел код, исключил возможность хардкода координат городов. Сколько бы ни тестил, кажется, что ничего не работает, но Лондон-то находит стабильно!



Уверен, что у многих тоже найдётся пара таких занятных историй. Пожалуйста, не стесняйтесь, добавляйте их в комменты к посту.


Ответы:


Задача 1
Samouvazhektra
про слайдер с парфюмом, подозреваю что могло вызывать проблему какое-нибудь французское название с апострофом
andyudol
В котором вместо апострофа напечатана одиночная кавычка.


В точку!

Задача 2
Оказывается, ненайденная картинка таки может влиять. На одном из хостингов было настроено по умолчанию, чтобы выдавалась стандартная страница 404, на другом — развесистая, со счётчиками и картинками. К кнопке корзины обработчик подключался на document.ready, поэтому на одном из сайтов он не всегда успевал подключаться — ждал, пока полностью догрузится страница.
Решил просто добавлением прозрачной однопиксельной картинки с нужным именем.

Задача 3
andrew72ru
На карте перепутаны широта и долгота
BratSin
… Скорее, что-то с долготой.…


Да, проблема была с долготой — в переменной для неё была допущена ошибка, поэтому всегда передавалось пустое значение (ноль).
Tags:
Hubs:
Total votes 27: ↑10 and ↓17-7
Comments20

Articles