Inżynieria oprogramowania

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

2
Jak obsłużyć zmiany w projekcie dla wycofania auto_ptr w C ++ 11?
Testujemy bibliotekę pod C ++ 11 (tj -std=c++11.). Biblioteka korzysta z auto_ptrtego wzoru: Foo* GetFoo() { autoptr<Foo> ptr(new Foo); // Initialize Foo ptr->Initialize(...); // Now configure remaining attributes ptr->SomeSetting(...); return ptr.release(); } C ++ 11 jest przestarzałe auto_ptr, więc chcemy się od niego odejść. Jednak kod obsługuje zarówno C ++ …
12 design  c++  c++11 

3
Pochodzenie „metoda powinna zwrócić wartość lub mieć skutki uboczne, ale nie jedno i drugie”
Przeczytałem kiedyś, że metoda powinna albo mieć wartość zwracaną (i być referencyjnie przezroczysta), albo mieć skutki uboczne, ale nie jedno i drugie. Nie mogę znaleźć żadnych odniesień do tej reguły, ale chcę dowiedzieć się więcej na jej temat. Jakie jest pochodzenie tej porady? Z jakiej osoby lub społeczności powstało? Dodatkowy …


1
Organizacja katalogów repozytorium CMake (C ++) zawierającego kilka projektów
Chciałbym uzyskać porady dotyczące organizacji zestawu powiązanych, ale niezależnych projektów C ++ przechowywanych w jednym repozytorium (git). Projekty wykorzystują CMake. Dla uproszczonego przykładu wyobrażamy sobie 2 projekty A i B, A w zależności od B. Większość osób rozwijających A otrzyma B poprzez system pakowania. W ten sposób skompilują tylko A. …

3
Czy drzewa binarne służą do określonego celu przechowywania danych hierarchicznych? Jakie jest ich kanoniczne zastosowanie?
Rozumiem strukturę drzew binarnych i sposób ich przechodzenia. Jednak mam problemy z realizacją ich rzeczywistych zastosowań, celów w programach i programowaniu. Kiedy myślę o przykładach danych hierarchicznych z „prawdziwego życia”, prawie na pewno mają więcej niż 2 dzieci. Na przykład w drzewie genealogicznym matka często może mieć więcej niż dwoje …

2
UnsupportedOperationException w interfejsach środowiska kolekcji java
Przeglądając Framework kolekcji Java, zauważyłem, że sporo interfejsów ma komentarz (optional operation). Te metody pozwalają na implementację klas, UnsupportedOperationExceptionjeśli nie chcą po prostu implementować tej metody. Przykładem tego jest addAllmetoda w Set Interface. Teraz, jak stwierdzono w tej serii pytań, interfejsy są definiującą umową dotyczącą tego, czego może oczekiwać użycie. …



1
Migracja aplikacji Grails do Scala Play / Spray
Mamy aplikację internetową Grails średniej wielkości używającą GORM / Hibernate nad PostgreSQL i GSP obsługującymi HTML, a także kilka interfejsów API REST. Standaryzujemy się na Scali i chcielibyśmy migrować tę aplikację do Play lub Spray, a Slick uzyska dostęp do istniejącej bazy danych. Nimble jest obecnie używany do uwierzytelniania / …

3
Konkurs testów jednostkowych
Moi pracodawcy prowadzą comiesięczny konkurs na dzień testów jednostkowych. Cały dzień poświęcony jest na pisanie testów jednostkowych - oczywiście przeprowadzamy więcej testów w ciągu miesiąca, ale to jest cały dzień - a „zwycięzca” konkursu otrzymuje nagrodę. Trudno jednak ustalić, kto jest zwycięzcą. Przypisywaliśmy punkty za każdy przypadek testowy. Więc jeśli …


2
Dlaczego „zip” ignoruje zwisający ogon kolekcji?
C # , Scala, Haskell, Lisp i Pythonzip zachowują się tak samo : jeśli jedna kolekcja jest dłuższa, ogon jest cicho ignorowany. Może to być również wyjątek, ale nie słyszałem o żadnym języku używającym takiego podejścia. To mnie zastanawia. Czy ktoś wie, dlaczego zipjest tak zaprojektowany? Sądzę, że w przypadku …

4
Określanie wymagań dotyczących kodowania nazw plików
Jestem w trakcie pisania specyfikacji wymagań i mam dylemat w sformułowaniu fragmentu wymagań. Scenariusz: pobieramy pliki ze strony internetowej, a pobrane pliki należy dołączyć do elementu w posiadanym przez nas narzędziu CM. Pobrane pliki zawierają nazwy, które mogą być ASCII, ISO-8859-1, japoński itp. Czy w sformułowaniu poniżej „nie-ASCII” obejmuje wszystkie …



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.