R50 0d5dc8088761183b9f33edac8fd3b083
Веб-разработка

Publisher Platform

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

TL;DR можно пролистать текст и посмотреть картинки

Когда начинался проект, мне его преподнесли как долгосрочный, с большим количеством страниц.
В связи с чем были приняты архитектурные решения, которые позволили наращивать кодовую базу таким образом, что бы приложение не рухнуло под собственной тяжестью.
Помимо архитектуры, были распланированы этапы работ и согласованы с менеджерами. Когда я сказал, что справлюсь за полгода мне не особо поверили. Но в итоге к новому году заказчик увидел релиз в котором было 90% изначально задуманного функционала (10% всякие мелочи).
Для нужд других проектов была разработана общая библиотека компонентов. Она имела возможности темизации (спасибо tailwindcss) и storybook с документацией для будущих поколений. Я понимал, что этот проект будет передан на поддержку junior/middle разработчику и позаботился о том, что бы облегчить тому разработку и понимание архитектуры.
Затем был разработан слой доступа к данным и слой хранящий состояние приложения. А для их объединения был разработан модуль. В итоге получился некий аналог RTK Query.
Теперь появилась возможность довольно быстро интегрироваться с API, используя всю мощь механизма state management и side effects. Таким образом все модули состояли из

одного и того же надежного, протестированного кода и кода бизнес логики для конкретного модуля (который так же состоял по большей части из нажедных хелперов). Но были и такие, где нужны были лишь CRUD операции и такие получалось делать буквально на коленке за пару часов, которые уходили просто на набирание кода.
В итоге прочный фундамент был заложен. На проекте остался junior разработчик, который из имеющихся кирпичиков, как из конструктора, собирал новые модули. В итоге поддержка и развитие проекта обходилась совсем не дорого. Баги если и были, то их количество было в комфортных для развития пределах.

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

Технологии: SvelteJS, TailwindCSS
F8fb67afec 9760ad5956 1ec95d948c D71351f2e2 0188ec7698 Ff5e09cfe5 8c6f126f0e 4d2c78fc31 0c7b049b4f 93013b254e 845b981005 27fb0a571a Fbcb6b0f06 C8b1e74218 E057c66963 Ae4365182a 19278a541f 8957571f44 Ce47c2b463 Ed9c9603d0 12723213c4