Мы с важной новостью: с 28 февраля 2025 года сервис Хабр Фриланс прекратит свою работу.

Купить услуги можно до 28 февраля 2025, но пополнить баланс уже нельзя. Если на вашем счете остались средства, вы можете потратить их на небольшие услуги — служба поддержки готова поделиться бонусами, на случай, если средств немного не хватает.
R50 0d5dc8088761183b9f33edac8fd3b083
Веб-разработка

Publisher Platform

Добавлено 30 июн 2022 в 22:14
**Веб-приложение для аналитики рекламных кампаний владельцев сайтов**

Разработал веб-приложение, которое предоставляет владельцам сайтов возможность создавать рекламные кампании и строить подробные отчёты об их эффективности.

Когда проект только запускался, он позиционировался как долгосрочный с большим количеством страниц. Это потребовало принятия архитектурных решений, позволяющих масштабировать кодовую базу без риска перегрузки приложения. Я тщательно спланировал этапы работ и согласовал их с менеджерами. Несмотря на первоначальный скептицизм относительно заявленных мной сроков, к Новому году заказчик получил релиз с 90% запланированного функционала.

Для нужд этого и будущих проектов я разработал общую библиотеку компонентов с возможностью темизации (благодаря Tailwind CSS) и задокументировал её с помощью Storybook для последующих поколений разработчиков. Понимая, что проект будет передан на поддержку junior/middle разработчику, я уделил особое внимание тому, чтобы упростить ему процесс разработки и понимание архитектуры.

Были созданы слои доступа к данным и управления состоянием приложения, а для их интеграции разработан специальный модуль, ставший аналогом RTK Query. Это позволило быстро интегрироваться с API, используя все преимущества механизмов управления состоянием и побочных эффектов.

В результате все модули состояли из надёжного, протестированного кода и бизнес-логики, основанной на проверенных помощниках. Для реализации простых CRUD-операций требовалось минимальное время — буквально пару часов на написание кода. Прочный фундамент был заложен, и junior-разработчик смог легко создавать новые модули из существующих компонентов, как из конструктора. Это значительно снизило затраты на поддержку и развитие проекта, а количество багов оставалось в пределах, комфортных для дальнейшего развития.

И это лишь вершина айсберга. В проекте также был модуль отчётов, разработка которого представляла особый интерес с архитектурной точки зрения: множество графиков, возможность перетаскивания элементов, реализация ленивой загрузки модулей — крупные роуты загружались асинхронно только при обращении к ним.

Я горжусь этим проектом и доволен полученным результатом, но ещё больше — приобретённым опытом.
F8fb67afec 9760ad5956 1ec95d948c D71351f2e2 0188ec7698 Ff5e09cfe5 8c6f126f0e 4d2c78fc31 0c7b049b4f 93013b254e 845b981005 27fb0a571a Fbcb6b0f06 C8b1e74218 E057c66963 Ae4365182a 19278a541f 8957571f44 Ce47c2b463 Ed9c9603d0 12723213c4