January 5th, 2013

вот и я

Почему ЖЖ постоянно глючит?

Имхо, толковое объяснение тому, что сейчас происходит в ЖЖ. Я, в общем, тоже считаю, что «СУП — козлы, верните всё как было» (с), но если действительно "из-за своей убыточности ЖЖ сменил уже трёх владельцев и в конечном итоге СУП был поставлен перед выбором: или ЖЖ начинает зарабатывать, или его закроют", то предпочту глючный ЖЖ, чем полное его отсутствие.

ЖЖ очень старый. Тринадцать лет назад Брэд Фитцпатрик создал небольшой сервис онлайн-дневников для своих друзей. Неизвестно, на какое количество пользователей он был рассчитан, но точно не на десятки миллионов аккаунтов. Время шло, ЖЖ переходил из рук в руки (СУП — всего лишь последний из владельцев), количество пользователей росло, разные команды программистов по разному пытались справиться с растущей нагрузкой. На данный момент в движке ЖЖ куча старого кода, который писали совершенно разные люди без единой стратегии и без документирования. И архитектура ЖЖ устарела несколько лет назад — не дизайн (тоже архаичный), а внутреннее устройство.

Именно поэтому простой и наивный совет «добавить серверов, памяти или чего там у вас не хватает»© — не работает.

Представьте себе старый многоэтажный дом, в котором живут люди, и вам нужно поменять архитектуру этого дома. Вы вынуждены выбивать сваи и вытаскивать плиты из фундамента(!) Разумеется, дом иногда падает, вместе с жильцами. Дом поднимают и продолжают ремонт. Часто, чтобы дом не падал, обходятся временными решениями — не меняющими архитектуру. Например, из-за прихода новых жильцов и роста количества бытовых электроприборов, электросеть не справляется с нагрузкой, пробки выбивает регулярно. Но жильцы требуют повысить мощность, плевать каким способом, потому что «у соседей в новостройке всё это есть». Проблема решается затаскиванием каждому в окно отдельного силового кабеля — выглядит некрасиво, весь дом в многометровых кабелях, во время сильного ветра они рвутся, жильцы опять недовольны. И так всё время.


Почему нельзя просто написать ЖЖ заново, с новой архитектурой? Оттестировать его и за одну ночь запустить новую версию?