Ho diversi test sull'odore per le "migliori pratiche". Alcuni vengono attraverso cattive implementazioni o strumenti deboli. Alcuni aiutano le nostre menti imperfette a creare cose di alta qualità. Alcuni sono identificati dalle correlazioni tra codice e bug (anche se la causalità potrebbe non essere mai dimostrata). Quindi mi piace capire che cosa sta contribuendo a una regola.
È chiaro che molti parametri possono diventare una sfida di usabilità.
Tuttavia, consente di testare alcuni criteri più rigidi.
Un sacco di sistemi eseguono transazioni CRUD su database relazionali.
Quindi, un test è "questa" regola delle migliori pratiche "influirà sulle transazioni CRUD dei codici in modo positivo o negativo?"
Dopo tutto, anche se potrebbe non piacerti il mio benchmark, i database relazionali sono pensati per rappresentare blocchi del mondo reale in robusti modi di transazione ACID.
Costruire relazioni incomplete, che non rappresentano lo stato del mondo reale, è solitamente "una brutta cosa". Crea una complessità extra per supportarlo, senza alcun apparente pay-off.
Questa non è una licenza per ignorare i "tipi corretti". Se le parti del costruttore o dell'elenco dei parametri di funzione contengono i valori di tipi reali significativi, che rappresentano qualcosa di rilevante nel dominio, che ha un comportamento nell'applicazione, devono essere costruiti o passati.
AFAIK, tutti i linguaggi funzionali forniscono esplicitamente meccanismi per rappresentare e costruire "relazioni appropriate", e questa è "una buona cosa".
Quindi accetto che esistano dei problemi di usabilità semplici e ragionevoli, che non dovrebbero essere ignorati.
Tuttavia, nel caso di un linguaggio funzionale '> 4' non sembra utile.
L'immutabilità è un "martello" molto più grande per risolvere i problemi.
Per me, rappresenta correttamente lo stato della realtà, trumps '> 4' ogni volta.