Ingegneria software

Domande e risposte per professionisti, accademici e studenti che lavorano nel ciclo di vita dello sviluppo di sistemi



2
Modello di repository vs Creazione oggetto DAL
Per quanto ho imparato, IRepositorydovrebbe contenere CRUD. Poi abbiamo ereditato questo IRepositorynelle nostre altre interfacce come IProducte attuare IProductclasse concreta ProductRepository, con metodi come GetAllProducts(), Top5Products(). Potremmo anche fare lo stesso con l'architettura di livello n. come, creazione DAL Class Librarye in essa definire una classe Productcon metodi come GetAllProducts(), …




1
Nome della tecnica per inferire argomenti di tipo di un parametro di tipo?
Setup: supponiamo di avere un tipo chiamato Iteratorche ha un parametro type Element: interface Iterator<Element> {} Quindi abbiamo un'interfaccia Iterableche ha un metodo che restituirà un Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Il problema con l' Iteratoressere generico è che …

2
Granularità delle eccezioni
Ho incontrato un dibattito tra alcuni amici e I. Preferiscono eccezioni generali come ClientErrorExceptione ServerErrorExceptioncon i dettagli come campi dell'eccezione, mentre preferisco rendere le cose più specifiche. Ad esempio, potrei avere una manciata di eccezioni come: BadRequestException AuthenticationFailureException ProductNotFoundException Ognuno di questi costruito sulla base del codice di errore restituito …

3
Anti-for-if antipattern
Stavo leggendo in questo post sul blog l'anti-pattern for-if, e non sono abbastanza sicuro di capire perché sia ​​un anti-pattern. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } } Domanda 1: È a causa del return new StreamReader(filename);dentro for loop? o il fatto che …

5
Microservizi: MonolithFirst?
Ho studiato architetture di microservizi cercando di ottenere una panoramica di alto livello di tutti i pro e i contro, perché e perché, molte informazioni che sto leggendo / guardando provengono da ThoughtWorks (Martin Fowler, Neal Ford, et al). La maggior parte del lavoro di Martin Fowler sull'argomento ha pochi …

6
cosa può andare storto nel contesto della programmazione funzionale se il mio oggetto è mutabile?
Riesco a vedere i vantaggi di oggetti mutabili vs immutabili come gli oggetti immutabili che tolgono molto dalla risoluzione dei problemi nella programmazione multi-thread a causa dello stato condiviso e scrivibile. Al contrario, gli oggetti mutabili aiutano a gestire l'identità dell'oggetto piuttosto che creare ogni volta una nuova copia e …



3
Come progetterei un metodo TryParse che fornisce informazioni dettagliate in caso di errore di analisi?
Quando si analizza l'input dell'utente, si consiglia generalmente di non generare eccezioni ma piuttosto di utilizzare metodi di convalida. Nel .NET BCL, questa sarebbe la differenza tra, ad esempio, int.Parse(genera un'eccezione su dati non validi) e int.TryParse(restituisce falsedati non validi). Sto progettando il mio Foo.TryParse(string s, out Foo result) e …
9 c#  .net  api-design 


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.