Guarda la funzione count_pairs. Qual è la sua complessità? Scrivi una versione più efficiente.
Python
Come vengono eseguiti i JOIN lato PostgreSQL? Quali strategie esistono?
Cos'è una partizione in Kafka? Cos'è un gruppo di consumatori?
FastAPI consente di implementare funzioni sia asincrone che sincrone: come influisce sul comportamento? Come parallelizzare le richieste in una funzione async?
Parlami del pattern Saga. Come lo avete implementato? Come notificavate i servizi del rollback?
Scrivi un Dockerfile per un'applicazione Python che fa quanto segue: - Usa l'immagine Python più recente - Imposta la directory di lavoro su /app - Copia il contenuto della directory corrente nel contenitore - Installa le dipendenze elencate in requirements.txt - Espone la porta 8000 - Esegue l'applicazione usando il comando: python app.py
Perché è necessaria l'incapsulamento? Quali sono i rischi nell'accesso diretto ai dati dell'oggetto?
Cos'è l'incapsulamento? Quali sono le caratteristiche dal punto di vista di Python?
Come creare una struttura dati in cui non è possibile inserire o modificare valori, ma si può ottenere un valore tramite una chiave?
# Quanto tempo impiega asyncio.run(main()) a essere eseguito?
broker = KafkaBroker("localhost:9092") app = FastStream(broker) @broker.subscriber("raw_texts_topic", group_id="text_parsers") async def handle_text(text_data: dict): # Analisi e salvataggio nel database richiede circa 10 secondi parse_text_and_save_to_postgres(text_data)
Come gestire una funzione bloccante di una vecchia libreria per non bloccare il ciclo di eventi?
async def get_user(user_id: int, db: AsyncSession): try: user = await db.get(User, user_id) return user finally: await db.close() return None a = await get_user(15, db) # a?
app = FastAPI() def get_db(): db = SessionLocal() try: yield db finally: db.close() def heavy_text_parser(file_id: int, db: Session): # Analisi di un file che dura 5 minuti parse_and_save(file_id, db) @app.post("/upload") async def upload_file( background_tasks: BackgroundTasks, db: Session = Depends(get_db) ): file_id = save_file_to_db(db) db.commit() background_tasks.add_task(heavy_text_parser, file_id, db) return {"status": "parsing started"}
Qual è l'oggetto restituito da una funzione con `yield`, e quale annotazione di tipo di ritorno è adatta qui invece di `list[str]`?
Cosa succede se il pod del consumatore Kafka si interrompe durante l'elaborazione del messaggio prima di confermare l'offset?
Parlaci un po' di te e della tua esperienza tecnica.
Come si chiama il pattern in cui `Engine` viene creato una volta per l'applicazione e gestisce un pool di connessioni condiviso?
Quali sono i vantaggi di un monolito modulare rispetto ai microservizi in una tale situazione?
Come configuri un'applicazione?