Inżynieria oprogramowania

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

3
Jak zaprojektować aplikację o wysokiej dostępności
Obecnie mamy klasyczną aplikację n-tier: DB / web service / front-end. Ma inne komponenty, ale jest to podstawowy układ. Chcemy poprawić dostępność aplikacji z 3 głównych powodów: Nasz host czasami doświadcza awarii (tak jak wszyscy), i chcemy zminimalizować wpływ na naszych klientów, więc na przykład włączyliby centrum danych B, jeśli …

2
Czy interfejs API REST może zwrócić wiele zasobów jako jeden zasób złożony?
Jestem w trakcie tworzenia interfejsu API REST i obecnie napotykam następujący problem: Foojest pierwszym zasobem. Operacje CRUD można zastosować za pomocą /foo/identyfikatora URI. Barjest drugim zasobem. Operacje CRUD można zastosować za pomocą /bar/identyfikatora URI. Każdy Foojest powiązany z zerem lub jednym Bar. Powodem, dla którego nie traktuję tego Barjako podrzędnego …

2
Podwójna licencja z GPL i licencja zamkniętego źródła
Przeprowadziłem wiele badań na ten temat, ale nadal jestem dość zdezorientowany. Obecnie pracuję nad projektem oprogramowania zgodnym z Arduino. Projekt jest open source, więc chcę, aby inni również z niego korzystali, ale nie chcę, aby tworzyli prace pochodne z licencjami zamkniętymi. Chciałbym, aby uznali każdy kod używany przez nich z …

3
Czy warto używać konstruktorów i płynnych interfejsów z inicjatorami obiektów?
W Javie i C # można utworzyć obiekt z właściwościami, które można ustawić przy inicjalizacji, poprzez zdefiniowanie konstruktora za pomocą parametrów, zdefiniowanie każdej właściwości po skonstruowaniu obiektu lub użycie wzorca interfejsu konstruktora / płynu. Jednak C # 3 wprowadził inicjatory obiektów i kolekcji, co oznaczało, że wzorzec konstruktora był w …

1
Zależności Node.js są zbyt duże
Ostatnio zacząłem grać w node.js. Teraz każdy samouczek dotyczący węzła mówi, że należy zacząć npm init a następnie powiedzmy, że potrzebujesz standardowej struktury serwera, wybierz ekspresową: npm install express ale wtedy będziesz potrzebować wielu innych rzeczy, do których jesteś przyzwyczajony ze światów takich jak ASP.NET. Mówię o silnikach szablonów (jade) …

1
Czy udostępnianie plików obiektowych jest zgodne z klauzulą ​​ponownego połączenia LGPL?
Z tego pytania dotyczącego SO przeczytałem, że: Własny kod źródłowy + kod źródłowy LGPL połączone statycznie: Musisz wydać obie części jako LGPL. Lub podaj wszystko, co pozwala użytkownikowi ponownie połączyć aplikację z inną wersją kodu źródłowego LGPL. W takim przypadku pozostałe wymagania są takie same, jakby były dynamicznie powiązane. Wygląda …


1
Testowanie jednostkowe potoków przetwarzania danych składających się z funkcji jednowierszowych
Czytając praktyczne wprowadzenie Mary Rose Cook do programowania funkcjonalnego , podaje jako przykład anty-wzorca def format_bands(bands): for band in bands: band['country'] = 'Canada' band['name'] = band['name'].replace('.', '') band['name'] = band['name'].title() od funkcja robi więcej niż jedną rzecz nazwa nie jest opisowa ma skutki uboczne Jako zaproponowane rozwiązanie sugeruje anonimowe funkcje …

4
Czy interfejs API REST powinien być w stanie konwertować datę / godzinę na odpowiednią strefę czasową klienta?
Podczas wdrażania naszego API pojawiła się kwestia czasu i stref czasowych. Wszystkie daty są znormalizowane do UTC w bazie danych. Obecnie w aplikacji innej niż API wszystkie czasy danych są konwertowane na podstawie preferencji użytkowników, zanim zostaną przedstawione. Teraz pojawiło się to samo pytanie dotyczące interfejsu API: czy interfejs API …
10 rest  api  time 


4
Czy zagwarantowanie niezmienności jest uzasadnieniem ujawnienia pola zamiast właściwości?
Ogólne wskazówki dla C # to zawsze używać właściwości w polu publicznym. Ma to sens - wystawiając pole, ujawniasz wiele szczegółów implementacji. Za pomocą właściwości hermetyzujesz ten szczegół, aby był ukryty przed użyciem kodu, a zmiany implementacyjne są oddzielone od zmian interfejsu. Zastanawiam się jednak, czy czasami występuje ważny wyjątek …

3
Właściwość abstrakcyjna w klasie bazowej, aby zmusić programistę do jej zdefiniowania
Koduję za pomocą wzorca stanu dla urządzenia osadzonego. Mam podstawową / abstrakcyjną klasę o nazwie State, a następnie każda dyskretna (konkretna) klasa stanu implementuje abstrakcyjną klasę State. W klasie państwowej mam kilka metod abstrakcyjnych. Jeśli nie zaimplementuję metod abstrakcyjnych w klasie dyskretnej (konkretnej), Visual Studio wyświetli błąd podobny do tego: …

3
Jak wyświetlić / wyjaśnić licencję na kod na blogu
Załóżmy, że mam bloga dostępnego na jednej z licencji Creative Commons . Taki rodzaj licencji byłby wyświetlany na dole każdej strony z linkiem do faktycznej licencji itp. Najwyraźniej jednak licencje Creative Commons nie są odpowiednie dla oprogramowania ani do dystrybucji kodu źródłowego , więc co z jakimkolwiek kodem (np. Fragmentem …

2
Identyfikator vs obiekt domeny jako parametr metody
Czy istnieją obiektywne argumenty przemawiające za lub przeciw używaniu obiektów vs unikalny identyfikator jako parametry metody / funkcji? (i członkowie innych przedmiotów?). Specjalnie w kontekście języków o typie statycznym (C # / Java / Scala) Plusy samego obiektu: Więcej bezpiecznych połączeń. W przypadku identyfikatorów istnieje ryzyko niewłaściwego uporządkowania argumentów. Można …

1
Czy SQLite byłby mniej przydatny bez akceptowania wstawień wartości nienumerycznych do kolumn numerycznych?
W SQLite następująca instrukcja byłaby skuteczna, a łańcuch zostałby wstawiony / zaktualizowany w SALARYkolumnie typu INTEGER: update employee set salary='TOO MUCH' where emp_id=1; Zauważ, że zero nie zostanie wstawione / zaktualizowane, ale rzeczywisty ciąg „ZBYT DUŻO” , więc nie chodzi o automatyczną konwersję typu. FAQ stanowi: To funkcja , a …
10 design  sqlite 

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.