Inżynieria oprogramowania

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

3
Skalowanie monolitów vs. skalowanie mikrousług
Jednym z typowych argumentów przemawiających za wykorzystaniem mikrousług jest lepsza skalowalność. Ale zastanawiam się, czy ten argument jest naprawdę ważny. Powiedzmy, że mieliśmy aplikację składającą się z 10 mikrousług, z których 9 ma każde dwa wystąpienia (dla nadmiarowości) i jedno z 4 wystąpieniami do obsługi obciążenia (skalowalność). Argument pro-mikroserwisowy polega …


5
Używanie Func zamiast interfejsów dla IoC
Kontekst: Używam C # Zaprojektowałem klasę. Aby ją odizolować i ułatwić testowanie jednostek, przekazuję wszystkie jej zależności; nie tworzy wewnętrznej instancji obiektu. Jednak zamiast odwoływać się do interfejsów w celu uzyskania potrzebnych danych, odwołuję się do Funcs ogólnego przeznaczenia zwracających wymagane dane / zachowanie. Kiedy wstrzykuję jej zależności, mogę to …

2
Gdzie idą poprawki w modelu git-flow?
W potocznie zwanych poprawkami do modelu Git-flow pojawiają się w swojej konkretnej hotfix-*gałęzi, a drobne poprawki integracyjne znajdują się tuż przed wydaniem w release-*gałęzi. Ogólne poprawki błędów z poprzedniej wersji wydają się nie mieć miejsca. Gdzie powinny się pojawić? Czy powinni być we własnej bug-*gałęzi, która rozgałęzia się develop(podobnie jak …
15 git  gitflow 

4
Najlepsze praktyki dotyczące mapowania typów i metod rozszerzenia
Chcę zadać kilka pytań na temat najlepszych praktyk dotyczących typów mapowania i korzystania z metod rozszerzenia w języku C #. Wiem, że ten temat był omawiany wiele razy w ciągu ostatnich kilku lat, ale przeczytałem wiele postów i nadal mam wątpliwości. Problemem, który napotkałem, było rozszerzenie posiadanej przeze mnie klasy …

2
Jaka jest różnica między opcjami opcjonalnymi a typem zerowym
Swift ma Optionals. C # ma Nullabletypy. O ile mogę stwierdzić, oba służą temu samemu celowi, oprócz wartości pewnego rodzaju przechowują informacje, czy zmienna ma wartość, czy jest niezdefiniowana (niezainicjowana). Pytanie brzmi, czy są Optionalstylko Nullabletypy o różnych nazwach, czy istnieją inne różnice pojęciowe? Innymi słowy, mówiąc o samym pojęciu, …

5
Jaki jest najskuteczniejszy sposób udostępniania kodu między aplikacjami .NET?
W naszej pracy mamy kilka różnych aplikacji .net, które mają wiele podstawowych funkcji. Zbudowaliśmy te aplikacje przy użyciu czystej architektury n-tier, ale osiągnęliśmy ten moment, kiedy zdajemy sobie sprawę, że kilkakrotnie zaimplementowaliśmy te same funkcje. Oczywiście narusza to OSUSZANIE i chcielibyśmy to poprawić. Już teraz używamy Nuget do osiągania sukcesów …

2
Jak zapobiec traktowaniu mojego pliku wykonywalnego z AV jako zły lub wirus?
Tworzę program, który będzie działał w systemie Windows i będzie działał jak program uruchamiający grę, służąc jako automatyczna aktualizacja i weryfikator plików na komputerze klienckim. Jednej rzeczy nie rozumiem, dlaczego moje oprogramowanie antywirusowe (Avast) uważa mój plik exe za niebezpieczny i nie chce go uruchomić bez pytania o umieszczenie go …

3
Czysta architektura - zbyt wiele klas przypadków użycia
Wchodzę w czystą architekturę i podnoszę poziom Androida z MVC do MVP , wprowadzając DI z Dagger 2, Reactivity z RxJava 2 i oczywiście Java 8. W czystej architekturze MVP istnieje warstwa między jednostkami (w magazynach danych) a prezenterami, które powinny mieć do nich dostęp. Ta warstwa to „Przypadek użycia” …
15 java  android  use-case  mvp 


2
Jak działa spanie w wątku?
Kiedy śpisz na wątku, co się właściwie dzieje? Widzę, że uśpienie wątku „wstrzymuje bieżący wątek na określony czas” . Ale jak to działa? Zgodnie z tym, jak Thread.sleep () działa wewnętrznie i jak naprawdę działa Thread.sleep? : czas trwania snu będzie podlegał pewnej szczegółowości specyficznej dla systemu sen blokuje wątek …

3
Czy powinienem zwrócić odpowiedź 204 lub 404, gdy nie znaleziono zasobu?
Rozwijam prostą usługę RESTful dla turniejów i harmonogramów. Gdy turniej jest tworzony na podstawie żądania POST zawierającego ciało JSON, turniej jest wstawiany do BiMap, zadeklarowanej w następujący sposób w implementacji DAO: private BiMap<String, Tournament> tournaments = Maps.synchronizedBiMap(HashBiMap.create()); Po utworzeniu turnieju jest zwracany powiązany identyfikator ciągu, aby użytkownik mógł mieć w …
15 java  rest  web-services  http 

5
Co jest przydatnym sposobem myślenia podczas przeprowadzania formalnej weryfikacji kodu
Nasz zespół niedawno zaczął przeprowadzać przeglądy kodu przy każdym zameldowaniu. Jako przewodniczący zespołu staram się znaleźć równowagę między dostarczaniem zbyt wielu sugestii, denerwowaniem programistów i zmniejszaniem wydajności zespołów, a puszczaniem kodu, napisałbym inaczej. Czy są jakieś dowody, badania lub wskazówki z dobrze znanych źródeł, które sugerują pomocne podejście?

2
Gdzie przeprowadzić test negatywny?
Właśnie zmieniłem ustawienia gałęzi w moim repozytorium GitHub, tak więc moja [następna] gałąź wymaga przekazania kompilacji CI przez żądanie ściągnięcia. Następnie odbyła się dyskusja z kilkoma członkami zespołu na temat nieudanych testów. Dla kontekstu ... Repozytorium ma gałąź [master], do której PR jest wprowadzany tylko wtedy, gdy jest wydanie, więc …

4
Czy instalatory Windows dla wewnętrznych aplikacji biznesowych mają sens?
Staram się zbudować ogólne zrozumienie tego, co jest wspólne w tej sytuacji, aby móc zdecydować, czy sensowne jest kontynuowanie tego. Czy instalatorzy są mile widziani w typowym środowisku korporacyjnym z następującymi elementami? Zmień proces kontroli Środowiska deweloperskie / QA / produkcyjne Wyznaczone zespoły wdrożeniowe dla różnych obszarów (zapora ogniowa, baza …

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.