Inżynieria oprogramowania

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

1
Gdzie umieścić klucz API: niestandardowy nagłówek HTTP VS nagłówek autoryzacji z niestandardowym schematem
Projektuję interfejs API REST przy użyciu autoryzacji / uwierzytelnienia za pomocą klucza API. Próbowałem dowiedzieć się, jakie jest dla niego najlepsze miejsce i odkryłem, że wiele osób sugeruje użycie niestandardowego nagłówka HTTP, takiego jak ProjectName-Api-Keynp .: ProjectName-Api-Key: abcde ale także możliwe i ideologicznie poprawne jest użycie Authorizationnagłówka z niestandardowym schematem, …

2
Klasy a moduły w Pythonie
Python ma wiele modułów (takich jak re), które wykonują określony zestaw akcji. Możesz wywoływać funkcje tego modułu i uzyskiwać wyniki, a moduł jako całość ma za sobą pomysł (w tym przypadku dotyczy wyrażeń regularnych). Klasy wydają się robić dokładnie to samo, ale wydają się również używać właściwości nieco więcej niż …
19 class  modules 

2
Jakie są różne znaczenia słowa „urządzenie”?
Mam pewne trudności ze zrozumieniem pojęcia „urządzenia”. Wiem, co to jest zestaw testowy, przypadek testowy, uruchomienie testowe, ale czym dokładnie jest „urządzenie”? Sparametryzowany przypadek testowy? Wydaje mi się, że znaczenie lub semantyka terminu „urządzenie” może się nieznacznie różnić w zależności od języka programowania lub środowiska testowego? Myślę, że urządzenie phpunit …

7
Co to jest idiomatyczne?
Rozumiem, że „idiom” to wspólna operacja lub wzorzec, którego w danym języku nie upraszcza składnia języka podstawowego, taka jak przyrost liczby całkowitej: i = i + 1; W języku C ++ ten idiom jest uproszczony przez operatora: ++i; Kiedy jednak ktoś używa terminu „idiomatyczny”, nie jestem pewien, jak go zrozumieć. …
19 c++  idioms 

5
Jaki jest właściwy sposób synchronizacji danych między mikrousługami?
Jestem stosunkowo nowy w architekturze mikrousług. Mamy aplikację internetową o średniej wielkości i rozważam zalety i wady podziału jej na mikrousługi zamiast monolitycznego systemu, który teraz rozwijamy. O ile dobrze rozumiem, rozważyć microservices Ai Bkażdy z nich polegają na podzbiór danych, że druga. Jeśli wiadomość zostanie opublikowana z Ainformacją, że …

6
Try / Catch / Log / Rethrow - Is Anti Pattern?
Widzę kilka postów, w których podkreślono znaczenie obsługi wyjątku w centralnej lokalizacji lub na granicy procesu jako dobrej praktyki zamiast zaśmiecania każdego bloku kodu wokół try / catch. Mocno wierzę, że większość z nas rozumie znaczenie tego, jednak widzę, że ludzie nadal kończą się anty-wzorcem catch-log-rethrow, głównie dlatego, że aby …

2
Projekt interfejsu API REST: wiele wywołań vs. pojedyncze wywołanie interfejsu API
Opracowujemy interfejs Rest API dla witryny eCommerce, który będzie wykorzystywany przez aplikacje mobilne. Na stronie głównej aplikacji musimy wywoływać wiele zasobów, takich jak suwaki, najlepsze marki, najlepiej sprzedające się produkty, popularne produkty itp. Dwie opcje wykonywania połączeń API: Pojedyncze połączenie: www.example.com/api/GetAllInHome Wiele połączeń: www.example.com/api/GetSliders www.example.com/api/GetTopBrands www.example.com/api/GetBestSellingProducts www.example.com/api/GetTrendingProducts Jakie jest najlepsze …
19 rest  api  api-design  url 

3
Kiedy i dlaczego wskaźniki zaczęły być postrzegane jako ryzykowne?
Wydaje się, że nastąpiła stopniowa zmiana myślenia o stosowaniu wskaźników w językach programowania, tak że ogólnie przyjęto, że wskaźniki są uważane za ryzykowne (jeśli nie wręcz „złe” lub podobne powiększenie). Jakie były wydarzenia historyczne dla tej zmiany myślenia? Czy były jakieś szczególne, przełomowe wydarzenia, badania lub inne wydarzenia? Na przykład …
18 history  pointers 

6
Dlaczego pliki makefile powinny mieć cel „instaluj”?
Pochodzące ze świata C i C ++ większość systemów kompilacji ma installcel, w szczególności Makefile (tam, gdzie jest to zalecane na przykład przez GNU ) lub CMake . Ten cel kopiuje pliki środowiska wykonawczego (pliki wykonywalne, biblioteki, ...) w systemie operacyjnym (na przykład w C:\Program Files\systemie Windows). Jest to naprawdę …

1
SOA / Microservices: Jak obsługiwać autoryzację w komunikacji między usługami?
Pierwszoplanowy Przechodzimy z platformy monolitycznej do architektury zorientowanej na usługi. Stosujemy bardzo podstawowe zasady DDD i dzielimy naszą domenę na różne ograniczone konteksty. Każda domena jest dystrybuowana i udostępnia usługę za pośrednictwem interfejsu API sieci Web (REST). Ze względu na charakter naszej działalności, mamy takie usługi jak rezerwacjach , usług …

2
Czy istnieją dowody na to, że zastosowanie wstrzykiwania zależności poprawia wyniki w inżynierii oprogramowania?
Niezależnie od popularności, czy istnieją jakieś dowody empiryczne, które pokazują, że wstrzykiwanie zależności (i / lub użycie kontenera DI) pomaga, powiedzmy, w zmniejszeniu liczby błędów, poprawie łatwości konserwacji lub zwiększeniu prędkości opracowywania rzeczywistych projektów oprogramowania?


5
API RESTful reprezentuje brak rzeczy
Wyobraź sobie interfejs API pozwalający ustalić, czy dana osoba wybrała zwierzę duchowe. Mogą mieć tylko zero lub jeden duchowy zwierzak. Obecnie: /person/{id}/selectedSpiritAnimal po wybraniu zwierzę zwraca http 200 i {selectedAnimal:mole} ale gdy nie mają wyboru, zwraca http 404. To sprawia, że ​​moje zwierzę duchowe jest nieszczęśliwe, ponieważ reprezentujemy ważny problem …
18 rest 

3
Czy istnieje termin nadmiernej komplikacji OOP?
Rok lub dwa lata temu zobaczyłem doskonały artykuł na temat OOP (Java), który pokazał postęp prostego konkretnego rejestratora dwóch lub trzech linii kodu oraz teoretyczne nadmierne procesy myślowe przez niedoświadczonego programistę, który w zasadzie powiedział: och, powinienem dodaj to na wypadek, gdybyśmy tego chcieli! Pod koniec artykułu ten prosty program …

1
Testy jednostkowe: odroczone twierdzenia z Linq
Czy można dodawać odroczone twierdzenia w ten sposób? var actualKittens = actualKittens.Select(kitten => { Assert.IsСute(kitten); return kitten }); Dlaczego? Mogę więc powtórzyć tylko raz, nawet w przypadku stwierdzeń oczekujących zmaterializowanej kolekcji, na przykład: CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList()); Może to być nie tylko Select, ale metoda ze zdefiniowanym iteratorem i mająca wiele kontroli …

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.