Inżynieria oprogramowania

Pytania i odpowiedzi dla profesjonalistów, nauczycieli akademickich i studentów pracujących w cyklu życia systemów

5
Jak modelować odwołanie kołowe między niezmiennymi obiektami w C #?
W poniższym przykładzie kodu mamy klasę dla niezmiennych obiektów reprezentujących pokój. Północ, południe, wschód i zachód reprezentują wyjścia do innych pomieszczeń. public sealed class Room { public Room(string name, Room northExit, Room southExit, Room eastExit, Room westExit) { this.Name = name; this.North = northExit; this.South = southExit; this.East = eastExit; …

9
Czy mogę bezpiecznie ignorować kolejność bajtów w sieci?
Tworzę aplikację serwer-klient, w której klient będzie działał w systemie Windows, a serwer prawdopodobnie w systemie Linux. Może później przeniosę klienta na komputery Mac i Linux, ale jeszcze nie teraz. Wszystkie komputery domowe działają obecnie na little-endian. Przez pewien czas korzystałem z Google, ale tak naprawdę nie mogłem znaleźć listy …

2
Filtrowanie pętli foreach z warunkiem gdzie vs klauzule ochronne
Widziałem, jak niektórzy programiści używają tego: foreach (var item in items) { if (item.Field != null) continue; if (item.State != ItemStates.Deleted) continue; // code } zamiast tego, gdzie normalnie użyłbym: foreach (var item in items.Where(i => i.Field != null && i.State != ItemStates.Deleted)) { // code } Widziałem nawet kombinację …


9
Wstrzykiwanie zależności: czy powinienem używać frameworka?
Niedawno pracowałem nad projektem Python, w którym intensywnie wykonaliśmy wstrzykiwanie zależności (ponieważ musimy, aby aplikacja była testowalna), ale nie użyliśmy żadnego frameworka. Czasami ręczne ułożenie wszystkich zależności było trochę uciążliwe, ale ogólnie działało świetnie. Gdy obiekt musiał zostać utworzony w wielu miejscach, mieliśmy po prostu funkcję (czasem klasową metodę tego …

3
Jak zdiagnozować asynchronię / czekać na zakleszczenia?
Pracuję z nową bazą kodu, która intensywnie wykorzystuje async / czekaj. Większość osób w moim zespole również jest całkiem nowa, aby asynchronizować / oczekiwać. Zwykle trzymamy się najlepszych praktyk określonych przez Microsoft , ale generalnie potrzebujemy naszego kontekstu, aby przepłynąć przez wywołanie asynchroniczne i pracujemy z bibliotekami, które tego nie …
24 c#  debugging  async 





5
Czy moje użycie jawnego operatora rzutowania jest rozsądne, czy zły hack?
Mam duży przedmiot: class BigObject{ public int Id {get;set;} public string FieldA {get;set;} // ... public string FieldZ {get;set;} } oraz specjalistyczny obiekt podobny do DTO: class SmallObject{ public int Id {get;set;} public EnumType Type {get;set;} public string FieldC {get;set;} public string FieldN {get;set;} } Osobiście uważam koncepcję jawnego przeniesienia …


9
Dlaczego nie istnieje prawdziwy typ danych „Tylko data”?
Jestem tak śmiesznie sfrustrowany, że muszę używać wartości DateTime dla zestawów danych, które są naprawdę „tylko jeden dzień”. Urodziny są najczęstszym przykładem, ale cały czas pojawia się w aplikacjach biznesowych. Przyzwyczaiłem się do ustawiania części Time rekordów „tylko data” na „południe” (co pozwala uniknąć zmiany daty bez względu na strefę …


3
Algorytm pakowania 3d dla wysyłki przedmiotu
Otrzymałem zadanie zbudowania prognozy wysyłki, która sugeruje najlepsze zakwaterowanie towarów na jak najmniejszej liczbie pudełek: Istnieje skończony zestaw znanych rozmiarów prostokątnych pudełek Istnieje wiele dowolnych prostokątnych przedmiotów, które należy zapakować w pudełka Im mniej pól, tym lepiej. Ponieważ wysyłka dwóch pudeł 1x1x1 jest znacznie droższa niż jedno pudełko 1x2x1. To …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.