Inżynieria oprogramowania

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



12
Projektowanie obiektowe
Załóżmy, że masz: +--------+ +------+ | Animal | | Food | +-+------+ +----+-+ ^ ^ | | | | +------+ +-------+ | Deer | | Grass | +------+ +-------+ Deerdziedziczy Animali Grassdziedziczy po Food. Jak na razie dobrze. Animalprzedmioty mogą jeść Foodprzedmioty. Teraz pomieszajmy to trochę. Pozwala dodać, Lionktóry dziedziczy …

6
Czy w programowaniu funkcjonalnym lokalne zmienne zmienne bez efektów ubocznych są nadal uważane za „złą praktykę”?
Czy posiadanie zmiennych lokalnych zmiennych w funkcji, które są używane tylko wewnętrznie (np. Funkcja nie ma skutków ubocznych, a przynajmniej nie celowo) jest nadal uważane za „niefunkcjonalne”? np. podczas sprawdzania stylu kursu „Programowanie funkcjonalne ze Scalą” uznaje każde varużycie za złe Moje pytanie, jeśli funkcja nie ma skutków ubocznych, czy …


3
Implementowanie wzorca gościa dla abstrakcyjnego drzewa składni
Jestem w trakcie tworzenia własnego języka programowania, który robię do celów edukacyjnych. Napisałem już leksyk i parser rekurencyjnego zapisu dla podzbioru mojego języka (obecnie obsługuję wyrażenia matematyczne, takie jak + - * /i nawiasy). Analizator składni oddaje mi Streszczenie Drzewo Składni, w którym wywołuję Evaluatemetodę, aby uzyskać wynik wyrażenia. Wszystko …



2
Czy dobrym pomysłem jest zapewnienie różnych sygnatur funkcji, które robią to samo?
Oto klasa C ++, która składa się z trzech wartości. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Wszystkie typy parametrów są różne. Mógłbym przeciążyć konstruktora, aby kolejność nie miała znaczenia. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, int, char); Foo(char, int, std::string); Foo(char, …

5
Testy jednostkowe w świecie „bez setera”
Nie uważam się za eksperta DDD, ale jako architekt rozwiązań staram się stosować najlepsze praktyki, gdy tylko jest to możliwe. Wiem, że wokół DDD jest wiele dyskusji na temat przeciwników i przeciwników „stylu” setera no (publicznego) i widzę obie strony argumentu. Mój problem polega na tym, że pracuję w zespole …

2
Czy C # połączy się z natywnym kompilatorem C ++? [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 …
23 c#  c++ 

3
Dlaczego wielowątkowość jest często preferowana w celu poprawy wydajności?
To pytanie zostało przeniesione z przepełnienia stosu, ponieważ można na nie odpowiedzieć w programie Software Engineering Stack Exchange. Migrował 6 lat temu . Mam pytanie, chodzi o to, dlaczego programiści wydają się lubić współbieżność i programy wielowątkowe w ogóle. Rozważam tutaj 2 główne podejścia: podejście asynchroniczne oparte w zasadzie na …

3
Lista kontrolna, aby uniknąć blokady dostawcy?
Czy istnieje zestaw reguł zatwierdzonych przez branżę, aby uniknąć blokady dostawcy? Mam na myśli coś, co można pokazać kierownikowi lub innemu decydentowi, co jest łatwe do zrozumienia i weryfikacji. Czy istnieje powszechnie przyjęty zestaw reguł, lista kontrolna lub zestaw warunków, które pomagają wykryć i zapobiec blokowaniu się dostawcy w obiektywny …

5
Jak wdrożyć bezpieczną historię haseł
Hasła nie należy przechowywać w postaci zwykłego tekstu z oczywistych względów bezpieczeństwa: musisz przechowywać skróty, a także należy ostrożnie generować skrót, aby uniknąć ataków na tęczową tablicę. Zwykle jednak wymagane jest przechowywanie ostatnich n haseł i wymuszanie minimalnej złożoności i minimalnej zmiany między różnymi hasłami (aby uniemożliwić użytkownikowi korzystanie z …


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.