Inżynieria oprogramowania

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

1
Licencja MIT vs. Creative Commons na obrazy i inne zasoby
Czy ktoś mógłby rozwiązać dla mnie konkretne zamieszanie związane z licencjonowaniem? Zawsze jestem naprawdę zaskoczony tym, jak działa licencjonowanie oprogramowania. Chcę, aby każdy mógł korzystać z mojego oprogramowania z minimalnymi, jeśli w ogóle, ograniczeniami i bez gwarancji. Więc po prostu używam permisywnej licencji (licencja MIT była moim wyborem) i piszę …
14 licensing 



2
Const C ++ DRY Strategie
Aby uniknąć nietrywialnego powielania związanego z C ++ const, czy istnieją przypadki, w których const_cast działałoby, ale prywatna funkcja const zwracająca non-const nie? W Effective C ++ pozycja 3 Scott Meyers sugeruje, że const_cast w połączeniu z rzutowaniem statycznym może być skutecznym i bezpiecznym sposobem na uniknięcie powielania kodu, np. …
14 c++  dry  const 


4
Jaka jest różnica między wywoływalnym <T> a dostawcą Java 8 <T>?
Przełączam się na Javę z C # po kilku zaleceniach z CodeReview. Tak więc, kiedy patrzyłem na LWJGL, przypomniałem sobie, że każde wywołanie Displaymusi być wykonane w tym samym wątku, w którym wywołano Display.create()metodę. Pamiętając o tym, przygotowałem klasę, która wygląda trochę tak. public class LwjglDisplayWindow implements DisplayWindow { private …
14 java 

4
Dlaczego C ++ nie pozwala ci wziąć adresu konstruktora?
Czy istnieje konkretny powód, dla którego złamałoby to język koncepcyjnie, czy konkretny powód, dla którego jest to technicznie niewykonalne w niektórych przypadkach? Zastosowanie byłoby z nowym operatorem. Edycja: Porzucę nadzieję na wyprostowanie mojego „nowego operatora” i „nowego operatora” i będę bezpośredni. Pytanie brzmi: dlaczego konstruktorzy są wyjątkowi ? Pamiętaj oczywiście, …
14 c++ 


3
MVVM i wzorzec usługi
Buduję aplikację WPF przy użyciu wzorca MVVM. W tej chwili moje viewmodels wywołuje warstwę usługi, aby pobrać modele (co nie ma znaczenia dla viewmodel) i przekonwertować je na viewmodels. Używam iniekcji konstruktora, aby przekazać wymaganą usługę do modelu viewmodel. Jest łatwy do przetestowania i działa dobrze w modelach view z …

4
Nazwa pola logicznego, które jest czasownikiem
W Javie, zgodnie z konwencją, getter i setter dla pól logicznych będą isField()i setField(). To działa perfekcyjnie z nazwami pól, które są przymiotniki jak active, visible, closeditp Ale jak nazwać pole, które ma znaczenie czasownika, na przykład haveChildren? Może dodać „_ing” do czasownika ( )?havingChildren Aby to wyjaśnić, nie mam …
14 java  naming 

4
Czy szpiegowanie sprawdzonych klas to zła praktyka?
Pracuję nad projektem, w którym połączenia wewnętrzne klasy są zwykle, ale wyniki są wielokrotnie proste. Przykład ( nie prawdziwy kod ): public boolean findError(Set&lt;Thing1&gt; set1, Set&lt;Thing2&gt; set2) { if (!checkFirstCondition(set1, set2)) { return false; } if (!checkSecondCondition(set1, set2)) { return false; } return true; } Pisanie testów jednostkowych dla tego …

5
Czy podmiot domeny narusza zasadę pojedynczej odpowiedzialności?
Pojedyncza odpowiedzialność (powód zmiany) bytu powinna polegać na jednoznacznej identyfikacji, innymi słowy, jego odpowiedzialność musi być możliwa do odnalezienia. Książka DDD Erica Evana, str. 93: najbardziej podstawową odpowiedzialnością jednostek jest ustanowienie ciągłości, aby zachowanie było jasne i przewidywalne. Robią to najlepiej, jeśli są zachowani. Zamiast skupiać się na atrybutach, a …

6
W jakiej kolejności definiować osoby pobierające i ustawiające? [Zamknięte]
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …


7
Czy wzorzec strategii można wdrożyć bez znacznego rozgałęzienia?
Wzorzec strategii działa dobrze, aby uniknąć dużych, jeśli ... innych konstrukcji i ułatwić dodawanie lub zastępowanie funkcjonalności. Jednak moim zdaniem nadal ma to jedną wadę. Wygląda na to, że w każdej implementacji wciąż musi istnieć rozgałęziony konstrukt. Może to być plik fabryczny lub plik danych. Jako przykład weź system zamawiania. …

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.