Inżynieria oprogramowania

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

1
Korzystanie z kodu nielicencjonowanego
Powiedzmy na przykład, że miałem znaleźć projekt github, który został uruchomiony, ale nie do końca, lub który był kompletny i chciałem użyć tego kodu w większym projekcie, ale autor kodu nie określił licencji na kod, co jest dopuszczalne użycie tego kodu? Czy mogę go używać w dowolnym celu, który mi …


2
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 to Podmioty, a Konto to Łączny katalog …

2
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-> next; i ilekroć widzę taki kod, po prostu mówię …
10 pointers 

2
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 testSimpleTwoNodeGraphReturnsRoute: self.assertEquals(expectedResult, myHeuristicTSP(input)) Pytanie brzmi: w przypadku nieheurystycznego algorytmu TSP możemy podać różnorodne wykresy i sprawdzić, czy zawsze zwracają absolutnie najkrótszą trasę. Ale ponieważ algorytm heurtystyczny, …


2
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 podobnym do tego. val = ((ConcreteType)sender).Property; lub jeszcze bardziej gadatliwy ConcreteType …
10 c#  event 

3
Kiedy funkcja trig z argumentem stopnia powinna zwracać wartość -0,0?
W tworzeniu funkcji parametrów wyzwalania my_sind(d), my_cosd(d), my_tand(d), że użył argumentu stopni zamiast radianie jedną i pod warunkiem dokładnych odpowiedzi na wielokrotność 90, zauważyłem, że wynik był czasami -0.0zamiast 0.0. my_sind( 0.0) --> 0.0 my_sind(-0.0) --> -0.0 my_sind(180.0) --> -0.0 my_sind(360.0) --> 0.0 sin()i tan()zazwyczaj zwraca ten sam wynik zero …
10 c  math 

3
C ++: Metaprogramowanie z API kompilatora zamiast z funkcjami C ++
Zaczęło się od pytania SO, ale zdałem sobie sprawę, że jest to dość niekonwencjonalne i oparte na rzeczywistym opisie na stronach internetowych, może być lepiej dostosowane do programistów.se, ponieważ pytanie ma wiele pojęć koncepcyjnych. Uczyłem się języka LibTooling i jest to bardzo potężne narzędzie, które może w przyjazny sposób ujawnić …


1
Najlepsze praktyki wdrażania MVVM i MVC w delphi Pascal
Jestem programistą Delphi pascal, używam najnowszej wersji Embarcadero delphi XE i chciałbym skorzystać z wzorców projektowych, takich jak kontroler widoku modelu i widok modelu. Jednak wydaje się, że w Internecie nie ma zbyt wiele na temat najlepszych praktyk wykonywania tego w pascal. Większość przykładów, które mogę znaleźć, są w języku …

5
Kiedy interfejs API jest uważany za osadzony DSL?
Jaka jest różnica między interfejsem API a osadzonym językiem specyficznym dla domeny (DSL)? Czy to tylko składnia? Rozważ API takie jak OpenGL. Czym to się różni od graficznego DSL? Innymi słowy, jeśli interfejs API jest wystarczająco złożony, czy można go uznać za osadzony DSL?
10 api  dsl 

2
Czy jako autor i właściciel praw autorskich mogę ponownie udzielać licencji na mój kod na podstawie bardziej liberalnej licencji po opublikowaniu go na podstawie bardziej restrykcyjnej licencji?
Powiedzmy, na przykład, że opublikowałem swój kod na licencji GPL. Miesiąc po wydaniu postanawiam, że złe korporacje ( *kaszel *) mogą jednak używać mojego kodu, ponieważ jest tak genialny i wolny od błędów. Czy mogę po prostu zmienić licencję na mój kod lub zablokować sobie prawo do tego?
10 licensing  gpl 

2
Jakie jest zalecane podejście do funkcji pomocniczych w JavaScript?
Jakie jest zalecane podejście do funkcji pomocniczych? Chciałbym wybrać jedną technikę i uruchomić ją, aby stworzyć moją nową „klasę”. Oto opcje projektowania, które rozważałem: Opcja 1: Funkcja pomocnicza w zewnętrznym zasięgu, wywoływana w kontekście instancji function createPane (pane) { // logic to create pane var proto = Object.create(this.paneList); $.extend(paneProto, pane); …


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.