
700 часов спустя: уродливая правда о административных панелях
11 июня 2025 г.В 2022 году я попал в стену.
Мы отправляли еще один клиент -проект. Сроки были плотными. И еще раз, я смотрел на ту же проблему, которую я решил за дюжину раз раньше: создание панели администратора с нуля.
Я открыл свой терминал. Я вздохнул.
Затем я открыл нашу старую шаблонную папку на основе табличек, переименовал несколько файлов и начал работать еще один Crud UI. Это было хорошо. Это сработало.
Но я продолжал думать:Почему я делаю это снова?
Вот когда он щелкнул. Я был не просто разочарован - я тратил время. Восстановление той же логики снова и снова. Таблицы, формы, фильтры, кнопки. Небольшой jQuery здесь, проверка разрешений с взломанными планками. Немного отличается каждый раз, но в принципе одинаково.
Итак, я решил создать панель администратора, которую я действительно хотел использовать.
Это история о том, какАдмиралродился.
Мы не используем WordPress или готовые CMS: все, что мы строим, это пользовательское. Таким образом, для каждого клиентского проекта нам в конечном итоге нужна новая панель администратора, адаптированную для этого бизнеса.
90% случаев, это стандартная логика CRUD - продукты, пользователи, категории, заказы, что угодно. Остальные 10% включают в себя странные панели инструментов, сложные отношения данных или одноразовые инструменты, которые нужно бизнесу за кулисами.
Каждый раз возникает один и тот же вопрос:
Как мы движемся быстрее, не жертвуя гибкостью?
Я знал, какой инструмент я мечтал. Это должно было отметить все коробки:
- []Уметь быстро разбираться в стандартных просмотрах CRUD
- []Позвольте нам создавать пользовательские страницы так же легко
- []По умолчанию выглядеть чистым и современным
- []Будьте легко в стиле по проекту
- []Работайте с любым бэкэнд (не только Laravel или Node)
- []Полагаться на APIS REST
- []Быть построенным на реагировании
Итак, я начал искать инструменты, которые могли бы сделать все это (и, может быть, больше?).
Что мы пробовали (и почему это не сработало):
Мы попробовали кучу существующих решений.
Мы также пытались построить свои собственные (не один раз, а три славных времена). Каждый раз мы застряли в архитектурных решениях и отказались от усилий на полпути.
Первая попытка сделать его многоразовым
Мы использовали
Когда мы обнаружили Laravel Nova, нам понравилась его структура, и мы начали создавать собственную версию, используя React и Ant Design. Вот как определил ресурс в тот момент:
Это сработалоПолем Cruds были быстрее создавать. Пользовательский интерфейс чувствовал себя чистым. Но ... все это было тесно связано с Ларавелом.
Что подводит нас к следующему большому решению.
Чем больше мы использовали эту систему, тем больше трения мы нажимаем:
Вы должны были запустить полную версию, чтобы работать на фронте.
Frontend Devs были заблокированы на логике бэкэнд.Ответы JSON были плотно структурированы и трудно изменить.
Пользовательские страницы былижесткийи часто требуется как на фронта, так и бэкэнд.
Итак, я позвонил:
Давайте разделим панель администратора на полностью автономное приложение React!
Теперь это работает так:
- Frontend - это спа -салон, который разговаривает с API REST. Бэкэнд может быть чем угодно - Php, иди, что угодно.
- Cruds настроены Backend Devs.
- Пользовательские страницы обрабатываются Frontend Devs, используя фиктивные данные или реальные конечные точки.
- Мы используем генераторы кодов для обработки повторяющихся вещей.
Это то, что сталоАдмиралПолем
Мы начали строить его в апреле 2022 года, работая над коммерческим проектом, который нуждался в этом. К июню 2023 года у нас была рабочая версия.
Общее время? Около 700 часов.
С тех пор мы развернули его на 10+ клиентских проектов, и это отлично работает.
Сегодня почти все наши фронтальные разработчики способствуют этому. Цель состояла в том, чтобы сделать Admiral нашей стандартной рамки пользовательского интерфейса администратора для внутреннего использования, может быть, когда -нибудь публично,иЭтот день сейчасПолем
По крайней мере, это сэкономит нам время.
Это делает наши проекты чище.
И самое главное: это позволяет моей команде работать так, как мы хотим работать.
Далее:Я покажу, как работает адмирал на практике - как мы определяем ресурсы, структурируем пользовательские страницы и почему наши разработчики на самом деленравитьсяРаботая с этим.
Следите за обновлениями!
Оригинал