Parlez de votre expérience avec Kafka et FastStream
Python
Quand pouvons-nous appeler commit chez le Producer ? Comment éviter les doublons lors d'un commit manuel de batch ?
On fournit trois tables : 1. Utilisateurs (users) : - id (identifiant unique de l'utilisateur). - name (nom de l'utilisateur). 2. Cours (courses) : - id (identifiant unique du cours). - name (nom du cours). - price (prix du cours). 3. Cours des étudiants (student_courses) : - id (identifiant de l'enregistrement). - student_id (identifiant de l'utilisateur). - course_id (identifiant du cours). Il est nécessaire de : Afficher tous les utilisateurs qui ont acheté des cours pour un montant supérieur à 10 000, au format : - user_name (nom de l'utilisateur). - total_price (montant total des achats). Code de départ select * from users limit 10; select * from courses limit 10; select * from student_courses limit 10;
Peut-on créer un itérateur et un générateur infinis ? Que faut-il pour cela ?
```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]: # retourne un lot de données ou None ... async def commit(self, chunks: List[Chunk]) -> None: # confirme le traitement réussi des 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("le lot est trop grand") # traitement des données ... 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("erreur mais continue:", e) continue if __name__ == "__main__": asyncio.run(process()) ```
Que faire avec un fragment problématique qui cause constamment des exceptions lors du traitement ? Comment ne pas rester bloqué et continuer ?
Parlez-moi des décorateurs en Python : qu'est-ce que ce pattern et comment implémenter un décorateur avec des arguments ?
Explique le comportement d'une fonction avec un argument mutable par défaut. Que vont afficher les impressions?
Parle-moi d'un de tes derniers projets qui t'a touché. Quel était le projet, que faisais-tu exactement là-bas, et pourquoi t'a-t-il touché ?
Principe de substitution de Liskov — racontez-moi plus en détail
Parlez-moi de votre équipe actuelle et des projets dans [banque/entreprise]
Parlez des principes de la POO : encapsulation, héritage, polymorphisme, abstraction
Que savez-vous de notre entreprise?
Parlez-nous de l'utilisation des dataclasses dans votre projet et pourquoi vous les avez choisies
Comment choisirez-vous entre plusieurs offres ? Qu'est-ce qui est important pour vous ?
Parlez-nous des principes SOLID
si total_size > self.max_batch_size: raise ValueError("le lot est trop grand")