Devo inserire la registrazione nelle librerie condivise comuni? [duplicare]

4

Dovresti aggiungere la registrazione alle librerie comuni utilizzate in molte applicazioni? Ad esempio, se ho un parser che viene utilizzato in più app, dovrei aggiungere la registrazione all'interno del parser? La mia preoccupazione è che accoppi tutti gli utenti al framework di registrazione.

Sono particolarmente interessato alle soluzioni per librerie condivise che vengono utilizzate al di fuori dell'organizzazione dell'organizzazione. Ad esempio, Microsoft aggiungerà il log in una qualsiasi delle librerie della classe base? Perché o perché no? Quali opzioni ci sono per la risoluzione dei problemi se si omette la registrazione?

    
posta ConditionRacer 15.12.2014 - 19:52
fonte

1 risposta

2

Se l'accoppiamento degli utenti al framework di registrazione è un problema, è possibile utilizzare:

  • Entrambe le dipendenze per fare in modo che i consumatori della libreria condivisa forniscano alla libreria la funzionalità di registrazione.

    Ovviamente, ciò significa che esiste un'interfaccia di logger comune abbastanza standardizzata, come PSR- 3 per PHP , o sei in grado di fornire un'interfaccia abbastanza generica da rendere possibile la creazione di adattatori per diversi framework di registrazione.

    • I professionisti di questo approccio sono che non hai bisogno di gestire autonomamente quadri di registrazione diversi : puoi fornire un'implementazione per la tua interfaccia di registrazione per il tuo framework di registrazione preferito e lasciare che i consumatori crea i propri adattatori per altri framework di registrazione.

    • Il punto è che progettare una buona interfaccia che sarà facile da usare con qualsiasi framework di registrazione potrebbe non essere un compito facile . Può essere utile usare uno standard (la PSR-3 è un esempio) come base.

  • O usa la configurazione dell'applicazione per determinare quale dei quadri di registrazione dovrebbe essere usato.

    Ciò richiede uno standard per i file di configurazione: alcuni linguaggi / framework ne hanno uno, come .NET Framework (file app.config / web.config). Sfortunatamente, altri no (come node.js).

    • Il vantaggio è che i consumatori non devono fare nulla di speciale per far funzionare la tua libreria per loro . Se non hanno bisogno di logging, non configurano nulla. Se necessitano della registrazione, selezionano un framework di registrazione tra quelli supportati e lo configurano nello stesso modo standard che avrebbero per la propria applicazione.

    • Il punto è che, mentre è possibile fornire supporto per i framework di registrazione mainstream, un giorno dovrai sistemare la tua libreria per un nuovo framework. Inoltre, fornire supporto per più framework può aumentare la dimensione della tua libreria e aumentare il numero di dipendenze , a meno che non utilizzi plug-in di solito difficili da implementare.

risposta data 15.12.2014 - 20:15
fonte

Leggi altre domande sui tag