Либрусек
Много книг

Вы читаете книгу «System Design для студентов» онлайн

+
- +
- +

Глава 1

Почему ваш код работает, пока вы тестируете, но падает, когда приходят другие

История, которая случалась с каждым

Давайте знакомиться.

Вы написали свой первый настоящий проект. Не лабу, не «калькулятор на JavaScript», а что‑то серьёзное. Например, приложение для заметок. Можно писать текст, прикреплять фото, всё сохраняется в облаке. Открываешь с телефона - заметка там. С ноутбука - тоже там. Красота.

Вы показали друзьям. Всё летает. Запостили в чат группы - 10 человек попробовали, всё работает. Вы счастливы.

Потом выложили ссылку на форум. Пришло 100 пользователей. Всё ещё летает.

Пришло 500. Начали жаловаться: «Сохраняется 5 секунд!». Пришло 1000. Приложение встало. Никто не может ничего сохранить.

Вы в панике. Открываете код. Всё написано правильно. Вы не понимаете, что случилось.

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

С тех пор я понял одну важную вещь: 100 пользователей и 10 000 пользователей - это не одно и то же. То, что работает на маленьком масштабе, обязательно сломается на большом.

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

Аналогия, которая объясняет всё

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

В первый день покупателей мало. За прилавком стоит продавец. Он берёт продукты, пробивает чек, даёт сдачу. Очереди нет. Всё быстро.

Потом о магазине узнал весь район. Покупателей стало 500 человек в день. Один продавец уже не справляется - очередь. Вы нанимаете трёх продавцов. Всё снова хорошо.

Потом покупателей стало 5000 в день. Три продавца - это уже мало. Но вы не можете нанять 20 продавцов - они будут сталкиваться друг с другом за прилавком. Одна касса, одна дверь, один склад.

Вы поняли: надо не просто нанимать людей, а менять устройство магазина. Ставить несколько касс, расширять склад, нанимать отдельных людей для доставки.

Архитектура программ работает так же.

Первый этап - один сервер, одна база данных. Всё просто, как ларёк.

Продолжить чтение

Вход для пользователей

Меню
Популярные авторы
Читают сегодня
Впечатления о книгах
22.09.2026 11:58
Некоторые рассказы прямо фантастические, некоторые посредственные, но есть и интересные. Захватывающий сюжет, когда хочется дочитать до конца, бу...
22.09.2026 11:57
Шикарная книга! Несколько раз начинала читать и каждый раз откладывала книгу, сюжет казался черезчур мрачным. Но всё оказалось не совсем так. Эта...
22.09.2026 11:55
Очень неплохо, прямо хорошо. По-остиновски, пусть и написано не ею.. Тактично, остроумно, в меру саркастично. Юмор, живые диалоги, размышления, м...
22.09.2026 11:43
Лучшее, что я читала в своей жизни! Хотя долго обходила книгу стороной из-за кадров из сериала, на которые, нет-нет, да наткнешься, листая каналы...
22.09.2026 11:42
Александр Клюквин бесподобен, как всегда! Сам сюжет максимально упрощен по сравнению с двумя предыдущими книгами. Без особой интриги. И как-то бы...
22.09.2026 11:38
10 из 10. Я ,если честно,думала,что по другому поводу сделали прерывания, было даже несколько вариантов. пошла я дальше читать ,и не спать,книги ...