Какой технологический стек ты используешь в работе?

Ответ

В моей текущей работе основным стеком является Python для бэкенда и анализа данных. Я активно использую:

  • Бэкенд-фреймворки: FastAPI для высоконагруженных API и Django для монолитных приложений.
  • Базы данных: PostgreSQL для реляционных данных, Redis для кэширования и Celery для фоновых задач.
  • Инфраструктура: Docker для контейнеризации, Git для контроля версий, и CI/CD пайплайны на основе GitHub Actions.
  • Тестирование: pytest для модульного и интеграционного тестирования.

Пример настройки простого эндпоинта на FastAPI:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float

@app.post("/items/")
async def create_item(item: Item):
    # Логика сохранения в БД
    return {"item_name": item.name, "message": "Item created"}

Также имею опыт работы с облачными платформами, в частности с развертыванием сервисов на AWS (EC2, RDS, S3).

Ответ 18+ 🔞

А, ну вот, значит, чем я дышу на работе-то. Основной мой конёк — это Python, на нём всё и крутится: и бэкенд, и всякие аналитические штуки с данными. В общем, универсальный такой солдат, ёпта.

Чем конкретно балуюсь:

  • По бэкенду: Если нужно что-то быстрое и злое, как реактивный пони — беру FastAPI для API, которые должны не тупить. А если проект здоровый, монолитный, где всё должно быть по полочкам — тогда Django, классика жанра.
  • С базами данных: Нормальные, человеческие отношения с PostgreSQL. Для всякой быстрой движухи, типа кэша, — Redis. А если какие-то задачи фоновые, долгие, чтобы не заставлять пользователя ждать — связка Celery + Redis, волшебная палочка, бля.
  • Вокруг да около: Без Docker сейчас никуда, всё в контейнерах таскаю. Git — святое, а все эти автоматические развертывания через GitHub Actions настраиваю, чтобы не тыкать всё руками, как в каменном веке.
  • Чтобы не обосраться: Пишу тесты на pytest, и модульные, и интеграционные. Доверия ебать ноль ко всему, что не покрыто, поэтому проверяю.

Вот, смотри, как на FastAPI элементарный эндпоинт делается, буквально пять строк кода:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float

@app.post("/items/")
async def create_item(item: Item):
    # Логика сохранения в БД
    return {"item_name": item.name, "message": "Item created"}

Ну и, конечно, всё это безобразие нужно куда-то выкатывать. Имел дело с облаками, в основном AWS. Поднимал сервисы на EC2, базы на RDS, файлы пихал в S3. В общем, не просто код пишу, а довожу дело до того, чтобы это хоть где-то работало, а не только у меня на компе.