Inżynieria oprogramowania

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



8
Unikaj gromadzenia się gałęzi
Zaczynamy napotykać problem, gdy stajemy się coraz więksi, gdy funkcje przechodzą do testowania, ale zanim wszystko zostanie przetestowane i zatwierdzone nowe funkcje będą testowane. Tworzy to środowisko, w którym prawie nigdy nie możemy naciskać na produkcję, ponieważ mamy połączenie przetestowanych i niesprawdzonych funkcji. Jestem pewien, że jest to częsty problem, …

7
Menedżer chce połączonego środowiska programistycznego i produkcyjnego
Pracuję w małym zespole programistycznym wspierającym większą organizację. W tym roku nasz menedżer zdecydował, że wykorzystamy technologie Oracle Apex do obsługi większości danych w naszej firmie. To byłoby w porządku, z wyjątkiem tego, że mamy tylko jeden serwer Apex. Nasz kierownik stwierdził, że wszystko dzieje się w tym jednym przypadku. …

6
Jakie są podstawy matematyczne dla wartości pierwszej / drugiej / trzeciej klasy w językach programowania?
Dodany Właśnie znalazłem dwa powiązane pytania /math//q/1759680/1281 /programming//a/2582804/156458 W językach programowania, od Pragmatics Programming Language Michaela Scotta Mówi się, że wartość w języku programowania ma status pierwszej klasy, jeśli można ją przekazać jako parametr, zwrócić z podprogramu lub przypisać do zmiennej. Proste typy, takie jak liczby całkowite i znaki, są …

4
Programowanie oparte na zdarzeniach: kiedy warto?
Ok, wiem, że tytuł tego pytania jest prawie identyczny jak Kiedy powinienem używać programowania opartego na zdarzeniach? ale odpowiedzi na to pytanie nie pomogły mi zdecydować, czy powinienem wykorzystać wydarzenia w konkretnym przypadku, w którym się znajduję. Tworzę małą aplikację. Jest to prosta aplikacja i w większości jej funkcjonalność jest …

2
Licencjonowanie Ghostscript w produkcie komercyjnym
Badamy perspektywę wykorzystania Ghostscript w produkcie komercyjnym (aplikacja komputerowa dla systemu Windows). Czytałem o omijaniu licencji GS całkowicie, po prostu sugerując użytkownikom, że mogą pobrać i zainstalować GS we własnym zakresie, aby poprawić swoje wrażenia (oprogramowanie faktycznie działa bez niego, ale większość użytkowników chciałaby renderować / ładować dokumenty PDF). Załóżmy, …
19 licensing 



3
Relacyjne bazy danych i iteracyjny rozwój
W wielu podejściach do tworzenia oprogramowania, takich jak metodyki zwinne, projektowanie oparte na domenie oraz analiza i projektowanie zorientowane obiektowo, zachęcamy do stosowania jednego iteracyjnego podejścia do programowania. Dlatego nie powinniśmy robić naszego modelu domeny poprawnie przy pierwszym uruchomieniu projektu. W miarę upływu czasu zmieniamy model, ponieważ z czasem lepiej …



3
Wyjątki - „co się stało” vs „co robić”
Używamy wyjątków, aby pozwolić konsumentowi kodu na nieoczekiwane zachowanie w użyteczny sposób. Zwykle wyjątki są oparte na scenariuszu „co się stało” - na przykład FileNotFound(nie mogliśmy znaleźć określonego pliku) lub ZeroDivisionError(nie byliśmy w stanie wykonać 1/0operacji). Co zrobić, jeśli istnieje możliwość określenia oczekiwanego zachowania konsumenta? Na przykład wyobraźmy sobie, że …
19 exceptions 

3
Czy rozsądnie jest zwracać strumienie wszędzie tam, gdzie normalnie zwracamy kolekcje?
Podczas opracowywania mojego interfejsu API, który nie jest powiązany z żadnym starszym kodem, często piszę metody, które są czysto strumieniowe przesyłaniem strumieniowym zakończone przez zbieranie wyników. Jak ten: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Teraz większość klientów tej klasy zwykle potrzebuje kolekcji (w tym przypadku ImmutableSet) …


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.