Създаване на готови за продукция приложения без излишна сложност
Декларативни full-stack рамки: По-малко код, повече резултат
Съвременното уеб разработване често изглежда по-сложно, отколкото трябва. Вместо да се фокусираме върху бизнес логиката, ние се занимаваме с настройка на API-та, ORM-и и state management библиотеки. А има начин да се избегне тази излишна сложност.
Защо традиционният подход става тежест
Когато започвате нов проект, обикновено трябва да вземете десетки решения още преди да напишете първия ред код. Кой ORM да ползвате? Как да структурирате API-то? Как ще управлявате състоянието на фронтенда? Как ще осигурите автентикация и авторизация? Тези въпроси се повтарят отново и отново, и всеки отговор добавя нова сложност.
Повечето от тези решения са вече направени от общността. Просто ние ги пресъздаваме всеки път.
Какво представлява декларативната full-stack архитектура
Представете си рамка, в която определяте моделите на данни, отношенията между тях, API endpoint-ите, UI компонентите и правата за достъп в една единствена, последователна дефиниция. Няма разминаване между фронтенд и бекенд. Няма нужда да сменяте езици или парадигми.
Целта е да се редуцира развитието на приложението до истинската му сложност — това, което е свързяно с вашата бизнес логика и потребителските нужди.
Как работи архитектурата зад това
Бекендът: Python и мощен ORM
Бекендът се базира на ORM като SQLAlchemy, което не скрива SQL, а го прави по-лесен за работа чрез Pythonic абстракции. Можете да ползвате пълната сила на SQL, когато е необходима, и да създавате composable queries в Python. Поддържа се наследяване за вашия domain model и custom hooks за валидация и сложни бизнес процеси.
Фронтендът: Реактивни и декларативни компоненти
Вашето потребителско интерфейс не е отделно от данните. UI компонентите се генерират от вашия data model и се свързват директно с бекенда. Състоянието се обновява автоматично, без нужда от Redux или prop-drilling.
Access control на ниво база данни
Вместо да проверяваме права на различни места в кода, права се дефинират в Python и се реализирани на ниво database. Това гарантира сигурност и съгласуваност между всия API-та.
Самостоятелна среда за разработка
Има и редактор с point-and-click интерфейс, който генерира код за тази рамка. Не генерира неразбираем код — генерира чист, структуриран код, което ви позволява да прототипирате бързо и да редактирате ръчно, когато е необходимо. Кодът се съхранява в текстови файлове, което е идеален за version control.
Какво се променя за процеса на разработка
С тази подход:
- Седмица 1: Дефинирате data model и relationships. API и schema са автоматично генерирани.
- Седмица 2: Дизайн на UI. Фронтенд се синхронизира автоматично с бекенда.
- Седмица 3: Имплементирайте бизнес логика в един език и един място.
- Седмица 4: Deploy без сложен build процес.
Защо това има значение сега
От 2016 насам основните патерни в уеб разработването са вече познати. Новите рамки просто променят малко естетиката. Реалната иновация е в признанието, че CRUD приложения имат фундаментална структура, коя