Inżynieria oprogramowania

10
Czy nadawca zdarzenia powinien być zawsze obiektem ogólnym?

Podczas programowania zdarzeń w języku C # zaleca się utworzenie delegata w postaci: delegate XEventHandler(object sender, XEventArgs e); Moje pytanie jest na pierwszym argumencie delegata object sender. Czy zawsze musi być ogólny object? Posiadanie nadawcy typu objectzawsze skutkuje kodem...

10
Kolejka wiadomości dla RTOS dla mikrokontrolerów

Obecnie piszę RTOS dla mikrokontrolerów. Wszystko napisano w C ++ 11 - jeśli ktoś jest zainteresowany, a link do repozytorium znajduje się na dole. Obecnie piszę klasę, która jest prostą kolejką danych do przekazywania obiektów między wątkami (lub między programami obsługi przerwań a wątkami lub...

10
TDD z wzorcem repozytorium

W moim nowym projekcie postanowiłem spróbować z TDD. I na samym początku napotkałem problem. Pierwszą rzeczą, którą chcę zrobić w mojej aplikacji, jest umożliwienie odczytu danych ze źródła danych. W tym celu chcę użyć wzorca repozytorium. I teraz: Jeśli testy mają na celu rzeczywistą...

10
Czym jest wyłączny łuk w bazie danych i dlaczego jest zły?

Czytałem najczęściej popełniane błędy w projektowaniu baz danych popełniane przez deweloperów pytania i odpowiedzi dotyczące przepływu stosu. Przy pierwszej odpowiedzi padło zdanie na temat łuku wyłącznego: Łuk wyłączny jest częstym błędem, gdy tabela jest tworzona z dwoma lub więcej kluczami...

10
Jak mogę przetestować algorytm heurystyczny?

Powiedzmy, że mamy nasz algorytm znajdowania trasy: def myHeuristicTSP(graph): /*implementation*/ return route Teraz chcemy to przetestować jednostkowo: class TestMyHeuristicTSP: def testNullGraphRaiseValueError(self): self.assertRaises(ValueError, myHueristicTSP(None)) def...

10
Jak uniknąć gadatliwych interfejsów

Tło: Projektuję aplikację serwera i tworzę osobne biblioteki DLL dla różnych podsystemów. Dla uproszczenia załóżmy, że mam dwa podsystemy: 1) Users2)Projects Publiczny interfejs użytkownika ma metodę taką jak: IEnumerable<User> GetUser(int id); A publiczny interfejs projektów ma metodę...

10
Właściwy sposób na usunięcie elementu z listy połączonej

W tym wywiadzie dla Slashdot zacytowano Linusa Torvaldsa: Widziałem zbyt wiele osób, które usuwają pojedynczo połączony wpis na liście, śledząc wpis „poprzedni”, a następnie usuwając wpis, robiąc coś w stylu if (prev)   prev-> next = entry-> next; else   list_head = entry->...

10
DDD - zagregowany root z dużą liczbą dzieci

Przedmówię to pytanie, mówiąc, że jestem stosunkowo nowy w DDD, więc mogę popełnić tutaj kilka podstawowych błędów! Pracuję nad projektem, który obejmuje pojęcia rachunków i transakcji (w sensie finansowym). Konto może zawierać wiele Transakcji. Wydaje mi się, że zarówno Konto, jak i Transakcja...