Inżynieria oprogramowania

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

6
Czy brak wymagań funkcjonalnych jest zwinny?
W dzisiejszych czasach każdy chce być zwinny. W każdym zespole, z którym pracowałem, kształt zwinnego był inny. Niektóre rzeczy są powszechne - jak codzienne wstawki lub planowanie, ale inne części znacznie się różnią. W moim obecnym zespole jest jeden szczegół, który mnie niepokoi. To brak wymagań funkcjonalnych. Nie tylko nie …


5
Kiedy masz wystarczająco dużo automatycznych testów, aby mieć pewność co do ciągłości procesu integracji?
Ciągła integracja z testowaniem jest przydatna, aby upewnić się, że kod „wysyłalny” jest cały czas sprawdzany. Jednak naprawdę trudno jest utrzymać kompleksowy zestaw testów i często wydaje się, że kompilacja i tak będzie wadliwa. Ile testów powinieneś czuć się pewnie podczas testowania rurociągów CI? Czy używasz jakiegoś rodzaju danych, aby …

4
Czy ustalenie daty wydania przed zebraniem wszystkich wymagań jest niestabilne?
Właśnie zacząłem czytać książkę „Stosowanie UML i wzorów” autorstwa Craiga Larmana. Uważam to za bardzo interesujące, ponieważ kwestionuje wiele z tego, co powiedziano mi w pracy. Czytałem, że wymagania nie są w pełni zbierane za jednym razem w trybie zwinnym i potrzeba wielu iteracji, aby zakończyć gromadzenie wymagań. Jeśli tak …

4
czy ten sposób nazywania funkcji jest złą praktyką?
Mam następujący kod: public void moveCameraTo(Location location){ moveCameraTo(location.getLatitude(), location.getLongitude()); } public void moveCameraTo(double latitude, double longitude){ LatLng latLng = new LatLng(latitude, longitude); moveCameraTo(latLng); } public void moveCameraTo(LatLng latLng){ GoogleMap googleMap = getGoogleMap(); cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, INITIAL_MAP_ZOOM_LEVEL); googleMap.moveCamera(cameraUpdate); } Myślę, że w ten sposób eliminuję na przykład odpowiedzialność za to, co …

5
Czy możemy całkowicie zastąpić dziedziczenie za pomocą wzorca strategii i wstrzykiwania zależności?
Na przykład: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Ponieważ klasa Duck zawiera wszystkie zachowania (abstrakcyjne), tworzenie nowej klasy MallardDuck(która się rozszerza Duck) nie wydaje się być wymagane. Odniesienie: Wzorzec projektowy Head First, rozdział 1.

6
Jaka jest najlepsza definicja wstrzykiwania zależności?
Za każdym razem, gdy ktoś do mnie dociera i prosi, abym w sposób koncepcyjny zdefiniował wtrysk zależności i wyjaśnił prawdziwe zalety i wady używania DI w projektowaniu oprogramowania. Przyznaję, że mam trudności z wyjaśnieniem koncepcji DI. Za każdym razem muszę im opowiedzieć historię o zasadzie pojedynczej odpowiedzialności, składzie nad spadkiem …

5
Czy naprawdę potrzebuję wyzwalaczy dla relacyjnej bazy danych, na przykład PostgreSQL?
Wiem, że wyzwalaczy można używać do sprawdzania poprawności przechowywanych danych w celu zachowania spójności bazy danych. Dlaczego jednak nie przeprowadzić walidacji danych po stronie aplikacji przed zapisaniem ich w bazie danych? Na przykład przechowujemy klientów i chcemy przeprowadzić weryfikację, której nie można łatwo wykonać na poziomie DDL. https://severalnines.com/blog/postgresql-triggers-and-stored-function-basics Innym przykładem …



1
Czy mikrousługi za bramą API muszą weryfikować token dostępu?
Mam kilka mikrousług, które są dostępne tylko zewnętrznie za pośrednictwem interfejsu API Gateway. Moja brama API jest skonfigurowana jako zasób OAuth i sprawdza poprawność tokena (sprawdza podpis itp.) Przed przekazaniem żądania do jednej lub więcej mikrousług. Chociaż moje mikrousługi potrzebują tokena, aby zweryfikować zakresy i roszczenia, czy istnieje teraz potrzeba, …

4
Jeśli architektura mikrousług wymaga osobnej bazy danych na mikrousługę, jest to zbyt kosztowne i niemożliwe do zarządzania. Dlaczego tego potrzebujemy?
Czytam o mikrousługach i wydaje mi się, że nielogiczne jest tworzenie osobnej bazy danych dla każdej usługi tylko w celu uzyskania izolacji. Mogę to samo osiągnąć, korzystając tylko z usług internetowych i jednej bazy danych. Dlaczego tego potrzebujemy? Oddzielna baza danych nie podlega dyskusji. Czy jestem w błędzie? Czy możesz …

4
Zastąpić warunkowo polimorfizmem w odpowiedni sposób?
Rozważ dwie klasy Dogi Catobie zgodne z Animalprotokołem (pod względem języka programowania Swift. Byłby to interfejs w Javie / C #). Mamy ekran wyświetlający mieszaną listę psów i kotów. Istnieje Interactorklasa, która obsługuje logikę za kulisami. Teraz chcemy przedstawić użytkownikowi powiadomienie o potwierdzeniu, gdy chce usunąć kota. Psy należy jednak …

2
Dlaczego elastyczność Fortha sprawia, że ​​gramatyka jest dla niego nieodpowiednia?
Niedawno podjąłem się zadania napisania języka programowania opartego na stosie. Zanim jednak zacząłem projektować swój język, pomyślałem, że dobrym pomysłem byłoby czytanie i eksperymentowanie z istniejącymi językami stosowymi. To prowadzi mnie do tematu tego postu. Czytałem artykuł w Wikipedii na temat Forth , języka opartego na stosie, który używa wyrażeń …

2
Architektura systemu alertów
Chciałbym stworzyć system, który obsługuje wiadomości alarmowe z różnych programów i może przetwarzać te alarmy do mniej wymagających klientów za pośrednictwem poczty elektronicznej. Wszystko to byłoby zawarte w jednej sieci wewnętrznej. Myślę, że chcę, aby podstawowa architektura wyglądała mniej więcej tak: Główny problem, który mam obecnie, to bit „modułu obsługi …

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.