Inżynieria oprogramowania

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

1
Zachowaj API zamiast używania idiomów w porcie
Pracuję na porcie od Pythona do Rusta i natrafiłem na kod, który nie może być wyrażony w Rust tak naturalnie, jak w Pythonie. Jednym z takich przypadków jest użycie parametrów domyślnych: class Foo: def __init__(self, a="Hello"): self._a = a W Rust możesz to zaimplementować za pomocą konstruktora: struct FooBuilder { …

2
Ciągłe wdrażanie za pomocą gitignore
W jaki sposób radzisz sobie z ignorowanymi plikami w gitignore podczas ciągłego wdrażania w Git? Pliki te są ignorowane ze względu na prywatność (tj. Nie chcą, aby były wypychane do innych zdalnych repozytoriów, takich jak GitHub), ale przy ignorowaniu tych plików nie są wypychane do repozytorium ciągłego wdrażania, aplikacja nie …


2
Czy instancje Java 8 Stream powinny zawsze być close () 'd?
Quoth the Javadoc : Strumienie mają metodę BaseStream.close () i implementują funkcję AutoCloseable, ale prawie wszystkie instancje strumienia nie muszą być tak naprawdę zamykane po użyciu. Zasadniczo tylko strumienie, których źródłem jest kanał IO (takie jak te zwracane przez Files.lines (Path, Charset)) będą wymagać zamknięcia. Większość strumieni jest wspierana przez …
12 java  resources  java8 

1
Jak przeprowadzać recenzje użytkowników na temat żądań ściągania GitHub?
Przechodzimy z Bitbucket do GitHub, a jedną rzeczą, z którą mamy problemy, są recenzje kodów równorzędnych, które działały bardzo płynnie na Bitbucket w następujący sposób: Autor otworzył żądanie ściągnięcia (GitHub: to samo) Autor dodał swoich współpracowników jako recenzentów (GitHub:? Walczy tu z wieloma osobami przypisanymi) Recenzent: Zatwierdzono PR z zielonym …


5
Jaka jest różnica koncepcyjna między wreszcie a destruktorem?
Po pierwsze, dobrze wiem, dlaczego w C ++ nie ma konstrukcji „nareszcie”? ale długotrwała dyskusja na temat komentarza wydaje się uzasadniać osobne pytanie. Oprócz problemu, że finallyw języku C # i Javie może istnieć tylko raz (== 1) na zakres, a pojedynczy zakres może mieć wiele (== n) destrukterów C …


5
Jak uniknąć naruszenia SRP w klasie w celu zarządzania buforowaniem?
Uwaga: Próbka kodu jest napisana w języku c #, ale to nie powinno mieć znaczenia. Umieściłem c # jako tag, ponieważ nie mogę znaleźć bardziej odpowiedniego. Chodzi o strukturę kodu. Czytam Clean Code i staram się zostać lepszym programistą. Często staram się przestrzegać zasady pojedynczej odpowiedzialności (klasy i funkcje powinny …

2
Czy klasy w bibliotece JRE obsługują obserwowalne i / lub asynchroniczne odczyty ze zbiorów zewnętrznych / innych niż JRE?
Jak mogę zaimplementować bibliotekę między platformami (np. W środowisku JRE), aby działała w sposób bezpieczny dla wątków w odniesieniu do odwołań do obiektów, aby natywne interfejsy na innych platformach mogły obserwować obiekt i korzystać z obserwowalnych wzorców? Trochę tła - istnieje koncepcja wiązania danych używana w większości frameworków. W języku …

2
Dlaczego atrybuty testowania jednostkowego zwykle wymagają publicznych metod?
Niedawno zauważyłem, że dodanie [TestInitialize] do metody chronionej w zestawie .NET nie było przestrzegane, ale jeśli podałem tę metodę do publicznej wiadomości, zostanie ona wywołana przez moduł uruchamiający testy jednostkowe (w tym przypadku Resharper). Zauważyłem to kilka razy w przeszłości za pomocą metod testowych. Technicznie rzecz biorąc, tak samo łatwo …


3
Zrozumienie wzoru strumienia
Właściwie badam wzór strumienia i jest coś, czego nie rozumiem na temat sklepów . Czym one są dokładnie? Przeczytałem wiele artykułów i wydaje się, że dotyczy to domeny. Czy to oznacza, że ​​jest to „abstrakcyjna” część związana z wywołaniami interfejsu API lub wywołaniami backendowymi? To nie jest dla mnie bardzo …


3
Czy stosowne jest umieszczanie znanych problemów bezpośrednio w oprogramowaniu?
Przejęłem konserwację aplikacji na Androida i jest kilka pozostałych problemów, które mniej więcej naprawiłem, ale nadal mam problemy z powodu różnych wersji systemu operacyjnego Android. Na przykład wysłanie żądania internetowego za pomocą klasy MediaPlayer ma niestandardowe nagłówki HTTP usuwane przez system operacyjny przed wysłaniem żądania, ale tylko na Androidzie 4.X …

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.