May 19th, 2013

Привет

Фрэнки ты не скажешь до свиданья, Фрэнки не прощается с тобой...

Жежемистрация рассказала, что она думает по поводу последнего бадабума, и теперь ясно, что улучшений ждать  не приходится. Все дефекты системы явно воспринимаются как кысмет. Ну а виновных опять пытаются найти на стороне.
Правда, ещё во время блэкаута американцы писали:
— Please don't forget feed us something of type "DDOS attack" conducted by "bloody putin's cyberterrorists"
(Пожалуйста, не забудьте навешать нам лапшу на уши про DDOS-атаку "грёбаных путинских кибертеррористов").
Поэтому лапшу пришлось вешать пиар-технологичную. Про то, что ЖЖ существует в окружении злобных врагов и жадных конкурентов поведали устами добровольного помощника, а сами лишь сказали, что на упавших кластерах были и блоги оппозиционеров. О том, есть ли оппозиционные блоги на уцелевших кластерах скромно умолчали. После этого можно было смело заявлять, что никаких атак не было, пользователи уже сами кричали:
— Не верим! Если пострадала оппозиция, то это всё неспроста!
Так в чём же настоящие проблемы ЖЖ?
Предположим, вы любите пить по утрам свежевыжатый апельсиновый сок. И у вас есть рукастый родственник, который подарил вам на Новый год самодельную соковыжималку. Насыпаете в лоток апельсины, подставляете стаканчик, а утром просто нажимаете кнопку и идёте чистить зубы. Когда возвращаетесь, сок из трёх апельсинов уже ждёт вас в стакане. Замечательно!
Но в один прекрасный день вы забыли подставить стаканчик, и сок вылился на пол. Тогда вы пожаловались рукастому родственнику и он внёс изменения в конструкцию. Теперь, если стаканчика не было на месте, соковыжималка начинала пищать и мигала лампочкой с изображением стакана. Кроме того, если в лотке было меньше трёх апельсинов, устройство выжимало сок из имеющихся и мигало лампочкой с изображением апельсина, требуя добавить фрукты в лоток. И ещё, благодаря добавленной батарейке, если вы забывали включить соковыжималку в розетку, она всё равно пищала и мигала лампочкой с штепселем.
Удобное стало устройство, не правда ли?
А теперь представим, что этот рукастый родственник работал в ЖЖ. Тогда бы он объяснил вам, что в этой соковыжималке живёт мышка по имени Фрэнкильда, и каждый раз, когда вы забывали подставить стаканчик, или в лотке было меньше трёх апельсинов, или вилка не была воткнута в розетку, выскакивала бы из соковыжималки табличка: "Извините, сегодня сока не будет. Фрэнкильда перегрызла провода". И всё. И без вариантов.
Всех программистов учат, что программа должна обрабатывать все возможные ситуации. То есть, знать, как себя вести в любом случае. На практике это, конечно, труднодостижимо, всегда остаются маловероятные ситуации, которые не обрабатываются. Но здесь-то мы имеем дело с ситуацией вполне предсказуемой.
Если я открываю пост, прокомментированный человеком с отключённого кластера, и считать его комментарий невозможно, нормальная программа откроет пост, а на месте утерянного комментария напишет, что он временно недоступен. Это нормальная программа. А скрипт ЖЖ на этом месте падает и выдаёт ошибку.
То есть, проблема в том, что ЖЖ не знает, как себя вести в неидеальной ситуации. Точнее, знает, что надо валить всё на Фрэнки, хотя есть и более удобные решения.
Чтобы весь ЖЖ не падал от каких-то местных проблем, чтобы не показывал ошибку 500 при каждом втором запросе, достаточно вставить в код обработку "неожиданных" событий, чтобы, смирившись с неприятностью, программа продолжала работать.
Но жежемистрация даже не думает об этом. Они рассказывают нам, как замечательно должен работать ЖЖ, когда всё идёт идеально. Но идеально-то всё не идёт...
Так что Фрэнки с нами надолго...