Эпоха Пара

Я паро-панк
и я люблю паро-панк

ПубликацииПубликации ПрограммыПрограммы ИгрыИгры ТоварыТовары рГоблинрГоблин

Кэш во всём виноват

из цикла статей «Реквием по Ридеро»
раздел «Програмер хочет кушать»

Нет, конечно во всём виноваты проклятые американцы - а кто не верит, загляните на их Amazon - работает гад, как лучшие швейцарские часы, без проблем и быстро так, как сайту Ридеро и не снилось. Не верите? Ну так проверьте! Возьмём для примера одну и ту же мою книгу

Кочегары космоса

пар, плоть и кровь
в космосе
http://SteamAge.ru/go/kk

и взглянем как она представлена:

Чтобы просто просмотреть сайт магазина Ридеро, я вынужден посещать его с компьютера, на котором прорвался в Топ-100 игры War Thunder - короче оборудование нужно мощнейшее... просто чтобы заглянуть в магазин? Потому что если Ваге оборудование не самое новейшее, то возникают проблемы - и утомительно долгая загрузка лишь первая из них.

Зато на сайт Амазона я захожу без проблем с любого старья! И на удивление быстро.

Не могу понять в чём секрет этих американцев, ведь:

ЧОМУ РИДЕРО ТАК ТОРМОЗИТ ???

Техподдержка Риджеро давно нашла универсальный ответ:
  — Очистите кэш!

Этот коварный кэш виноват абсолютно во всём, что постигает Ридеро - внезапно не работающие меню, не всплывающие окна сообщений и даже порой пропадающие иллюстрации обложек - о всех о них я расскажу в следующих статьях (а о пропадающих обложках так прямо в следующей статье подробно разберу). Замечу: не всегда и не везде неприятности бывают (может конкретно Вам повезёт посетить сайт Ридеро без проблем) - и всё же у ряда посетителей проблемы имеют место быть.

НО
Евгений, менеджер из техподдержки Ридеро, поведал мне, что обращается к ним совсем мало людей. Ещё бы! Ведь почти всегда всё чего добьётся страждущий от техподдержки, это:
  — Очистите кэш! У нас всё работает!

И дальше можешь сколь угодно объяснять, что уже чистил кэш и не помогло - они всякий раз отвечают одно и то же, а именно:
  — Очистите кэш!

Короче человека что называется "футболят". Отмахиваются от него, как от назойливой мухи. Не фиг тут жужжать! Пока несчастный сам не отстанет. И не уйдёт... Куда же? Да к конкурентам вестимо! На наш Озон, на китайский АлиЭкспресс или на тот же американский Амазон - выбор куда уйти день ото дня всё шире. А если потенциального покупателя ещё и отталкивать... Но на зарплате техподдержки это никак не отражается.

А может я не прав?
Может в самом деле кэш виноват?

Таинственный кэш

Что такое этот кэш? Это память браузера, где он хранит недавно закачанное из интернета. Вообще говоря у современных браузеров система обращений к этому запасу старых знаний налажена очень хорошо - браузер сверяет даты и если в интернете файл более новый, то будет закачан именно он, а не тот, что сохранён в кэше.

И благодаря этому Вы всегда видите актуальную свежую информацию.

Однако изредка случаются накладки. Очень редко, но в самом деле бывает так, что браузер вместо обновлённой web-страницы показывает Вам её устаревшую копию из своего кэша.

Почему это не вредит конкурентам?

Может программисты конкурентов знают, как обойти проблемы с этим зловредным кэшем?
Но тогда почему Ридеро не наймёт таких же опытных программистов?

Поговорим за деньги

Итак вывод:

И почему мы - и авторы и покупатели книг - должны из своего кармана оплачивать неквалифицированных программистов Ридеро?

КТО НАНЯЛ В РИДЕРО НЕСВЕДУЩИХ ПРОГРАММИСТОВ ?

Кэш не при делах

Про кэш достаточно понять одно:
в кэше может оказаться только то - что когда-то туда было закачано из интернета.

Но когда с web-страницы сайта Ридеро внезапно пропадает какой-то элемент - а такое, представьте себе, случалось (и я расскажу об этом в следующих статьях с конкретными примерами) - то вот тут кэш уж точно не виноват. Именно потому что он может показать как было - но не изменить самовольно.

Если бы был виноват кэш - то он так и продолжал бы показывать и картинки и кнопочки. Но коли что-то внезапно пропало - то вот такое кэш сотворить не способен ну никак. Так что большая часть проблем сайта Ридеро отнюдь не в кэше.

