Чому шаблон FastAPI Full-Stack став моїм вибором для сучасної веб-розробки

текст перекладу

pic

Шаблон FastAPI Full-Stack: Мій вибір для сучасної веб-розробки автор Javad Zarezadeh

Python може й не бути найсучаснішою мовою програмування, але він безсумнівно є однією з найпоширеніших сьогодні. Є одне старе персидське прислів'я: “Безколючкова квітка — це божественно.” (گل بی‌خار خداست), яке нагадує нам, що нічого у всесвіті не існує без недоліків. Мови програмування не є винятком. Незважаючи на проблеми з продуктивністю (в порівнянні з компільованими мовами програмування) і знаменитий GIL, простота Python, велика спільнота та потужна бібліотечна підтримка значно переважають його недоліки. Останні досягнення в основі Python також прокладають шлях для сучасних функцій, таких як типізація та паралельне програмування — можливості, яких не було на початку.

З введенням типізації в Python 3.5 та її поступовим впровадженням як стандарт у Python 3.10 з'явився FastAPI. Тепер уже відома де-факто платформа для розробки RESTful API не потребує особливого представлення. Але ось тут я хочу зробити креативний відступ: Як я навчився не турбуватися і полюбив бомбу.”

Так, ви правильно прочитали. FastAPI — це “бомба”, яка стрясає Django і навіть інші фреймворки веб-розробки з різних мов. Вона будується на сильних сторонах Python, не винаходячи колесо заново. FastAPI приймає основні функції мови Python, що робить процес навчання схожим на повторне відкриття самого Python — але в кращому вигляді. Повірте мені: навчання відчувається більше як захоплююча подорож. Чорт візьми, навчальна крива! 😜

Хоча численні переваги FastAPI можна описувати на сторінки, ця стаття зосереджується на тому, чому я люблю використовувати шаблон full-stack, представлений його автором, @tiangolo (Sebastián Ramírez). Себастіан — не просто великий внесок у відкритий код — він є ідолом. Його відданість виходить за межі створення власних інструментів; він також висвітлює інші проекти, які варто досліджувати та використовувати все життя.

Чому я люблю шаблон Full-Stack

1. Збір сучасних технологій

Шаблон об'єднує ідеальний стек:

  • FastAPI для бекенду
  • PostgreSQL для бази даних
  • React для фронтенду
  • Docker Compose для DevOps

Повний список технологій можна знайти тут.

2. Швидка продуктивність!

Незважаючи на те, що базується на Python, продуктивність FastAPI безсумнівно вражає. Це стало можливим завдяки двом потужним інструментам: Starlette та Uvicorn. Якщо ви працювали з Django, то, ймовірно, знаєте, що його продуктивність не є його сильною стороною. Але погляньте на TechEmpower Benchmark: продуктивність FastAPI перевершує Flask і значно випереджає Django — не просто на крок, а на кілька кроків вперед!

3. Брудну роботу вже зроблено!

Ви можете подумати, “Ну і що? Я знаю ці технології і можу інтегрувати їх сам.” Це справедливо, але давайте будемо чесними — налаштування та інтеграція цих інструментів можуть бути справжнім кошмаром. Цей шаблон бере на себе цю роботу, використовуючи найкращі практики. Чому б не довіритися йому? Завдяки обмеженому стеку ви позбуваєтесь необхідності вибирати між JS/TS, Vite/Webpack, Chakra UI/Material UI тощо. Прямо до коду!

4. Навчання від найкращих розробників

До того, як я використав цей шаблон, я навіть не чув про такі технології, як Traefik, Playwright, чи Chakra UI. Ознайомлення з цими інструментами через шаблон допомогло мені познайомитися з найкращими практиками індустрії і надихнуло мене вивчати більше.

5. Чітко організований код і найкращі практики

Не буду занурюватися глибоко в кодову базу, але одним із яскравих моментів є її виняткове впровадження аутентифікації користувачів. Використовуються стандарти OAuth2 і JWT — і це виконано на найвищому рівні.
текст перекладу

Хоча структура може здатися складною на перший погляд, ви швидко оціните, чому вона була розроблена саме таким чином.

6. Налаштування з коробки

Ви віддаєте перевагу працювати з бекендом і впроваджувати фронтенд за допомогою вашого улюбленого фреймворку, наприклад Svelte? Без проблем! Все, що вам потрібно зробити — це видалити папку фронтенду. Шаблон підтримує легке налаштування, як для бекенду, так і для фронтенду, дозволяючи вам адаптувати його до ваших конкретних потреб.

7. Документація та підтримка спільноти

Як FastAPI, так і шаблон full-stack мають детальну документацію. Крім того, існує активна спільнота навколо FastAPI, тому знайти рішення для проблем чи дізнатися найкращі практики порівняно легко.

Недоліки

1. Затримки в огляді Pull Request

Себастіан підтримує багато чудових проєктів, тому огляд PR може зайняти більше часу, ніж очікується. З іншого боку, він відкритий та пропонує теплі відповіді, коли у нього є час для взаємодії.

2. Складність для початківців

Хоча шаблон потужний, його структура та інтеграції можуть здатися надмірно складними для початківців. Новим розробникам може знадобитися додатковий час, щоб зрозуміти, як всі елементи взаємодіють між собою.

3. Підтримка налаштованих проєктів

Після того, як ви налаштуєте шаблон, збереження вашого проєкту в актуальному стані з урахуванням змін в основному репозиторії може бути складним. Об'єднання оновлень з оригінального репозиторію вимагає уважності, щоб уникнути конфліктів з вашими налаштуваннями.

На завершення, шаблон full-stack FastAPI — це не просто набір інструментів; це ретельно розроблений фреймворк, який поєднує сучасні технології з простотою використання. Він не ідеальний — як і Python, чи будь-що інше в житті — але, як кажуть, “Безколючкова квітка — це божественно.”

Перекладено з: Why FastAPI Full-Stack Template Is My Go-To for Modern Web Development

Leave a Reply

Your email address will not be published. Required fields are marked *