Inżynieria oprogramowania

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

4
Czy powinienem zbudować w pełni funkcjonalną aplikację czy gołe kości, a następnie powoli dodawać funkcje?
Pracuję w zakładzie produkcyjnym, który zlecił działowi IT stworzenie programu planowania produkcji w hali produkcyjnej (co jest bardzo potrzebne). Opierając się na innych doświadczeniach, lepiej byłoby poświęcić mniej czasu i zbudować podstawową strukturę, która będzie użyteczna, a następnie oprzeć ją na tym, dodając funkcje lub zacząć od stworzenia w pełni …

1
Usługa REST jako serwer aplikacji dla ponad 2000 komputerów klienckich. Czy to dobry pomysł?
Będziemy budować system z interfejsem użytkownika w javaFx, który zostanie wdrożony na ponad 2000 maszynach (minimum to 2000, ale będzie więcej - może osiągnąć 5000 komputerów). Z innych powodów / ograniczeń musi być zainstalowany na komputerze, więc nie możemy tego zrobić za pomocą interfejsu przeglądarki internetowej. Ponad 2000 maszyn będzie …
11 java  design  rest  spring 

6
Czy scrum i stabilny rozwój stanowią sprzeczność?
Należę do grupy programistów z 5 zespołami, w sumie około 40 programistów. Postępujemy zgodnie z metodologią Scrum, z 3-tygodniowymi sprintami. Mamy ciągłą konfigurację integracji (Jenkins), a proces kompilacji zajmuje kilka godzin (z powodu obszernych automatycznych testów). Zasadniczo proces rozwoju działa dobrze. Obserwujemy jednak, że po kilku dniach od nowego sprintu …

4
Jak określić warunek wstępny (LSP) w interfejsie w języku C #?
Powiedzmy, że mamy następujący interfejs - interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } Warunkiem jest ustawienie / zainicjowanie ConnectionString przed uruchomieniem dowolnej metody. Ten warunek można w pewnym stopniu osiągnąć, przekazując połączenieString za pośrednictwem konstruktora, jeśli …

2
CQRS bez DDD i bez (lub z?) ES - co to jest model zapisu, a co model odczytu?
O ile rozumiem, główną ideą CQRS są 2 różne modele danych do obsługi poleceń i zapytań. Są to tak zwane „model zapisu” i „model odczytu”. Rozważmy przykład klonowania aplikacji na Twitterze. Oto polecenia: Użytkownicy mogą się zarejestrować. CreateUserCommand(string username)emitujeUserCreatedEvent Użytkownicy mogą obserwować innych użytkowników. FollowUserCommand(int userAId, int userBId)emitujeUserFollowedEvent Użytkownicy mogą …
11 cqrs  read-model 

3
Jak przeprowadzić sprawdzanie poprawności danych wejściowych bez wyjątków lub nadmiarowości
Kiedy próbuję utworzyć interfejs dla określonego programu, zwykle staram się unikać zgłaszania wyjątków, które zależą od niepoprawnych danych wejściowych. Tak więc często zdarza się, że myślałem o takim kodzie (ten przykład jest tylko przykładem, nie przejmuj się funkcją, którą wykonuje, przykład w Javie): public static String padToEvenOriginal(int evenSize, String string) …

6
Nazewnictwo: Czy powinieneś poświęcić zwięzłość dla przejrzystości?
Na przykład następująca funkcja przechodzi przez tablicę, która zawiera nazwę i błędy pola wejściowego. Robi to, sprawdzając nazwę pola sprawdzania poprawności, a następnie wypychając informacje o błędzie do tablicy niepoprawnych pól. Czy lepiej jest streścić i napisać to: addInvalidField (field, message) { const foundField = this.invalidFields.find(value => { return value.name …


3
Entity Framework i unikanie modelu domeny anemicznej
W naszej logice biznesowej czasami mamy zdefiniowane metody, takie jak to: User.ResetCourse(Course courseToReset) Problem polega na tym, że zarówno Użytkownik, jak i Kurs są obiektami proxy Entity Framework. Oznacza to, że kiedy trafimy na właściwości nawigacji użytkownika lub kursu, może to spowodować ogromne trafienie w bazie danych, ponieważ obiektów tych …

5
Czy pojedyncza awaria zakończy się niepowodzeniem operacji zbiorczej?
W API, nad którym pracuję, jest operacja usuwania zbiorczego, która akceptuje tablicę identyfikatorów: ["1000", ..., "2000"] Mogłem zaimplementować operację usuwania według własnego uznania, więc postanowiłem uczynić całą transakcję transakcyjną: to znaczy, jeśli pojedynczy identyfikator jest nieprawidłowy, całe żądanie kończy się niepowodzeniem. Nazywam to trybem ścisłym . try{ savepoint = conn.setSavepoint(); …


2
Jak zaprojektować zasób listy uporządkowanej w usłudze restful?
W kółko napotykałem ten sam problem i nie znalazłem rozwiązania, które moim zdaniem byłoby optymalne. Powiedz w aplikacji, że masz uporządkowaną listę i pozwalasz użytkownikowi zmieniać tę kolejność, przeciągając i upuszczając lub coś w tym stylu. Chcesz, aby zmiany w kolejności były zachowane. Jak to modelujesz? Jak zaprojektować usługę odpoczynku …

2
Czy uważa się za leniwe, jeśli używam pakietu algebry liniowej dla C ++?
Po pierwsze, pozwólcie, że przedstawię trochę tła, zanim faktycznie zadam pytanie. Studiuję fizykę i wszystkie moje zajęcia z programowania prowadzone były w łatwych językach programowania, takich jak MATLAB. Przez easy rozumiem, że język w znacznym stopniu myśli o tobie ... Przez następne lata będę uczęszczał na kursy informatyki i zastanawiam …
11 c++  experience 

9
Jaki powinien być wkład zespołu scrum?
Nasz zespół scrumowy składa się ze zwykłych ról scrumowych. Nie mamy projektanta interfejsu użytkownika / interfejsu użytkownika, a programiści współpracują z interfejsem użytkownika z właścicielem produktu. Tu leży problem. Za każdym razem, gdy mamy tworzyć zaległości i nie definiujemy dokładnego projektu interfejsu użytkownika / UX przed rozpoczęciem sprintu, kończymy zbyt …
11 agile  scrum 

3
Czy można zaimplementować dobrze rozłożoną tabelę skrótów bez użycia operatora%?
Chcę zaimplementować szybką, dobrze rozproszoną tabelę skrótów w języku C #. Mam problem z wybraniem funkcji ograniczenia skrótu, która pobiera dowolny kod skrótu i ​​„ogranicza” go, aby można go było użyć do indeksowania segmentów. Do tej pory widzę dwie opcje: Z jednej strony możesz mieć pewność, że twoje segmenty zawsze …

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.