Співбесіда

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

Суботній ранок розпочався не з духмяної кави, а з наполегливого, ритмічного грюкання у двері. Ігор відчинив, сподіваючись побачити кур’єра з піцою. Натомість на порозі вималювалися двоє молодих парубків у випрасуваних, мов на храмове свято, білих сорочках та строгих темних штанях. На грудях у кожного висів акуратний пластиковий бейдж. У одного було написано «Брат Данило», у іншого — «Брат Артем». В руках вони тримали стос лискучих брошур, а на їхніх обличчях сяяли посмішки такої чистоти, яку хіба в ангеликів на іконах побачиш, або у розробників, що вчора успішно закрили спринт без жодної баги.

— Здорові будьте, добрі люди. Мир вашій хаті! — хором вигукнули вони.

— Доброго здоров’я, — привітався Ігор, інстинктивно перевіряючи, чи не намагаються йому збути якихось диво-ножів чи каструль.

— Чи маєте ви хвилиночку, аби поговорити про Творця Нашого, праведного Брендана Айка? — лагідно запитав Брат Данило.

Ігор кліпнув очима.

— Про кого?

— Про чоловіка, який всього за десять вечорів сотворив цей світ, — благоговійно підхопив Брат Артем. — Світ динамічної типізації, де всяке творіння може стати об’єктом, якщо щиро в це увірувати. Ми з громади «Свідків Сьомого Скролу». Скажіть, чи замислювалися ви коли-небудь, куди відійде ваш State, коли цей тлінний світ розмонтується?

Ігор спробував був зачинити двері, але Брат Данило м’яко, проте впевнено притримав їх носком нового, хоч і вкрай непрактичного кросівка Yeezy.

— Стривайте, друже наш. Ми бачимо, що на чолі вашому лежать тіні втоми. Ваші очі... ви ж користуєтеся темною темою в редакторі, чи не так? Шукаєте світла, але ховаєтеся в сутінках. Скажіть, чи вірите ви в Single Source of Truth?

— Хлопці, та я ж сисадмін, — спробував відхреститися Ігор. — Моя віра — то кручена пара, синій екран та золота заповідь: коли щось працює, краще його взагалі не чіпати.

Брат Артем лякливо зойкнув і тричі перехрестився жестом дуже схожим на стрілочну функцію () => {}.

— Отринь ці єресі, брате! Синій екран — то кара за гріхи синхронного коду! Схаменися, чи готовий ти постати перед Великим Event Loop? Коли настане Судний День, і стек викликів переповниться, куди полине душа твоя? До тихих вод мирного Garbage Collector чи до пекла нескінченного рендерингу, де плач, скрегіт зубовний та вічний undefined is not a function?

Брат Данило простягнув Ігорю брошуру. На обкладинці красувався щасливий чоловік, що сидів на хмаринці з макбуком, а довкола нього порхали пухкі пампушки у формі логотипів Bun. Заголовок повідомляв: «Пробудіться! Версія 1.3.14 уже зійшла на землю».

— Ми принесли тобі Благу Вість, — тихо мовив Данило. — Не треба каратися в кайданах жорстких типів серверних мов. Прийми в серце своє React, і він полегшить ярмо твоє. Бо сказано в Писанні від Дена Абрамова: «Прийдіть до Мене, всі втомлені та обтяжені важкими фреймворками, і Я заспокою вас через Virtual DOM».

— Але ж... — Ігор відчув, як його потроху затягує цей дивний діалог. — React — це ж просто бібліотека...

Обидва місіонери враз зблідли, мов полотно. Брат Артем зашепотів молитву:

— Отче наш, що єси в node_modules, нехай святиться ім’я твоє npm, нехай прийде царство твоє production, нехай буде воля твоя як на localhost, так і на сервері...

— Не гніви Бога хулою, хлопче! — суворо промовив Данило. — Це все від Angular — лжепророка, що спокушає люд безневинний складною структурою та двостороннім зв’язуванням! Не піддавайся спокусі диявольській. Покайся в гріху використання var!

— Ну... в школі на інформатиці грішив колись... — забелькотів Ігор, раптом відчувши себе останнім грішником.

— Очисти ж душу свою через let та const! — вигукнув Артем. — Бо var веде до розпусти областей видимості та hoisting-у у пітьму кромішню!

Брат Данило ступив крок уперед, заглядаючи Ігорю самісінько в душу крізь його ранкове, ще не продране як слід око.

— Повідай нам відповіді на три питання, і істина відкриється тобі. По-перше: що є для тебе this?

— Це... ну, вказівник на поточний об’єкт... — невпевнено пролепетав Ігор.

Місіонери переглянулися з журливою посмішкою, сповненою жалю до блукаючої душі.

— Наївний джуніор! this — він мінливий та багатоликий, мов той політик, що змінює погляди відповідно до настроїв електорату! Він приймає ту подобу, в контексті якої його викликають! Він — ілюзія, що вислизає від розуму непосвячених, аж поки вони не причастяться таїнством .bind().

— Добре, — зітхнув Ігор. — А друге питання?

— Чи віруєш ти у святі замикання? Чи віриш, що функція здатна пам’ятати своє лоно, навіть коли творець її вже покинув цей тлінний стек?

— Нехай буде — вірю.

— Воістину! — зрадів Артем. — І третє питання, найважливіше. Чи готовий ти прийняти хрещення святим npm install? Чи згоден впустити до свого репозиторію десять гігабайтів залежностей заради однієї-єдиної кнопки «Поділитися в соцмережах»?

Ігор поглянув на брошуру. На звороті був надрукований алгоритм розгортання бінарного дерева на JavaScript. А у футері дрібним шрифтом припис: «Пожертвуйте зірочку на GitHub проєкту нашому, і закомплітяться асинхронні запити ваші».

— Знаєте що, колеги, — мовив Ігор, поволі відступаючи. — У мене там інший мітинг. Треба бігти.

— Ми залишимо тобі документацію, — лагідно посміхнувся Брат Данило, акуратно вкладаючи брошуру Ігорю в долоню. — Почитай на дозвіллі специфікацію ECMA, вірш 262. Там знайдеш відповіді на всі питання. І пам’ятай: якщо на твоєму шляху трапиться Redux — не бійся мудрості його, бо через муки й тернії з бойлерплейтом ми находимо істинний дзен управління станом.

Вони чинно вклонилися й почали поволі спускатися сходами, зазираючи до сусідніх осель.

— Наступної неділі ми завітаємо з пастирем! — гукнув знизу Брат Артем. — Він повідає тобі про TypeScript! То як Закон Божий, тільки з інтерфейсами та суворими типами! Тобі сподобається!

Ігор зачинив двері на всі засуви й замки. Сів на ослінчик у передпокої. Глянув на лискучу брошуру. На розвороті всміхнений Брендан Айк тримав на руках маленького, наляканого програміста. Тяжко зітхнувши, дістав телефон, відкрив браузер у режимі «інкогніто» і тихенько, щоб ніхто, крий Боже, не побачив, вбив у пошук: «Як відцентрувати div без клятого CSS Grid». Йому раптом так закортіло повірити в диво.

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі