У 2025 році екосистема React значно еволюціонувала, що зробило деякі інструменти та практики застарілими. Оглядаючись на мій досвід роботи керівником команди React у Tata Consultancy Services (TCS), я стикався з опором до впровадження сучасних методологій, зокрема щодо управління станом та структурування проектів.
Занепад Redux
Redux, колись основа управління станом у додатках React, втратив свою актуальність. Дан Абрамов, один із творців Redux, у своїй статті 2016 року "You Might Not Need Redux" зазначив, що багатьом додаткам не потрібна складність, яку вводить Redux. Він підкреслив, що Redux пропонує компроміс, змушуючи розробників описувати стан додатку та зміни як прості об’єкти і функції, що може бути зайвим для деяких проектів.
У наших проектах наполегливе впровадження Redux, навіть коли простіші рішення для управління станом були цілком достатні, додавало непотрібну складність. Це не лише роздувало наш код, але й ускладнювало навчання нових учасників команди. Сучасний React, з його вбудованими хуками, як-от useState
та useReducer
, разом з Context API, надає потужні можливості для управління станом, які часто усувають необхідність у сторонніх бібліотеках, таких як Redux.
Застарілість Create React App
Create React App (CRA) колись був зручним шаблоном для ініціалізації проектів React. Однак його застій за останні роки зробив його менш придатним для сучасної розробки. Команда React офіційно депрецювала CRA, вилучивши його з документації, що стало сигналом про перехід до більш ефективних інструментів, таких як Next.js.
Незважаючи на це, моя команда демонструвала непохитну прихильність до шаблонів CRA. Цей опір переходу не лише гальмував нашу ефективність у розробці, але й ізолював нас від досягнень ширшої спільноти React. Наполегливе використання CRA, незважаючи на його відомі обмеження — такі як повільніші часи завантаження та відсутність гнучкості — стало значним бар’єром.
Просування змін всупереч опору
Керувати командою, яка не бажала впроваджувати сучасні кращі практики, було неабияким викликом. Це вимагало постійної підтримки переваг впровадження нових інструментів і методологій, наголошуючи на поліпшеній продуктивності, підтримуваності та відповідності галузевим стандартам.
Цей досвід підкреслив важливість адаптивності у розробці програмного забезпечення. Прив’язка до застарілих інструментів, таких як CRA та Redux, попри очевидні зміни в галузі, може перешкоджати розвитку та інноваціям. Як розробники, ми повинні залишатися поінформованими та відкритими до змін, щоб знаходити оптимальні рішення.
У висновку, мій досвід роботи в TCS підкреслив труднощі, з якими доводиться стикатися, працюючи з застарілими практиками в умовах швидких технологічних змін. Це зміцнило переконання в необхідності постійного навчання та адаптації, щоб команди розробників залишалися на передовій технологічних інновацій, а не відставали через прив’язаність до застарілих інструментів і методів.
Перекладено з: Redux Is Dead: Embracing Modern React State Management