Inżynieria oprogramowania

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

3
Dlaczego warto skorzystać z wyjątku Over (sprawdzone)?
Nie tak dawno temu zacząłem używać Scali zamiast Javy. Częścią procesu „konwersji” między językami była dla mnie nauka używania Eithers zamiast (zaznaczonych) Exceptions. Kodowałem w ten sposób od jakiegoś czasu, ale ostatnio zacząłem się zastanawiać, czy to naprawdę lepszy sposób. Jedną z głównych korzyści Eitherjest przez Exceptionto lepsze wyniki; Exceptionmusi …

5
Kiedy powinniśmy używać MongoDB?
MongoDB to baza danych NoSQL, którą uważam za dość łatwą w użyciu. Niedawno musiałem opracować prostą aplikację, która musiała zbierać niektóre dane za pomocą żądań HTTP i przechowywać niektóre wyniki po przetworzeniu danych, i próbowałem użyć MongoDB. Z tego doświadczenia wynika, że ​​korzystanie z niego jest dużo przyjemniejsze niż tradycyjnych …

2
Czy żądania ściągania przez squash łamią algorytm scalania gita?
Obecnie pracuję dla firmy, która używa VSTS do zarządzania kodem git. „Zalecanym” sposobem scalania oddziału przez Microsoft jest „scalenie squasha”, co oznacza, że ​​wszystkie zatwierdzenia dla tego oddziału zostają zgniecione w jednym nowym zatwierdzeniu zawierającym wszystkie zmiany. Problem polega na tym, że jeśli zrobię jakieś zmiany w jednej gałęzi dla …
17 git 

5
MVC: Czy kontroler łamie zasadę pojedynczej odpowiedzialności?
Zasada jednolitej odpowiedzialności stwierdza, że ​​„klasa powinna mieć jeden powód zmiany”. We wzorze MVC zadaniem kontrolera jest mediacja między widokiem a modelem. Oferuje interfejs dla widoku do raportowania działań wykonanych przez użytkownika w GUI (np. Zezwalanie na widok do wywołania controller.specificButtonPressed()) i jest w stanie wywoływać odpowiednie metody w modelu …



3
W jaki sposób GDB wstrzymuje wykonanie
Jak zapewne wiesz, możemy użyć GDB i ustawić punkty przerwania w naszym kodzie, aby wstrzymać wykonywanie w celu debugowania. Moje pytania dotyczą tego, w jaki sposób GDB wstrzymuje proces i pozwala na przeglądanie zawartości rejestrów, i rna przykład przy użyciu . Czy te rejestry nie są stale używane przez inne …
16 c++  debugging 

2
Czy konwersja metody C ++ na funkcję C z argumentem wskaźnika jest akceptowalnym wzorcem?
Używam C ++ na ESP-32. Przy rejestracji timera muszę to zrobić: timer_args.callback = reinterpret_cast<esp_timer_cb_t>(&SoundMixer::soundCallback); timer_args.arg = this; Tutaj dzwoni zegar soundCallback. I to samo podczas rejestracji zadania: xTaskCreate(reinterpret_cast<TaskFunction_t>(&SoundProviderTask::taskProviderCode), "SProvTask", stackSize, this, 10, &taskHandle); Tak więc metoda jest uruchamiana w oddzielnym zadaniu. GCC zawsze ostrzega mnie przed tymi konwersjami, ale działa …
16 c++  c  functions 

1
Struktura katalogów dla rozwiązania .NET
Niedawno mieliśmy wizytę kontrahenta, który zakwestionował naszą metodologię strukturyzacji projektów. Pamiętaj, że mam na myśli zwłaszcza strukturę katalogów. Zasugerował użycie wytycznych Microsoft. Myślałem, że będę w stanie znaleźć w Google „strukturę katalogów projektu .NET dla wytycznych Microsoft” i znaleźć coś pomocnego, ale okazało się, że tak nie jest. W tej …
16 c#  visual-studio 

4
Nie można rozwiązać tajemnicy funkcji w JavaScript
Staram się zrozumieć za kulisami JavaScript i trochę utknąłem w zrozumieniu tworzenia wbudowanych obiektów, zwłaszcza Obiektów i Funkcji oraz relacji między nimi. Kiedy przeczytałem, że wszystkie wbudowane obiekty, takie jak Array, String itp., Są rozszerzeniem (dziedziczonym) z Object, założyłem, że Object jest pierwszym wbudowanym obiektem, który zostaje utworzony, a reszta …


3
Dlaczego nie wprowadzasz natychmiast scalonych zmian?
Moje biuro używa Git i SourceTree do kontroli wersji. Stało się tak, ponieważ kiedy dołączyłem, kontrola wersji była zerowa, a SourceTree był jedynym systemem, z którego kiedykolwiek korzystałem. W żadnym wypadku nie jestem ekspertem, ale jestem najbardziej doświadczonym z moich współpracowników, więc jestem de facto ekspertem odpowiedzialnym za uczenie wszystkich …

3
Kiedy powinienem używać string_view w interfejsie?
Korzystam z biblioteki wewnętrznej, która została zaprojektowana tak, aby naśladować proponowaną bibliotekę C ++ , a czasami w ciągu ostatnich kilku lat widzę, że jej interfejs zmienił się z używania std::stringna string_view. Dlatego sumiennie zmieniam kod, aby dostosować się do nowego interfejsu. Niestety, muszę przekazać parametr std :: string i …

5
Czy potrzeba opracowania specyfikacji oprogramowania znacznie spadła wraz z ewolucją bardziej ekspresyjnych języków programowania?
Dla wielu informatyków, w tym dla mnie kilka lat temu, idealny proces tworzenia oprogramowania wymagałby stworzenia szczegółowych dokumentów projektowych z dużą ilością diagramów UML, zanim zostanie napisany wiersz kodu. (Wygląda to jak opis modelu wodospadu, ale jest taki sam w przypadku zwinnego, z tym wyjątkiem, że iteracje są mniejsze). W …

3
Jak testujesz funkcję, której jedynym celem jest zapytanie zewnętrznego interfejsu API, ale interfejs API używa złożonej składni zapytania?
Jedyną prawdziwą logiką jest składnia zapytania dla zewnętrznego interfejsu API. Nie chcę testować, czy wysyła zapytanie do interfejsu API, chcę przetestować, czy wysyła zapytanie w taki sposób, aby zwrócone zostały prawidłowe dane. Na przykład jakiś pseudo-kod: function retrieve_related_data(id) { query = "[potentially long, syntactically complex query that uses param id …

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.