Inżynieria oprogramowania

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

7
Zespół ocenia punkty fabularne, biznes chce rzeczywistego czasu
Jestem pewien, że nie jest to rzadki motyw. Mamy dwa zespoły scrumowe, które dobrze oceniają historie użytkowników przy użyciu punktów fabularnych (obecne konstelacje zespołu mają zaledwie około 8 miesięcy, chociaż członkowie zespołu mają kilkuletnie doświadczenie w scrumie). Ale część biznesowa firmy ma trudności z odniesieniem do historii użytkowników; chcą rzeczywistych …
15 scrum  estimation 

6
Trzymasz „kod” z dala od projektantów?
Buduję sporo projektów z moim przyjacielem, ale zawsze dochodzimy do tego samego pułapki. Wiem, jak pisać PHP, JavaScript i inne rzeczy (znam również CSS i HTML), więc mogę wykonać większość pracy, jeśli chodzi o budowanie faktycznej funkcjonalności. Jednak nie może, ale może zrobić coś, czego ledwo potrafię: zaprojektować strony. Ale …
15 design  cakephp 

3
Jaki jest właściwy sposób zarządzania skryptami programistów?
Programiści tworzą skrypty, które pomagają w ich pracy. Na przykład, aby uruchomić Maven z określonymi parametrami, zabić niepotrzebne zadania w tle, które pojawiają się w fazie rozwoju lub połączyć się z określonym serwerem. Skrypty nie są skryptami kompilacji rdzenia ani nie są używane na naszym serwerze Continuous Integration. Jaki jest …


3
Wersjonowanie interfejsów API REST. Każdy interfejs API ma własną wersję
Bardzo często określa się wersje interfejsów API REST w adresie URL, szczególnie na początku ścieżki, tj. Coś w stylu: POST /api/v1/accounts GET /api/v1/accounts/details Jednak nie widziałem żadnego projektu, w którym wersja jest powiązana z każdym interfejsem API. Innymi słowy, utrzymujemy wersję każdego interfejsu API osobno. to znaczy: POST /api/accounts/v2 GET …

1
Rejestrator Java: inicjalizacja bloku statycznego lub inicjalizacja w deklaracji zmiennej
Obecnie używam loggera w moim projekcie w następujący sposób: private static final Logger LOGGER; static{ LOGGER = logger.getLogger(); } Otrzymałem recenzję kodu za użycie bloku statycznego do zainicjowania zmiennej rejestratora. Powiedziano mi, aby zainicjalizować zmienną rejestrującą w samej instrukcji deklaracji. private static final Logger LOGGER = Logger.getLogger(); Próbuję dowiedzieć się, …
15 java 

1
Dlaczego Protobuf 3 uczynił wszystkie pola w komunikatach opcjonalnymi?
Składnia 3 protokołu protobuf spowodowała, że ​​wszystkie pola stały się opcjonalne, odrzucając słowa kluczowe requiredi optionalpoprzednią składnię proto2. Czytając niektóre komentarze od programistów , wydaje się, że zrobiono to w celu zwiększenia kompatybilności binarnej do przodu / do tyłu. Ale dla mnie może to być wymuszone przez wersjonowanie nazw pakietów, …

5
Czy starszy kod powinien zostać zaktualizowany, aby używał nowszych konstrukcji języka, czy też powinien utknąć w przestarzałych konstrukcjach?
Chcę wprowadzić pewne ulepszenia w wciąż funkcjonującym kodzie, który został napisany dawno temu, zanim język programowania, w którym jest napisany, zaczął się rozwijać. Teoretycznie w całym projekcie wykorzystywana jest aktualna wersja języka; jednak ten konkretny moduł (i tak naprawdę wiele innych modułów) jest nadal zapisany w starszym dialekcie. Czy powinienem: …

5
Najlepsze praktyki dotyczące obsługi dużej liczby uporządkowanych plików konfiguracji / właściwości
Wyobraź sobie system, który ma dużą liczbę serwerów. Każde z nich ma wiele ustawień: Niektóre specyficzne dla serwera Niektóre specyficzne dla regionu Niektóre wspólne dla wszystkich Być może możesz mieć niestandardowe grupy, na przykład ta grupa serwerów służy tylko do odczytu itp. Obecna praktyka, o której myślę, to prosta struktura …

5
Zwraca wartość logiczną set.add () w warunkowym?
Operator add klasy set zwraca wartość logiczną, która jest prawdą, jeśli element (który ma zostać dodany) jeszcze nie istniał, a fałsz w przeciwnym razie. Pisze if (set.add(entry)) { //do some more stuff } uważany za dobry styl pod względem pisania czystego kodu? Zastanawiam się, skoro robicie dwie rzeczy naraz. 1) …


1
RESTful API i i18n: jak zaprojektować odpowiedź?
Projektujemy interfejs API RESTful przeznaczony głównie do zaspokojenia potrzeb jednego klienta. Ze względu na bardzo szczególne okoliczności ten klient musi składać jak najmniej zapytań. Interfejs API obsługuje i18n za pomocą nagłówka Accept-Language w żądaniach. Działa to dla wszystkich rzeczy, które klient musi zrobić, z wyjątkiem jednej funkcji, w której klient …
15 rest  api  api-design  http 

3
Wyśmiewanie wprowadza obsługę kodu produkcyjnego
Zakładając interfejs IReader, implementację interfejsu IReader ReaderImplementation oraz klasę ReaderConsumer, która zużywa i przetwarza dane z czytnika. public interface IReader { object Read() } Realizacja public class ReaderImplementation { ... public object Read() { ... } } Konsument: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { …

4
Pobieranie wartości bez konieczności zerowania w Javie
Wiele razy sprawdzam, czy sprawdzam wartość zerową podczas pobierania wartości z jakiejś hierarchii danych, aby uniknąć wyjątków NullPointerExcept, które uważam za podatne na błędy i wymagają dużo dodatkowej analizy. Napisałem bardzo prostą procedurę, która pozwala mi pominąć sprawdzanie wartości zerowej podczas pobierania obiektu ... public final class NoNPE { public …
15 java  null 

5
Małe funkcje vs. utrzymywanie zależnej funkcjonalności w tej samej funkcji
Mam klasę, która ustawia tablicę węzłów i łączy je ze sobą w strukturze graficznej. Czy najlepiej: Zachowaj funkcjonalność, aby zainicjować i połączyć węzły w jednej funkcji Mają funkcje inicjalizacji i połączenia w dwóch różnych funkcjach (i mają zależną kolejność, w której funkcje muszą być wywoływane - należy jednak pamiętać, że …

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.