Il design e la descrizione di alto livello di un sistema software. Il design architettonico distilla i dettagli di implementazioni, algoritmi e rappresentazione dei dati per concentrarsi sull'interazione dei componenti della "scatola nera".
Sono molto attento alla programmazione e ho incontrato lingue tra cui BASIC, FORTRAN, COBOL, LISP, LOGO, Java, C ++, C, MATLAB, Mathematica, Python, Ruby, Perl, JavaScript, Assembly e così via. Non riesco a capire come le persone creano linguaggi di programmazione e escogitano compilatori per questo. Inoltre non riuscivo a …
Un mio collega oggi ha impegnato una classe chiamata ThreadLocalFormat, che sostanzialmente spostava istanze di classi Java Format in un thread locale, dal momento che non sono thread-safe e "relativamente costosi" da creare. Ho scritto un test rapido e ho calcolato che avrei potuto creare 200.000 istanze al secondo, gli …
Sembra abbastanza chiaro che "Principio della singola responsabilità" non significa "fa solo una cosa". Ecco a cosa servono i metodi. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin afferma che "le lezioni dovrebbero avere solo …
I processori Intel (e forse alcuni altri) utilizzano il formato little endian per l'archiviazione. Mi chiedo sempre perché qualcuno voglia archiviare i byte in ordine inverso. Questo formato presenta dei vantaggi rispetto al formato big endian?
Sto cercando una raccomandazione qui. Sto lottando con se sia meglio restituire NULL o un valore vuoto da un metodo quando il valore restituito non è presente o non può essere determinato. Prendi i seguenti due metodi come esempi: string ReverseString(string stringToReverse) // takes a string and reverses it. Person …
Mi è sempre piaciuta l'idea di avere l'ereditarietà multipla supportata in una lingua. Molto spesso però è stato intenzionalmente dimenticato, e la presunta "sostituzione" sono interfacce. Le interfacce semplicemente non coprono tutto lo stesso terreno dell'ereditarietà multipla, e questa restrizione può occasionalmente portare a più codice della caldaia. L'unica ragione …
L'iniezione di dipendenza (DI) è un modello ben noto e alla moda. La maggior parte degli ingegneri ne conosce i vantaggi, come: Rendere possibile / semplice l'isolamento nei test unitari Definire esplicitamente le dipendenze di una classe Facilitare una buona progettazione ( ad esempio principio della responsabilità singola (SRP)) Abilitazione …
Ho presentato una domanda che ho scritto ad alcuni altri architetti per la revisione del codice. Uno di loro quasi immediatamente mi ha risposto e ha detto "Non usare" statico ". Non puoi scrivere test automatici con classi e metodi statici." Statico "è da evitare". Ho controllato e 1/4 delle …
Questa domanda riguarda il linguaggio C #, ma mi aspetto che copra altri linguaggi come Java o TypeScript. Microsoft consiglia le migliori pratiche sull'uso delle chiamate asincrone in .NET. Tra questi consigli, scegline due: cambia la firma dei metodi asincroni in modo che restituiscano Task o Task <> (in TypeScript, …
Sto facendo fatica a cercare risorse sul perché dovrei usare l' iniezione di dipendenza . La maggior parte delle risorse che vedo spiega che passa solo un'istanza di un oggetto a un'altra istanza di un oggetto, ma perché? Questo è solo per un'architettura / codice più pulito o influisce sulle …
Nella pagina 25 di Codice completo, si dice che è una buona idea poter sostituire facilmente le normali classi dell'interfaccia utente con una riga di comando. Conoscendo i suoi vantaggi per i test, che dire dei problemi che può portare? Questo lavoro extra ripagherà davvero i progetti Web e mobili? …
OK, quindi ho parafrasato. La citazione completa: Internet è stato fatto così bene che la maggior parte della gente la considera una risorsa naturale come l'Oceano Pacifico, piuttosto che qualcosa creata dall'uomo. Quando è stata l'ultima volta che una tecnologia con una scala del genere è stata così priva di …
Sono ancora inesperto a scrivere codice di alta qualità, quindi ho letto libri che trattano il problema come Clean Code di Robert C. Martin e continuo a controllare il codice di librerie famose per migliorare le mie capacità. Sebbene molte librerie open source siano state mantenute per anni, il che …
Uno dei principali problemi che ho riscontrato in un sistema con microservizi è il modo in cui le transazioni funzionano quando si estendono su servizi diversi. All'interno della nostra architettura, abbiamo utilizzato le transazioni distribuite per risolvere questo problema, ma presentano problemi propri. Soprattutto i deadlock sono stati un dolore …
Conosci quella sensazione quando hai solo bisogno di mostrare quel nuovo trucco con Expressions o generalizzare tre diverse procedure? Questo non deve essere su scala di Architecture Astronaut e in effetti può essere utile ma non posso fare a meno di notare che qualcun altro implementerebbe la stessa classe o …
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.