Об авторе
В IT-индустрии я более 10 лет. Мой путь начался с классической веб-разработки и верстки в 2013 году. За эти годы я успел поработать в совершенно разных ролях. Был рядовым верстальщиком, фронтенд-разработчиком, тимлидом и менеджером проектов. В итоге вырос до руководителя отдела разработки. На позиции менеджера проектов мне даже пришлось самому писать бэкенд на Node. js — да, жизнь меня помотала.
Право на ворчание
В моем портфолио — работа как в драйвовых digital-агентствах, так и в крупных системных интеграторах. Я руководил отделами в 20+ человек, строил процессы и спасал дедлайны. Но эта книга родилась не из успешных успехов. Она родилась из шрамов.
Хроника одного провала: как я стал «фронтендером на бэкенде»
Когда я начинал карьеру менеджера проектов, на одном из этапов я не смог вовремя найти бэкенд-разработчика. Сроки горели, риски росли. И тогда во мне проснулась самоуверенность:
«У меня больше 5 лет опыта во фронтенде! Я знаю JS! Что может случиться?»
Я решил написать бэкенд сам. Выбрал Strapi (Node. js) — модно, молодежно, из коробки.
Я гордился собой. Я построил не просто API, я сделал конструктор. В админке были настроены компоненты: маркетолог мог сам собрать страницу из блоков, выбрать картинку, поменять текст. Фронтенд (на Nuxt. js) подхватывал эти компоненты на лету. Удобно? Безумно.
Локально всё летало. Но вот настал день релиза. Сайт (обычный сайт застройщика, никакой высокой нагрузки!) наполнили контентом.
Я открываю страницу… и жду. Секунда. Две. Пять.
Страницы грузились более 5 секунд.
Это был холодный душ. Я чувствовал всю тяжесть провала. Мой «гениальный конструктор» породил монстра: MongoDB захлебывалась, пытаясь вытащить связанные сущности и отдать гигантский JSON.
В панике я прикрутил Redis (даже отправил пул-реквест в плагин для Strapi в процессе). Это была «синяя изолента», которая спасла ситуацию — скорость стала приемлемой.
Но урок я усвоил навсегда: фронтенд-мышление на бэкенде — это катастрофа.
Я пытался перенести компонентную логику (как во Vue/React) в базу данных. Я не думал о связях, индексах и нормализации. Я думал «блоками». Мой код работал, но архитектура была мертва. Тот фронтендер во мне не мог этого знать — у него просто не было базы.
Триггер: «Ну, это не нужно в работе…»
Почему я сел писать эту книгу? Последней каплей стали собеседования. Я искал системного аналитика. Не сеньора-помидора, а простого, крепкого джуна с базой. Это превратилось в день сурка. Кандидаты шли бесконечным потоком, как под копирку. Все они хотели 100–150 тысяч рублей. И при этом ни один — ни один! (ну ладно, парочка была) — не мог ответить на вопросы о фундаментальных типах данных.
— «Ну, это не нужно в работе…»
Было даже собеседование с PHP-разработчиком с 5-летним опытом. Я думал: «Ну этот-то знает!». Нет. Та же пустота в глазах при вопросах чуть глубже общих вопросов.
То же самое с менеджерами проектов. Я требовал от них понимания того, как работает IT, а не только как двигать таски в трекере. Я понимаю, что во многих компаниях это считается «чересчур» и таких специалистов на рынке объективно мало. Таких людей оказались единицы.
А потом я шел на дейлики. Где менеджеры превращали 15-минутную летучку в часовое совещание, обсуждая цвет кнопок и мешая разработчикам работать.
Я понял: проблема не в людях. Проблема в том, что индустрия перестала требовать базу.
Инженер 24/7 (даже когда спит)
Вне работы я — муж и отец двоих детей. Но инженерное мышление трудно выключить, поэтому тяга к оптимизации и экспериментам проникает и в домашний быт.
Моя настоящая «песочница» — это домашняя лаборатория. Личный сервер, где я обкатываю новые инструменты, тестирую архитектурные решения и запускаю сервисы, которые облегчают (или усложняют, тут как посмотреть) нам жизнь. Умный дом на Home Assistant — один из таких проектов.
Конечно, иногда приходится брать в руки паяльник — например, чтобы превратить обычные «тупые» кондиционеры в умные и подружить их с Алисой. Но суть не в пайке, а в подходе. Технический бэкграунд заставляет меня не просто «собирать конструктор», а задавать неудобные вопросы:
— «А что, если пропадет интернет? Алиса перестанет отвечать. Как я включу свет?» (Поэтому вся критическая логика работает локально).
— «А что, если откажет диск сервера? Где мои бэкапы?»
— «Я открываю доступ наружу для управления с телефона. Как защититься, чтобы мой дом не стал частью ботнета?»
Именно этого подхода мне не хватает в современной разработке. Мы разучились думать о том, «что если». Мы надеемся на облака, на фреймворки, на «авось».
Эта книга — попытка вернуть инженерное мышление в мир, захваченный конструкторами.
К счастью, я все же нашел тех самых единиц, и эта книга — в том числе опыт нашей совместной борьбы.