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

в 15:02, , рубрики: задачки, Занимательные задачки, Одна из черепашек врёт, Программирование
image

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Автор: i86com

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js