Inżynieria oprogramowania

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

1
C ++ 11 zawiera std :: stoję, dlaczego nie std :: itos?
Z radością zauważyłem, że C ++ 11 ma std::sto@rodzinę funkcji do łatwego rozpakowywania ints / floats / longs cokolwiek z ciągów. Dziwi mnie jednak fakt, że przeciwieństwo nie zostało wdrożone. Dlaczego komitet normalizacyjny nie zawiera std::itosrodziny funkcji do przechodzenia od ints / floats / cokolwiek (wstecz) do stringów?
37 c++  parsing  strings  c++11 

8
Jak mogę zniechęcić do udostępniania wewnętrznych kluczy API w firmie?
Pracujemy nad nową usługą - ta usługa będzie potencjalnie wywoływana bezpośrednio z aplikacji na urządzeniach użytkowników. Aplikacje te będą opracowywane i obsługiwane przez wiele zespołów programistycznych z całej organizacji, wszystko w zależności od dostarczanych danych. Chcemy określić, które aplikacje wysyłają które żądania, abyśmy mogli zidentyfikować wzorce użytkowania i odpowiedzialnych programistów. …

5
Jak opisać zmianę architektoniczną, która celowo łamie standardy REST?
Proponuję zmiany w bardzo źle zaprojektowanym projekcie oprogramowania, który ma wiele problemów. Na wysokim poziomie projekt wykorzystuje Angular na interfejsie i zużywa różne interfejsy API REST; co jest świetne (nie widzę potrzeby zmiany naszej technologii ani narzędzi). Problem polega na tym, że podstawa kodu jest nieproporcjonalnie większa w interfejsie użytkownika …

2
Czy pliki CSV UTF-8 powinny zawierać BOM (znak kolejności bajtów)?
Nasze oprogramowanie biznesowe pozwala użytkownikowi zapisywać pewne dane jako CSV . Ponieważ na wolności jest wiele różnych formatów (wszystkie nazywane „CSV”), staramy się zdecydować, jak powinien wyglądać „format domyślny”. Jeśli chodzi o separatory linii / pól i ucieczki, istnieje standard, którego możemy użyć: RFC 4180 . Jeśli chodzi o kodowanie …

7
Czy używanie „nowego” w konstruktorze jest zawsze złe?
Czytałem, że użycie „nowego” w konstruktorze (dla dowolnych obiektów innych niż te o prostej wartości) jest złą praktyką, ponieważ uniemożliwia testowanie jednostkowe (ponieważ wtedy też trzeba stworzyć tych współpracowników i nie można ich wyśmiewać). Ponieważ tak naprawdę nie mam doświadczenia w testowaniu jednostkowym, staram się zebrać kilka zasad, których najpierw …



8
Czy dodanie typu zwrotu do metody aktualizacji narusza „zasadę pojedynczej odpowiedzialności”?
Mam metodę, która aktualizuje dane pracowników w bazie danych. EmployeeKlasa jest niezmienna, więc „aktualizowanie” środki obiekt rzeczywiście instancji nowego obiektu. Chcę, aby Updatemetoda zwróciła nowe wystąpienie Employeez zaktualizowanymi danymi, ale ponieważ teraz mogę powiedzieć, że odpowiedzialnością metody jest aktualizacja danych pracowników i pobranie z bazy danych nowego Employeeobiektu , czy …

11
Czy pętla while jest z natury rekurencją?
Zastanawiałem się, czy pętla while jest z natury rekurencją? Myślę, że dzieje się tak, ponieważ pętla while może być postrzegana jako funkcja, która wywołuje się na końcu. Jeśli nie jest to rekurencja, to jaka jest różnica?
37 recursion  loops 

9
Jak radzić sobie z różnymi stylami programistycznymi (odgórne vs. oddolne) w zespole?
Załóżmy, że właśnie zacząłeś pracować w bardzo małym zespole przy {obecnie stosunkowo małym, ale mam nadzieję, że większym później} projekcie. Należy pamiętać, że jest to rzeczywisty projekt przeznaczony do wykorzystania przez innych programistów w prawdziwym świecie, a nie jakiś projekt akademicki, który ma zostać złomowany pod koniec semestru. Jednak kod …

3
Co to są „metody klasowe” i „metody instancji” w Pythonie?
Na czacie odbyła się dyskusja związana z pytaniem (samo pytanie nie ma znaczenia dla tego pytania), które ujawniło, że mogę nie znać Pythona. Moim zdaniem, mimo że terminologia różni się w zależności od języka, ogólnie możemy klasyfikować funkcje jako: [darmowe] funkcje metody statyczne / funkcje członka statycznego metody niestatyczne / …

4
Dlaczego obowiązkiem osoby dzwoniącej jest zapewnienie bezpieczeństwa wątków w programowaniu GUI?
Widziałem w wielu miejscach, że zgodnie z mądrością kanoniczną 1 dzwoniący jest odpowiedzialny za upewnienie się, że jesteś w wątku interfejsu użytkownika podczas aktualizacji składników interfejsu użytkownika (w szczególności w Java Swing, że jesteś w wątku wysyłki zdarzeń ) . Dlaczego tak jest? Nić Event Dispatch jest troska o widoku …

6
Zbyt wcześnie wypuszczanie oprogramowania typu open source [zamknięte]
Jaka jest moralna odpowiedzialność za zbyt wczesne wydanie oprogramowania typu open source? Na przykład produkt prawie kompletny, który nie został w pełni przetestowany. Czego oczekuje programista? Poczekać, aż zostanie w pełni przetestowany, czy wydać wersję open source, a następnie kontynuować rozwój, testowanie i postępy? Istnieje obawa, że ​​oprogramowanie jest otwarte …

11
Podklasy przeznaczone wyłącznie dla konstruktorów: czy jest to anty-wzór?
Rozmawiałem ze współpracownikiem i skończyły się sprzeczne intuicje na temat celu podklasy. Moją intuicją jest to, że jeśli podstawową funkcją podklasy jest wyrażenie ograniczonego zakresu możliwych wartości jej elementu nadrzędnego, prawdopodobnie nie powinna to być podklasa. Argumentował za odwrotną intuicją: ta podklasa reprezentuje bardziej „specyficzny” obiekt, a zatem relacja podklasy …

8
Czy dobrą praktyką jest poleganie na przesyłaniu nagłówków w sposób tranzytowy?
Usuwam dołączenia w projekcie C ++, nad którym pracuję, i wciąż zastanawiam się, czy powinienem jawnie dołączyć wszystkie nagłówki użyte bezpośrednio w określonym pliku, czy też powinienem zawierać tylko absolutne minimum. Oto przykład Entity.hpp: #include "RenderObject.hpp" #include "Texture.hpp" struct Entity { Texture texture; RenderObject render(); } (Załóżmy, że deklaracja przekazania …
37 c++  c  headers  include 

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.