Введение: машина, которая глохнет
Представьте ситуацию. Вы приходите в автосалон, покупаете новенький немецкий (а уже скорее и китайский) автомобиль за десять миллионов рублей. Пахнет кожей, пластик блестит. Вы выезжаете за ворота, проезжаете километр, и вдруг — бах! Двигатель глохнет. Мультимедиа гаснет. Машина встает как вкопанная посреди оживленного шоссе.
А менеджер на том конце провода отвечает спокойным, скучающим голосом: «А, это нормально. Не волнуйтесь. Просто выйдите из машины, закройте все двери (это важно!), постойте минуту, потом сядьте и заведите снова. Это у них прошивка такая, бывает. У всех так».
В мире автомобилей это бред. В мире программного обеспечения (ПО) — это наша ежедневная, рутинная реальность.
...
Знакомьтесь, Electron
Вы можете не знать название этой технологии, но вы пользуетесь ею каждый день. И платите за неё нагревом коленей, шумом вентиляторов и «тающей» батареей.
Slack, Discord, Skype, Visual Studio Code, Notion...
По сути, каждое такое приложение — это отдельный, полноценный веб-браузер Google Chrome.
Когда вы запускаете Slack, вы запускаете браузер. Когда запускаете Discord, запускаете еще один браузер. Все они живут изолированно. Каждый тянет с собой свой движок рендеринга, свой экземпляр V8 и свою копию Node.js.
...
Империя наносит ответный удар
Индустрия поняла: SPA — это тяжело. И мы придумали SSR. Идея: «А давайте рендерить HTML на сервере, как раньше, но использовать для этого React!»
Вы пишете компонент, который выполняется на сервере, ходит в базу данных и отдает готовый HTML.
Подождите… Рендеринг HTML на сервере? Прямой доступ к базе из шаблона? Поздравляю, мы изобрели PHP.
Только этот «новый PHP» требует Node.js кластера, который жрет в 10 раз больше памяти.
...