Domande taggate «design-patterns»

Un modello di progettazione è una soluzione riutilizzabile generale a un problema che si verifica comunemente nella progettazione del software.



2
Come fare per testare il codice non iniettabile?
Quindi ho il seguente codice in uso in tutto il mio sistema. Attualmente stiamo scrivendo i test unitari in modo retrospettivo (meglio tardi che mai è stato il mio argomento), ma non vedo come questo sarebbe testabile? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter …




6
Mettere in discussione uno degli argomenti per i framework di iniezione delle dipendenze: Perché è difficile creare un grafico a oggetti?
I framework di iniezione delle dipendenze come Google Guice danno la seguente motivazione per il loro utilizzo ( fonte ): Per costruire un oggetto, devi prima costruirne le dipendenze. Ma per costruire ogni dipendenza, hai bisogno delle sue dipendenze e così via. Quindi quando costruisci un oggetto, devi davvero costruire …


2
Perché separare la classe CommandHandler con Handle () invece di gestire il metodo in Command stesso
Ho implementato una parte del modello CQRS usando S # arp Architecture in questo modo: public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } …

4
Rotaie: Legge della confusione di Demetra
Sto leggendo un libro intitolato Rails AntiPatterns e parlano dell'utilizzo della delega per evitare di infrangere la Legge di Demetra. Ecco il loro primo esempio: Credono che chiamare qualcosa di simile nel controller sia male (e sono d'accordo) @street = @invoice.customer.address.street La soluzione proposta è quella di effettuare le seguenti …

3
Principio di inversione di dipendenza: come definire "politica di alto livello" e "dettaglio di basso livello" per le altre persone?
Sto cercando di spiegare il principio di inversione di dipendenza ai miei colleghi (principalmente junior). Come possiamo definire quale sia la "politica di alto livello" e quale sia il "dettaglio di basso livello" in un software? Ad esempio, se il nostro software automatizza il flusso di lavoro di diverse applicazioni …

3
Usare i test unitari per raccontare una storia è una buona idea?
Quindi, ho un modulo di autenticazione che ho scritto qualche tempo fa. Ora sto vedendo gli errori sulla mia strada e sto scrivendo test unitari per questo. Mentre scrivo unit test, faccio fatica a trovare buoni nomi e buone aree da testare. Ad esempio, ho cose come RequiresLogin_should_redirect_when_not_logged_in RequiresLogin_should_pass_through_when_logged_in Login_should_work_when_given_proper_credentials …

2
Esistono flussi di lavoro o modelli di progettazione specifici che vengono comunemente utilizzati per creare applicazioni di programmazione funzionale di grandi dimensioni? [chiuso]
Chiuso . Questa domanda deve essere più focalizzata . Al momento non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che si concentri su un problema solo modificando questo post . Chiuso 4 anni fa . Ho esplorato Clojure per un po 'di tempo, anche se non …


3
Raccomandare un modello / approccio di progettazione per esporre / tollerare / recuperare da errori di sistema, gestione delle eccezioni (ad es. In Java, C ++, Perl, PHP)
Puoi consigliare un modello / approccio di progettazione per esporre / tollerare / ripristinare da errori di sistema, gestione delle eccezioni (Java, C ++, Perl, PHP)? Alcuni errori devono essere segnalati. Alcuni errori possono essere gestiti internamente (da un nuovo tentativo o sono insignificanti (possono essere ignorati). Come strutturi il …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.