Խոսեք ձեր փորձառության մասին Kafka և FastStream-ով
Python
Երբ կարող ենք զանգել commit-ին Producer-ում: Ինչպե՞ս խուսափել կրկնությունների ձեռքով batch-ով commit անելու ժամանակ։
Ներկայացված են երեք աղյուսակներ՝ 1. Օգտագործողներ (users): - id (օգտագործողի եզակի նույնականիչ): - name (օգտագործողի անուն): 2. Կուրսեր (courses): - id (կուրսի եզակի նույնականիչ): - name (կուրսի անուն): - price (կուրսի գին): 3. Ուսանողների կուրսեր (student_courses): - id (գրանցման նույնականիչ): - student_id (օգտագործողի նույնականիչ): - course_id (կուրսի նույնականիչ): Պահանջ: Ցուցադրել բոլոր այն օգտվողներին, ովքեր գնել են կուրսեր՝ գումարով ավելի քան 10 000, հետևյալ ձևաչափով՝ - user_name (օգտագործողի անուն): - total_price (ընդհանուր գնումների գումարը): Սկզբնական կոդ select * from users limit 10; select * from courses limit 10; select * from student_courses limit 10;
Կարո՞ղ է ստեղծել անսահմանափակ ինդեքսատոր և գեներատոր: Ինչի համար է դա անհրաժեշտ?
Ինչ անել խնդիրային հատվածով, որը մշտապես առաջացնում է արտահայտություններ մշակման ժամանակ: Ինչպես չտրվել ցիկլի մեջ և առաջ գնալ?
```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]: # кайта партија со податоци или None ... async def commit(self, chunks: List[Chunk]) -> None: # потврдува успешна обработка на партиите ... 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("партиијата е премногу голема") # обработка на податоците ... 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("грешка, но продолжуваме:", e) continue if __name__ == "__main__": asyncio.run(process()) ```
Պատմեք ինձ Python-ի դեկորատորների մասին՝ ինչ է դա և ինչպես իրականացնել դեկորատոր՝ արգումենտներով։
Ներկայացրեք մուտաբիլային նախնական արգումենտով ֆունկցիայի վարքագիծը։ Ի՞նչ կցուցադրվեն տպագրությունները։
Լիսկովի փոխարինման սկզբունքը — մանրամասն պատմեք
Իմացեք ձեր վերջին նախագծերից մեկի մասին, որը ձեզ դիպչեց։ Ինչ էր դա նախագիծը, ինչ եք դուք այնտեղ անում և ինչու դա ձեզ դիպչեց։
Իմացեք ձեր ընթացիկ թիմի և [բանկ/կազմակերպություն] նախագծերի մասին
Պատմեք օբյեկտային ծրագրավորման սկզբունքների մասին՝ ինկապսուլացում, ժառանգություն, բազմակողմություն, աբստրակցիա
Ինչ եք իմանում մեր ընկերության մասին?
Խոսեք ձեր նախագծում dataclass-ների օգտագործման մասին և ինչու եք ընտրել դրանք
Ինչպե՞ս եք ընտրելու մի քանի առաջարկների միջև: Ի՞նչ է ձեզ համար կարևոր:
Պատմեք մեզ SOLID սկզբունքների մասին
եթե total_size > self.max_batch_size: raise ValueError("խումբը շատ մեծ է")