Ho tre classi che sono circolari dipendenti l'una dall'altra: TestExecuter esegue le richieste di TestScenario e salva un file di report utilizzando la classe ReportGenerator. Così: TestExecuter dipende da ReportGenerator per generare il rapporto ReportGenerator dipende da TestScenario e dai parametri impostati da TestExecuter. TestScenario dipende da TestExecuter. Non riesco …
Sto lavorando sulla mia applicazione e sono bloccato. Devo implementare una funzione ma non riesco a trovare un buon approccio per implementare questa funzione. Ci stavo pensando da un paio di giorni e non sono venuti pensieri positivi. La ricerca in Internet non mi ha dato alcuna ispirazione. Devo andare …
Nella programmazione di ciò che viene chiamato Principio di minimo stupore? In che modo questo concetto è legato alla progettazione di buone API? È qualcosa applicabile solo alla programmazione orientata agli oggetti o permea anche altre tecniche di programmazione? È legato al principio di "fare una sola cosa nel tuo …
Devo scrivere un gestore del sistema di notifica. Ecco i miei requisiti: Devo essere in grado di inviare una notifica su piattaforme diverse, che potrebbero essere totalmente diverse (ad esempio, devo essere in grado di inviare un SMS o un'e-mail). A volte la notifica può essere la stessa per tutti …
Qual è un buon atteggiamento da parte degli sviluppatori quando discutono di nuove funzionalità, e in particolare di funzionalità non critiche / discutibili? Supponiamo che tu stia sviluppando una sorta di linguaggio simile a Java, e il capo dice: "Abbiamo bisogno di puntatori in modo che gli sviluppatori possano giocherellare …
Sto prendendo una classe di progettazione software in cui dovrei scegliere un software open source da analizzare dal punto di vista della progettazione software. Deve essere un grande progetto: non meno di 100.000 righe di codice. Vorrei davvero scegliere un software molto ben progettato e progettato per avere buone conoscenze …
Il modello "Costruttore" è limitato all'anti-modello del "costruttore telescopico" o si può dire che affronti anche il problema più generale della creazione complicata di oggetti immutabili? La StringBuilderclasse ha la parola "costruttore" nel suo nome, ma non ha nulla a che fare con i costruttori telescopici, ci aiuta semplicemente a …
L'algoritmo di ricerca binaria originale nel JDK utilizzava numeri interi a 32 bit e presentava un bug di overflow se (low + high) > INT_MAX( http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html ) . Se riscriviamo lo stesso algoritmo di ricerca binaria utilizzando numeri interi (firmati) a 64 bit, possiamo supporre che low + highnon supererà …
A quanto ho capito, il design top-down consiste nel perfezionare il concetto astratto di alto livello in parti più concrete e comprensibili, fino a quando non viene definito il blocco più piccolo. D'altra parte, dal basso verso l'alto definisce le parti di basso livello, quindi costruisce gradualmente blocchi di livello …
Parlando con i colleghi dei principi di progettazione e sviluppo del software, ho notato che una delle fonti più comuni per le analogie è l'industria delle costruzioni. Noi costruiamo software e consideriamo la progettazione e la struttura di essere l' architettura . Uno dei modi migliori per imparare (o insegnare) …
Abbastanza diretto. Sto implementando un'interfaccia, ma c'è una proprietà che non è necessaria per questa classe e, in effetti, non dovrebbe essere usata. La mia idea iniziale era semplicemente fare qualcosa del tipo: int IFoo.Bar { get { raise new NotImplementedException(); } } Suppongo che non ci sia nulla di …
Ho un piccolo problema con i termini modulo e componente. Nella mia mente, un modulo sono classi raggruppate, che sono accessibili solo tramite un'interfaccia ben definita. Nascondono tutti i dettagli di implementazione e sono riutilizzabili. I moduli definiscono i moduli da cui dipendono. Qual è la differenza tra i componenti? …
Nella nostra azienda non utilizziamo alcun documento di progettazione del prodotto. Abbiamo un totale di tre dipendenti, quindi tutte le discussioni sulla progettazione del prodotto si svolgono di persona o su Slack. (Siamo anche sul pacchetto Slack di base che consente solo la visualizzazione dei messaggi più recenti.) Il nostro …
Diciamo, ad esempio, che hai un'applicazione con una classe ampiamente condivisa chiamata User. Questa classe espone tutte le informazioni sull'utente, il loro ID, nome, livelli di accesso a ciascun modulo, fuso orario ecc. I dati dell'utente sono ovviamente ampiamente referenziati in tutto il sistema, ma per qualsiasi motivo, il sistema …
La domanda sopra è un esempio astratto di un problema comune che riscontro nel codice legacy o, più precisamente, problemi derivanti da precedenti tentativi di risoluzione di questo problema. Mi viene in mente almeno un metodo .NET framework che ha lo scopo di risolvere questo problema, come il Enumerable.OfType<T>metodo. Ma …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.