DevUA

/R&D manager at Echovox /JUGLviv leader /JDayLviv co-organiser www.jug.lviv.ua

Meta


Фреймокати чи Не Фреймокати

Andriy AndrunevchynAndriy Andrunevchyn

(п’єса за мотивами реальних подій)

Дійові особи.

Аліса – девелопер, грейд міддл.

Шалений Заяць, Божевільний Капелюшник, Ховрах Сонько – девелопери, грейд невідомий, оскільки ніхто не наважується провести їм оцінку. Посварилися зі Скрамом, тому в них кожен день реліз. Вони називають це контінюус деплоймент.

Чеширський Кіт – ніхто не знає точно, чим він займається на фірмі.

Дія Перша. Короткий зміст.

У пошуках консультації по задачі Аліса потрапляє в кімнату Шаленого Зайця. Там її відмовляються слухати, бо вона надто твереза. Після обіцянки випити все, що їй наллють, якщо тільки це буде вино, хлопці погоджуються вислухати її.

Дія Друга.

Колишній мітінг рум з великим столом по центру. Стіл заставлений макбуками, смартфонами, горнятками з/з-під чаю і кави, бокалами різного розміру і призначення, пляшками з розмаїтим алкоголем, в основному віскі та кон’яком, піцою, ковбасою, чіпсами, нарізками сиру по 500грн та іншим. Кімната захаращена купами коробок з-під піци і гірками порожніх плящок. Між ними розсипано комп’ютери, які загадково мигають світодіодами. Вся підлога оплетена місивом подовжувачів і мережевих кабелів. За столом сидять Капелюшник, Заяць і Ховрах. Останній спить положивши голову на макбук. Аліса стоїть поруч зі столом і явно боїться за нього сісти.

Аліса: Задача – реалізувати рестфул-ендпоінт, що видає юзеру аутх-токен. Перед видачею кукі є кілька перевірок на едж-кейси, частина з яких може бути розцінена як валідація, частина – як авторизація, а частина – як щось середнє…

Капелюшник: Валоризація!

Шалений: Авторідація!

Капелюшник і Шалений Заєць чокаються і випивають.

Аліса: Що краще – розкидати цю логіку по хукам фреймворка, чи винести в окремий метод-клас “інтерактор”?

Звідкись з’являється Чешир, витягує з купи порожніх пляшок напівповну пляшку Гленгойна, наливає в бокал і випиває.

Чешир: Гірше!

Аліса: Що гірше?

Чешир: Правильно питати не що краще, а що гірше. В ІТ немає хороших і кращих рішень – тільки погані і ще гірші…

Чешир виливає залишки віскаря собі в бокал і зникає.

Шалений: Сама що думаєш?

Аліса: Ну, плюс максимального юзання фреймворку – ми користуємось його фічами…

Капелюшник: Питання – чого ти хочеш більше: стікнутися намертво в фреймворк чи написати багато свого коду?

Капелюшник наливає в один бокал Хенессі, в другий Талібардін і пропонує Алісі вибрати.

Шалений: Свого коду більше не буде, буде менше, і він буде в одній купі.

Заяць забирає в Капелюшника бокал з віскі і залпом випиває. Потім забирає і бокал з кон’яком і починає розглядати як той грає в світлі лампи.

Шалений: А зі стіканням була абсолютно жутка історія, яка вилилась в 3-тижневий апгрейд фреймворка…

Капелюшник: Я взагалі проти залипання на фреймворки.

Капелюшник таки знаходить пляшку Мукузані, вручає Алісі практично чистий літровий бокал і виливає в нього всю пляшку.

Шалений: Ми юзаємо ДНР, і все було зав’язано на його фічі. Так от. З апгрейдом ДНР 2.0 на ДНР 3.0 вони поміняли все. Це було пекло.

Капелюшник: Ми тут другий рік не можемо випиляти бібліотеку, бо нею просто насрано по всьому коду.

Прокидається Сонько, наливає собі Мартель, випиває і закусує квашеним огірком.

Сонько: Це що за ліба?

Капелюшник: Сіквел.

Сонько: Проста ліба…

Сонько знову засинає, зручно вмостившись на клавіатурі.

Капелюшник: А якби воно було акуратно загорнуто у фольгу, то вже би давно випиляли ту просту лібу. Всього навсього оеремка.

Аліса: Але то породило б ще додатковий леєр.

Капелюшник: І? Ти віртуальна машина? Все програмування прагне до абстракцій все вищих і вищих порядків. До більшої кількості леєрів!

Капелюшник бере шматок холодної піци, мастить її маслом, зверху кладе сир, ковбасу, помідор і шматок оселедця. Потім показує всім свою канапку і з насолодую відкушує шматок.

Шалений: Погоджуюсь. Левел логіки має бути окремим, інакше розробка стане пеклом. Раніше думав – о, тут же можна заюзати такий прекрасний хук серіалайзера чи сигнал джанги… ага, щас! В наступній версії Джанго скаже що сигналів більше нема.

Аліса: Ну вони так не роблять – там декілька версій буде депрікейтед.

Шалений: Да-да , я теж так думав… до апгрейду днр.

Сонько знову прокидається і здивовано розглядає порожню пляшку з під Мартеля.

Сонько: Яка там джанга зараз?

Шалений: В нас джанга 1.9.

Сонько: Все – закреслюю свій досвід з жангою в резюме.

Шалений: Це неважливо. Важливо, що коли ти дивишся в код розпиханий по фічам фреймворка – ти не бачиш логіки коду.

Сонько: Код має бути тупим, а рішення геніальним. Так казала колись Герцогиня.

Капелюшник: Що означає, що код має бути читабельним, а рішення передбачуваним.

Шалений: Згоден! Юзання фіч фреймворка додає неявності і нелінійності. Без необхідності я б це для бізнес-логіки не юзав взагалі.

Сонько: Але це як наркотик – один раз спробував…

Шалений: Наркотик з жорстким бодуном!

Всі випивають.

Кінець.

/R&D manager at Echovox /JUGLviv leader /JDayLviv co-organiser www.jug.lviv.ua