Vorbiți despre experiența dvs. cu Kafka și FastStream
Python
Când putem apela commit la Producer? Cum evităm duplicatele la commit manual în batch?
Se oferă trei tabele: 1. Utilizatori (users): - id (identificator unic al utilizatorului). - name (numele utilizatorului). 2. Cursuri (courses): - id (identificator unic al cursului). - name (numele cursului). - price (prețul cursului). 3. Cursuri ale studenților (student_courses): - id (identificatorul înregistrării). - student_id (identificatorul utilizatorului). - course_id (identificatorul cursului). Se solicită: Afișați toți utilizatorii care au cumpărat cursuri pentru o sumă mai mare de 10.000, în formatul: - user_name (numele utilizatorului). - total_price (suma totală a achizițiilor). Cod de start select * from users limit 10; select * from courses limit 10; select * from student_courses limit 10;
Este posibil să creezi un iterator și un generator infinit? Ce este nevoie pentru asta?
Ce trebuie făcut cu un lot problematic care provoacă în mod constant excepții în timpul procesării? Cum să nu te blochezi și să mergi mai departe?
```python import asyncio from typing import List, Optional class Chunk: def __init__(self, items: List[dict]): self.items = items @property def size(self) -> int: return len(self.items) class Producer: async def next(self) -> Optional[Chunk]: # returnează un lot de date sau None ... async def commit(self, chunks: List[Chunk]) -> None: # confirmă procesarea cu succes a chunk-urilor ... class Consumer: max_batch_size = 100 async def consume(self, chunks: List[Chunk]) -> None: total_size = sum(chunk.size for chunk in chunks) if total_size > self.max_batch_size: raise ValueError("lotul este prea mare") # procesare date ... producer = Producer() consumer = Consumer() async def process(): while True: chunk = await producer.next() if chunk is None: break try: await consumer.consume([chunk]) await producer.commit([chunk]) except Exception as e: print("eroare dar continuă:", e) continue if __name__ == "__main__": asyncio.run(process()) ```
Vorbește-mi despre decoratori în Python: ce pattern este acesta și cum se implementează un decorator cu argumente?
Explica comportamentul unei funcții cu un argument mutabil implicit. Ce vor afișa printurile?
Principiul Substituției Liskov — povestiți mai multe
Povestește-mi despre unul dintre ultimele tale proiecte care ți-a atins sufletul. Ce fel de proiect a fost, ce ai făcut exact acolo și de ce ți-a atins sufletul?
Vorbește despre echipa ta actuală și proiectele din [bancă/companie]
Vorbiți despre principiile OOP: încapsulare, moștenire, polimorfism, abstractizare
Ce știți despre compania noastră?
Spuneți-ne despre utilizarea dataclass-urilor în proiectul dvs. și de ce le-ați ales
Cum vei alege între mai multe oferte? Ce este important pentru tine?
Povestiți-ne despre principiile SOLID
dacă total_size > self.max_batch_size: ridică o eroare ValueError("batch-ul este prea mare")