Context del Projecte
Un proveïdor d'energia verda del Regne Unit (100Green.com) necessitava migrar d'un lloc web .NET obsolet a una solució d'hosting més assequible. El departament de vendes els va vendre WordPress, però l'arquitectura de WordPress no és ideal per a lògica de negoci complexa. El desafiament: separar la lògica de negoci del mecanisme d'entrega (WordPress) mantenint el requisit del client.
Repte Tècnic
El CRM del client proporciona dades de tarifes en brut via API basades només en codi postal. El sistema necessitava calcular tarifes complexes (Tarifa Diürna, Tarifa Nocturna, Càrrec Fix, Despesa Mensual Estimada) basades en múltiples variables: tipus d'energia (gas, electricitat o ambdues), smart meter (sí/no), comptador de 2 tarifes (sí/no), i tipus de consum (baix, mitjà, alt o ús personalitzat). El CRM no podia realitzar aquests càlculs—vam haver de construir una calculadora de domini que processa dades en brut usant fórmules de negoci específiques.
Solució Arquitectònica
En lloc d'acoblar tot a l'arquitectura espagueti de WordPress, vam dissenyar una solució que separa bounded contexts del mecanisme d'entrega:
- • Plugin d'API de WordPress: Un mòdul que crea endpoints per rebre peticions només des del nostre domini (amb mecanismes de seguretat adequats per prevenir peticions cross-domain)
- • Llibreries PHP pures (sense framework): Estructures vertical sliced amb capa Application (casos d'ús), capa Domain (polítiques, interfícies, contractes), i capa Infrastructure (implementacions específiques)
- • Aplicació React incrustada a WordPress: Una calculadora que es comunica amb la nostra API personalitzada, que conté totes les regles de negoci abstraïdes a les nostres llibreries que consulten el CRM del client
- • Principi d'estabilitat: Els mòduls més estables (llibreries de negoci) estan més allunyats dels més volàtils (frontend React), creant una separació clara entre presentació i lògica de negoci
Resultats
Fricció mínima amb WordPress: només una app React incrustada al DOM d'una pàgina de WordPress. La resta és lògica de negoci pura, adequadament separada. El sistema demostra com aplicar DDD, arquitectura hexagonal, bounded contexts i principis d'arquitectura orientada a serveis fins i tot quan s'està limitat per un mecanisme d'entrega com WordPress.
Tecnologies
- • WordPress (delivery mechanism)
- • Raw PHP (framework-free)
- • React
- • Domain-Driven Design
- • Hexagonal Architecture
- • Vertical Sliced Structures
- • Stability Rule Principle
Assoliments Clau
- • Separació completa de la lògica de negoci del mecanisme d'entrega de WordPress
- • Calculadora de domini independent de la infraestructura
- • Arquitectura vertical sliced amb límits clars
- • Principi d'estabilitat aplicat: mòduls estables protegits del frontend volàtil