Una raccomandazione spesso visto sulle migliori pratiche per quanto riguarda Moose
è la seguente:Perché "use namespace :: autoclean" è preferibile a "no Moose"?
"Il bit di uso
namespace::autoclean
è semplicemente una buona igiene del codice, in quanto elimina i simboli dal namespace del vostro classe importata alla fine del ciclo di compilazione del pacchetto, incluse le parole chiaveMoose
. Una volta che la classe è stata creata, queste parole chiave non sono necessarie (È preferibile posizionareno Moose
alla fine del pacchetto). "
Preso per Moose::Manual::BestPractices (enfasi il mio).
Capisco tutto ciò che riguarda la citazione di cui sopra, tranne una cosa: perché è l'uso di namespace::autoclean
preferito per l'utilizzo del no Moose
alla fine del campo di applicazione lessicale?
È solo perché namespace::autoclean
è più versatile, consentendo più opzioni nel suo utilizzo, o c'è qualcosa di intrinseco al modo in cui è stato implementato (su misura per le classi Moose
, forse) che lo rende più affidabile?
Non ho trovato alcuna documentazione che chiarisca questo, e mi piacerebbe molto sapere la risposta giusta.
'namespace :: autoclean' interromperà anche il codice se si prevede di utilizzare sovraccarichi allo stesso tempo. In tal caso, potresti provare 'namespace :: sweep'. – friedo
Current 'namespace :: autoclean' (v0.28, ott 2015) documentation [states] (http://stackoverflow.com/questions/9559064/why-is-use-namespaceautoclean-preferred-to-no-moose) che "i sottosistemi magici installati dal sovraccarico non verranno puliti". –