Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

18.11.2023

Піраміда складності проєкту

Спостереження при доповненні додатка на Firebase + Redux Toolkit + React. Але воно, мабуть, справджується для інших архітектур теж.

Додаток мій поділений на три шари. Це інтеграційний шар для Firebase, шар логіки Redux Toolkit, та презентаційний шар React. Відповідна кількість коду зростає; інтеграція з Firebase це 1000 рядків, логіки десь в пʼять разів більше, а презентації ще в чотири рази більше ніж логіки.

Але ось, що я помітив: складність змін зростає у зворотному напрямку. Нововведення до моделі можна тижнями обмірковувати, а маленька зміна призводить до декількох годин роботи. Навпаки, коректувати компоненти React, поки загальна логіка залишається незмінною можна легко та швидко.

Думаю, таке розуміння важливо під час оцінки часу: зміни до різних частин проєкту, при однаковому на вигляд змісту, можуть розбігатися в оцінках на порядки. Власне, я до цього дійшов, коли після тижня швидкої та легкої роботи по React застряг на півдня з малесенькою поправкою до структури даних у Firestore.

Стосовно Firestore, складність обумовлена тим, що база фактично програмується мовою правил безпеки, та шукати в них помилки через використання додатка виходить дуже неефективно. Краще написати тести. Точніше, не так: інвестиції в тести окупляться саме в найскладніших частинах проєкту. Нехай вже компоненти React залишаються без тестів, головне, щоб модель була ретельно ними покрита.