Value Objects — 01 — Implémenter un Value Object en TypeScript et Python
Guide pratique pour créer des Value Objects solides : factory method, validation, immuabilité, equals, sérialisation. Patterns complets TypeScript et Python.
22 articles sur le thème "Python".
Guide pratique pour créer des Value Objects solides : factory method, validation, immuabilité, equals, sérialisation. Patterns complets TypeScript et Python.
Histoire et philosophie de la POO et de la programmation fonctionnelle. Pourquoi ce débat existe, ce qu'il cache vraiment, et pourquoi TypeScript et Python ont tranché.
La différence entre Value Object et Entité en DDD : identité vs valeur, mutabilité, exemples concrets TypeScript et Python. Comment choisir entre les deux.
L'interface abstraite EventStore et ses trois implémentations : PostgreSQL (self-hosted), Firestore (GCP/Firebase), DynamoDB (AWS). Append-only, concurrence optimiste, TypeScript et Python.
Fonctions pures, immutabilité, composition, higher-order functions, currying et functors expliqués avec des exemples TypeScript et Python complets.
Exemple complet d'intégration des Value Objects dans un domaine e-commerce TypeScript et Python : UserId, Email, Money, OrderId, OrderStatus. Composition et expressivité.
Comment TypeScript et Python combinent POO et programmation fonctionnelle dans les mêmes projets. React, dataclasses, functools, règles de décision pratiques.
Encapsulation, héritage, polymorphisme et abstraction expliqués avec des exemples TypeScript et Python. Forces, limites et pièges courants de la POO.
Comment les traces distribuées relient les services entre eux. Spans, context propagation W3C TraceContext, stratégies de sampling. Exemples TypeScript et Python.
Comment modéliser des commands, écrire des handlers et produire des domain events. La différence entre command et event, validation, side effects. TypeScript et Python.
Reconstituer l'état d'un agrégat en rejouant ses events. Optimiser avec des snapshots quand le stream devient long. Versioning des events. TypeScript et Python.
Comment tester des Value Objects en TypeScript avec Vitest et Python avec pytest. Stratégies de test, cas limites, égalité, immuabilité et sérialisation.
Construire des read models depuis les events : projections synchrones (in-process) vs asynchrones (Pub/Sub, EventBridge, Firestore Triggers). Idempotence, eventual consistency. TypeScript et Python.
Introduction à CQRS et Event Sourcing : définitions, philosophie, quand les utiliser et quand les éviter. Concepts indépendants de l'infrastructure (PostgreSQL, GCP, AWS, Firebase).
Assembler CQRS + Event Sourcing dans un projet TypeScript et Python complet : handlers, event store PostgreSQL, projections, queries. Architecture finale et structure de fichiers.
Instrumenter une API TypeScript et Python avec OpenTelemetry : auto-instrumentation, traces manuelles, métriques custom, export OTLP vers Jaeger et Prometheus.
Les 4 types de métriques Prometheus, les méthodes RED et USE pour choisir quoi mesurer, et l'implémentation avec prom-client (TypeScript) et prometheus-client (Python).
Passer des logs texte aux logs JSON structurés. Niveaux de log, correlation ID, aggregation. Implémentation avec pino (TypeScript) et structlog (Python).
Comment intégrer progressivement les patterns fonctionnels dans un code OOP existant : fonctions pures, Result type, pipelines, Value Objects, mémoïsation.
Définition des Value Objects en DDD : 3 propriétés fondamentales, premiers exemples TypeScript et Python. Pourquoi ce pattern élimine une catégorie entière de bugs.
POO vs fonctionnel sur les mêmes problèmes concrets : gestion d'état, gestion d'erreurs, testabilité, concurrence. Code TypeScript et Python côte à côte.
Comment utiliser Claude, GPT et les LLMs dans vos outils internes. Classification, extraction, génération : exemples de code et retours d'expérience.