Что мне ответила техподдержка

И по наивности своей, я пытался объяснить это техподдержке Ридеро. Потратил несколько дней, обходя разные компьютеры и собирая скриншоты, высылал всё это в техподдержку - ну вот же смотрите, тут работает, а тут нет, вот же она проблема!

Короче: я проделал полноценную работу тестировщика. Бесплатно проделал.

КСТАТИ, ПОЧЕМУ В РИДЕРО НЕТ ОТДЕЛА ТЕСТИРОВАНИЯ ???
(если что - я могу возглавить)

А знаете какова была благодарность?

Поняв, что я их прижал к стенке своими скриншотами - они просто перестали мне отвечать.
А потом и мелко отомстили - как именно я рассказывал в статье "Последня капля"
(прямая ссылка http://SteamAge.ru/pub/ridero/91.html)
Короче, они:

  1. напакостили,
  2. потом испугались (ведь это же нарушение договора),
  3. а затем просто зарыли голову в песок как страус - и нет проблем! Лепота!

Что делать: вариант айнс

Положим, что в самом деле, во всём виновен коварный кэш, неким волшебным образом создающий сам по себе неверно-искажённое изображение web-страниц именно и только на сайте Ридеро. К остальным сайтам кэш относится лояльно - а вот Ридеро невзлюбил.

Как бороться с такой напастью?
Да легче лёгкого!

И мне кажется очень странным, что программисты Ридеро этого якобы не знают...

Рассказываю сокровенную тайну - действуем по шагам:

Теперь возьмём две страницы:

Для нас имена страниц одинаковые, очевидно же что это один и тот же файл, только лишь вызванный с разными параметрами. Но с точки зрения браузера, раз параметр это часть адреса - то адреса страниц разные, и, стало быть, сами страницы тоже разные.

И кэш страницы a.html?t=0 никогда
не воспроизведётся для страницы a.html?t=1

Как попадает пользователь на страницу?
По ссылке!
Ссылку формирует сервер. Значит при формировании ссылки вписываем туда один дополнительный параметр, у которого всякий раз изменяем циферку - и никакой кэш нам уже не помешает.

Возможно программисты Ридеро совсем недогадливые - не знают откуда взять такую циферку, чтоб была уникальна и гарантированно не совпала с другой даже случайно?

Я подскажу: это число микросекунд из системных часов сервера. Сами понимаете: время бежит и невозможно войти в его реку дважды. Вызывается это число в скрипт на сервере одной командой, а какой именно зависит от языка на котором скрипт написан. Но обычно что-то вроде getTime()

Итак:

Всё, задача решена!

Что делать: вариант цвай

  — А если клиент заходит по прямой ссылке? Там-то число микросекунд не будет прописано сервером! - возразит техподдержка Ридеро и хитро прищурится.

Ну и глупцы! Вы в самом деле не знаете, как решается эта проблема? Хорошо, рассказываю и про это. По шагам:

Зато гарантированно у нас теперь в любом случае будет всегда грузиться только актуальная страница (а не давно устаревшая её копия из кэща).

И вот тогда уж точно проблемы сразу не станет...

...но ведь тогда у техподдержки пропадёт их излюбленный отмаз про мифический кэш.
Работать придётся...
Ох нет, не за тем ребятки из техподдержки Ридеро приходят на работу - не чтоб работать. Они приходят ЗРЯплату получать.

Зарплату из гонораров авторов вырванную - вот это бездельники из техподдержки Ридеро очень любят. А авторов? А зачем в этой схеме авторы?

Я НЕ ПОНИМАЮ КАК МОЖНО ГОДАМИ КИВАТЬ НА КЭШ - И НЕ РЕШИТЬ ПРОБЛЕМУ С НИМ НА СВОЁМ САЙТЕ
(тем более, что как видит читатель после моих объяснений, решается сия проблема элементарно)

Неужели программисты Ридеро не знают вот этого - самых элементарных азов своей профессии?

Если да - то...

ХАНА РИДЕРО С ТАКИМИ ГОРЕ-ПРОГРАММИСТАМИ

Когда Ридеро начинало - вот тогда там боролись за каждого автора!
И техподдержка тогда не лентяйничала.
И даже кэш работе не мешал!
А нынче...

И потому боюсь я: в техподдержке Ридеро засел самый настоящий "крот" - который работает на конкурентов Ридеро и изнутри разваливает работу издательства.


писано суббота 17 сентября 2022г
незначительно отредактировано
в начале 2024г

Алексей «Рекс»