Cuente su experiencia trabajando con Kafka y FastStream
Python
¿Cuándo podemos llamar a commit en Producer? ¿Cómo evitar duplicados en el commit manual de lote?
Se proporcionan tres tablas: 1. Usuarios (users): - id (identificador único del usuario). - name (nombre del usuario). 2. Cursos (courses): - id (identificador único del curso). - name (nombre del curso). - price (precio del curso). 3. Cursos de estudiantes (student_courses): - id (identificador de la entrada). - student_id (identificador del usuario). - course_id (identificador del curso). Se requiere: Mostrar todos los usuarios que compraron cursos por un monto superior a 10,000, en el siguiente formato: - user_name (nombre del usuario). - total_price (suma total de las compras). Código inicial select * from users limit 10; select * from courses limit 10; select * from student_courses limit 10;
¿Se puede crear un iterador y generador infinitos? ¿Qué se necesita para ello?
```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]: # devuelve un lote de datos o None ... async def commit(self, chunks: List[Chunk]) -> None: # confirma el procesamiento exitoso de los chunks ... 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("el lote es demasiado grande") # procesamiento de datos ... 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("error pero continúa:", e) continue if __name__ == "__main__": asyncio.run(process()) ```
¿Qué hacer con un fragmento problemático que constantemente causa excepciones durante el procesamiento? ¿Cómo no quedar atrapado en un ciclo y seguir adelante?
Explique el comportamiento de una función con un argumento mutable por defecto. ¿Qué mostrarán los prints?
Cuéntame sobre los decoradores en Python: ¿qué patrón es y cómo implementar un decorador con argumentos?
Principio de sustitución de Liskov — cuéntame más
Cuéntame sobre uno de tus últimos proyectos que te haya tocado el corazón. ¿Qué tipo de proyecto fue, qué hiciste exactamente allí y por qué te tocó el corazón?
Cuéntame sobre tu equipo actual y los proyectos en [banco/empresa]
Cuéntenos sobre los principios de la POO: encapsulación, herencia, polimorfismo, abstracción
¿Qué sabe sobre nuestra empresa?
Cuéntenos sobre el uso de dataclasses en su proyecto y por qué las eligió
¿Cómo elegirá entre varias ofertas? ¿Qué es importante para usted?
Cuéntenos sobre los principios SOLID
si total_size > self.max_batch_size: raise ValueError("la tanda es demasiado grande")