Diciamo che abbiamo un progetto piuttosto grande scritto in Python usando il framework Django che è composto da più moduli (termine appropriato in Django è un progetto costituito da più app, ma per ragioni di generalità useremo il termine "moduli"). Questo per ottenere un accoppiamento basso per una facile manutenibilità (tra gli altri vantaggi).
Sono interessato a come, durante il runtime del progetto, come i dati verrebbero spostati tra questi moduli. Come oggetti? O come stringhe?
Se i dati vengono trasferiti tra i moduli nel formato di un oggetto (come nel caso del modulo stesso), non è possibile ottenere un accoppiamento basso. Il motivo è perché un modulo dipenderà dalla classe dell'oggetto localizzata nell'altro modulo. Ad esempio, il modulo non può essere facilmente riutilizzato in un progetto completamente diverso a causa della dipendenza da un altro modulo.
Ma se i dati sono nel formato delle stringhe, è possibile ottenere un accoppiamento basso. La separazione delle funzioni sarà chiara, la risoluzione dei problemi sarà limitata a un singolo modulo e i moduli possono essere facilmente riutilizzati in progetti completamente diversi. Questo è fondamentalmente il modo in cui un'API invia i dati a un client.
Ma questo è il modo giusto per ottenere un accoppiamento basso - utilizzando stringhe per il trasferimento dei dati tra i moduli di un progetto (leggi: applicazione)?