Povedajte o svojej skúsenosti s Kafka a FastStream
Python
Kedy môžeme volať commit u Producera? Ako sa vyhnúť duplikátom pri manuálnom commitovaní batchu?
Poskytujú sa tri tabuľky: 1. Používatelia (users): - id (jedinečný identifikátor používateľa). - name (meno používateľa). 2. Kurzy (courses): - id (jedinečný identifikátor kurzu). - name (názov kurzu). - price (cena kurzu). 3. Kurzy študentov (student_courses): - id (záznamové ID). - student_id (identifikátor používateľa). - course_id (identifikátor kurzu). Požiadavka: Zobraziť všetkých používateľov, ktorí zakúpili kurzy za viac ako 10 000, vo formáte: - user_name (meno používateľa). - total_price (celková suma nákupov). Počiatočný kód select * from users limit 10; select * from courses limit 10; select * from student_courses limit 10;
Je možné vytvoriť nekonečný iterátor a generátor? Čo je na to potrebné?
Čo robiť s problémovým balíčkom, ktorý neustále spôsobuje výnimky počas spracovania? Ako sa nezacykliť a pokračovať ďalej?
```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]: # vrne partijo podatkov ali None ... async def commit(self, chunks: List[Chunk]) -> None: # potrdi uspešno obdelavo chunkov ... 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("partija je prevelika") # obdelava podatkov ... 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("napaka, vendar nadaljujemo:", e) continue if __name__ == "__main__": asyncio.run(process()) ```
Povedajte mi o dekoratorjih v Pythonu: kakšen je ta vzorec in kako implementirati dekorator z argumenti?
Vysvetlite správanie funkcie s mutabilným predvoleným argumentom. Čo vypíšu printy?
Liskovov princíp zámennosti — povedzte viac
Povedaj mi o enem od svojih zadnjih projektov, ki ti je prinesel občutek. Kakšen je bil projekt, kaj si točno tam delal in zakaj te je pritegnil?
Povedzte mi o vašom súčasnom tíme a projektoch v [banke/spoločnosti]
Povedzte nám o princípoch OOP: zapúzdrenie, dedičnosť, polymorfizmus, abstrakcia
Čo viete o našej spoločnosti?
Povedzte nám o použití dataclassov vo vašom projekte a prečo ste si ich vybrali
Ako si vyberiete medzi viacerými ponukami? Čo je pre vás dôležité?
Povedzte nám o princípoch SOLID
ak total_size > self.max_batch_size: vyvolajte ValueError("batch je príliš veľký")