Inżynieria oprogramowania

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


3
Jak zarządzać pojedynczą odpowiedzialnością, gdy odpowiedzialność jest dzielona?
Mam dwie podstawowe klasy Operationi Trigger. Każda z nich ma wiele podklas, które specjalizują się w określonych rodzajach operacji lub wyzwalaczy. A Triggermoże wyzwolić określony Operation. Chociaż Operationmoże być wyzwalany przez określony Trigger. Muszę napisać kod, który odwzorowuje dane Operationdane Trigger(lub odwrotnie), ale nie jestem pewien, gdzie je umieścić. W …


2
Czy dziedziczenie Pythona jest stylem dziedziczenia „czy jest”, czy stylem kompozytorskim?
Biorąc pod uwagę, że Python pozwala na wielokrotne dziedziczenie, jak wygląda dziedziczenie idiomatyczne w Pythonie? W językach z pojedynczym dziedziczeniem, takich jak Java, dziedziczenie byłoby stosowane, gdy można by powiedzieć, że jeden obiekt „jest-a” innego obiektu i chcesz współdzielić kod między obiektami (od obiektu nadrzędnego do obiektu podrzędnego). Na przykład …


3
Stubbing właściwości z prywatnymi ustawiaczami do testów
Mamy przedmiot public class MyObject{ protected MyObject(){} public string Property1 {get;private set;} public string Property2 {get;private set;} public string Property3 {get;private set;} public string Property4 {get;private set;} public string Property5 {get;private set;} public string Property6 {get;private set;} public string Property7 {get;private set;} public string Property8 {get;private set;} public string Property9 …

2
Dlaczego programiści definiują modele programowania, aby zastąpić C / POSIX dla równoległości?
Dostawcy nowych architektur komputerowych regularnie próbują wprowadzać nowe modele programowania, np. Ostatnio CUDA / OpenCL dla GPGPU, i zastępują C / POSIX jako interfejs sterowania równoległością platformy. (Poss & Koening, AM3: Ku sprzętowemu akceleratorowi Unix dla wielu rdzeni, 2015) Dlaczego projektanci architektury starają się projektować nowe modele programowania, aby wyprzeć …

3
Unikanie konstruktorów z wieloma argumentami
Mam więc fabrykę, która tworzy obiekty różnych klas. Wszystkie możliwe klasy pochodzą od abstrakcyjnego przodka. Fabryka ma plik konfiguracyjny (składnia JSON) i decyduje, którą klasę utworzyć, w zależności od konfiguracji użytkownika. Aby to osiągnąć, fabryka używa boost :: property_tree do parsowania JSON. Przechodzi przez ptree i decyduje, który konkretny obiekt …

2
Dlaczego licencja LGPL wymaga, aby połączone prace zawierały kopię licencji GPL?
Czytałem licencję LGPL i znalazłem wymaganie, którego wcześniej nie byłem świadomy. Sekcja 4 (Prace połączone) stanowi: Możesz przekazać Praca połączoną [...], jeśli wykonasz również każdą z następujących czynności: a) Z każdym egzemplarzem Połączonego Dzieła wyraźnie informować, że Biblioteka jest w nim wykorzystywana oraz że Biblioteka i jej wykorzystanie są objęte …

3
Który magazyn danych jest najlepszy dla mojego scenariusza?
Pracuję nad aplikacją, która wymaga bardzo wysokiej wydajności aktualizacji / wyboru zapytań w bazie danych. Mam tabelę podstawową (A), która będzie zawierała około 500 rekordów dla jednostki na jeden dzień. I dla każdego użytkownika w systemie tworzona jest odmiana tego bytu na podstawie niektórych preferencji użytkownika i są one przechowywane …

2
Zalety semantyki kopiowania przy zapisie
Zastanawiam się, jakie są możliwe zalety kopiowania przy zapisie? Oczywiście nie oczekuję osobistych opinii, ale praktyczne scenariusze z rzeczywistego świata, w których może to być technicznie i praktycznie korzystne w namacalny sposób. A przez namacalny mam na myśli coś więcej niż oszczędzanie pisania &postaci. Aby wyjaśnić, to pytanie jest w …
10 c++  qt 

4
Tabele przeglądowe: czy są one nieszczelne w modelu domeny?
Budujesz system, który śledzi firmy. Te firmy mają kontakty. Kontakty te są często specjalistami, którzy odpowiadają tylko na niektóre rodzaje pytań, takie jak fakturowanie / płatność, sprzedaż, zamówienia i obsługa klienta. Używając projektu opartego na domenie i architektury cebuli, modelowałem to z następującymi typami: Firma Ma kontakty Kontakt Ma typy …

2
Dlaczego wydaje się, że DVCS mają irracjonalną fobię niezamierzonych zmian?
Pochodząc ze środowiska SVN, jedną z najtrudniejszych rzeczy, do których należy się przyzwyczaić podczas pracy z systemami DVCS, jest sposób, w jaki wszyscy postrzegają każdą niezaangażowaną zmianę jak tykającą bombę zegarową. W Mercurial, jeśli próbujesz pobrać zmiany i masz jakieś niezatwierdzone zmiany w kopii roboczej, musisz przeskakiwać obręcze, aby po …


3
Czy istnieje wzorzec projektowy do zarządzania głębokimi relacjami wiele do wielu?
Mam problem ze zdefiniowaniem tego wzorca danych, na który natrafiłem podczas pracy nad kilkoma aplikacjami. Składa się ona z: Typ obiektu, który składa się z wielu samych obiektów Drugi typ obiektu, w którym każda instancja „ma wiele” pierwszego obiektu I każdy z podobiektów pierwszego obiektu można modyfikować według każdego powiązania …

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.