Adoro l'idea del design guidato da domini, tuttavia, mentre sto imparando Go, mi chiedo se c'è l'equivalente di DDD che mira a un linguaggio efficacemente più funzionale?
Non c'è equivalente. DDD aveva bisogno di un paradigma per supportare la frequente riscrittura in uno scenario di sviluppo software evolutivo. OOP sembrava l'unica strategia praticabile a quei tempi. Ma le lingue funzionali possono servire anche a questo scenario.
Potresti volerlo dare un'occhiata video di Greg Young su DDD e programmazione funzionale e Il video di Patrik Fredriksson sull'implementazione di DDD con un linguaggio funzionale come Clojure
Credo che DDD non riguardi lo stesso design OOP, ma più come ci si avvicina all'intero processo di sviluppo. Sviluppo iterativo, linguaggio onnipresente, stretta collaborazione di esperti di business e sviluppatori sono tutti indipendenti dalla lingua e dal paradigma.
La progettazione di oggetti in DDD non è una novità. Gli schemi descritti in DDD esistevano molto prima che il DDD vedesse la luce del mondo. Le radici aggregate, il modello strategico, gli oggetti valore erano adatti solo per descrivere la logica aziendale. Quindi la tua domanda dovrebbe essere più simile a "Come esprimere la logica di business e persiste nello stato in un linguaggio funzionale". Probabilmente stai cercando modelli di progettazione per linguaggi di programmazione funzionale.
Leggi altre domande sui tag design domain-driven-design functional-programming go