Attualmente faccio parte di un team che sviluppa una soluzione destinata alle piccole imprese. Uno dei componenti è una sorta di "motore dinamico delle regole di business" (annota le virgolette) e, data la sua natura, vorremmo che fosse altamente configurabile.
La mia idea era di implementare / utilizzare un DSL esterno per scrivere le regole con una semplice utility di configurazione per crearle e modificarle. Potremmo anche mantenere un insieme di regole "comuni" e distribuirle con l'applicazione. Un DSL esterno + "editor" ci consentirà di correggere o modificare le regole secondo necessità e i nostri clienti hanno bisogno di quell'agilità nel loro processo.
I membri del mio team pensano che il miglior approccio qui sia quello di fornire le regole come plugin per l'applicazione e ridistribuire o aggiornare quei plugin, sostengono che, in questo modo, avremo un migliore controllo di qualità dato che testare i plugin essere più facile che testare uno script DSL. Ma a mio parere, mantenendo un gruppo di plugin, molti di loro in una base "per cliente" finiranno per diventare un incubo vivente.
Bottomline la mia domanda è: quale soluzione pensi che funzionerà meglio con una piccola squadra di liberi professionisti "jack of all trades" che devono sviluppare / implementare / mantenere / aggiornare circa quattro o cinque clienti?