Inżynieria oprogramowania

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



4
Czy dobrym pomysłem jest połączenie wielu żądań HTTP w celu zaoszczędzenia przepustowości?
Przygotowuję jednostronicową aplikację, która czasami byłaby używana przy wolnym połączeniu mobilnym. Część z nich jest dość ciężka pod względem żądań API (pobieranie dziesięciu różnych zasobów na nowy ekran). Czy warto połączyć te usługi z usługą, która zapewnia wszystkie wymagane dane, ale nie jest tak „czysta” pod względem zasad REST? Czy …
16 api  rest  http 

4
Czy korzystanie z AggressiveInlining w przypadku prostych właściwości jest wadą?
Założę się, że mógłbym sam na to odpowiedzieć, gdybym wiedział więcej o narzędziach do analizy zachowania C # / JIT, ale ponieważ nie, proszę o wyrozumiałość. Mam prosty kod taki jak ten: private SqlMetaData[] meta; [MethodImpl(MethodImplOptions.AggressiveInlining)] private SqlMetaData[] Meta { get { return this.meta; } } Jak widać, umieściłem AggressiveInlining, …


8
Modele mentalne lub rzeczywiste metafory programowania funkcjonalnego
Czy ktoś ma dobry model mentalny lub metaforę programowania funkcjonalnego, która odwołuje się do czegoś w prawdziwym świecie? Intuicyjne programowanie obiektowe ma dla mnie sens. Są rzeczy, które mają właściwości, a czasem mogą także wykonywać różne czynności lub wykonywać obliczenia dotyczące ich właściwości (metod). (Np .: samochód, kształt, kot). Noszę …

3
Zarabianie na oprogramowaniu, które nie jest złe [zamknięte]
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Mam do tej pory darmowy projekt open source z około 800 000 pobrań. …

6
Dlaczego umieszczamy funkcje członka prywatnego w nagłówkach?
Odpowiedź na pytanie, dlaczego umieszczamy prywatne zmienne składowe w nagłówkach C ++, jest taka, że ​​rozmiar klasy musi być znany w punktach, w których deklarowane są instancje, aby kompilator mógł wygenerować kod, który odpowiednio porusza się po stosie. Dlaczego musimy umieszczać prywatnych członków w nagłówkach? Ale czy istnieje jakikolwiek powód …
16 c++  history 

5
Algorytm spłaszczania nakładających się zakresów
Szukam dobrego sposobu spłaszczenia (podzielenia) listy potencjalnie nakładających się zakresów liczbowych. Problem jest bardzo podobny do pytania: Najszybszy sposób podziału nakładających się zakresów dat i wielu innych. Jednak zakresy to nie tylko liczby całkowite i szukam porządnego algorytmu, który można łatwo zaimplementować w Javascript lub Python itp. Przykładowe dane: Przykładowe …

2
Jak mogę zwiększyć uniwersalność konstrukcji?
„Konstrukcja uniwersalna” jest klasą opakowania dla obiektu sekwencyjnego, która umożliwia jego linearyzację (silny warunek spójności dla współbieżnych obiektów). Na przykład, tutaj jest dostosowana konstrukcja bez oczekiwania, w Javie, z [1], która zakłada istnienie kolejki bez oczekiwania, która spełnia interfejs WFQ(która wymaga tylko jednorazowej zgody między wątkami) i zakłada Sequentialinterfejs: public …

2
W jaki sposób cechy w Scali unikają „błędu diamentu”?
(Uwaga: Użyłem „błędu” zamiast „problemu” w tytule z oczywistych powodów…;)). Zrobiłem kilka podstawowych lektur na temat cech w Scali. Są one podobne do interfejsów w Javie lub C #, ale pozwalają na domyślną implementację metody. Zastanawiałem się: czy nie może to spowodować „problemu z diamentem” i dlatego wiele języków w …

2
Tworzysz funkcje zagnieżdżone z czysto estetycznych powodów?
Zawsze zastanawiałem się, co myślą inni programiści o idei tworzenia czystych funkcji estetycznych. Że mam funkcję, która przetwarza porcji danych: Function ProcessBigData. Muszę powiedzieć kilka etapów procesu, dotyczy tylko tych danych: Step1, Step2, Step3. Normalnym podejściem, które najbardziej widzę w kodzie źródłowym, jest pisanie komentarzy w następujący sposób: Function ProcessBigData: …

5
Jak uniknąć nadmiernego przeciążenia metody?
Mamy całkiem sporo miejsc w kodzie źródłowym naszej aplikacji, gdzie jedna klasa ma wiele metod o tych samych nazwach i różnych parametrach. Te metody zawsze mają wszystkie parametry metody „poprzedniej” plus jeszcze jedną. Jest to wynik długiej ewolucji (starszego kodu) i tego myślenia (wierzę): „ Istnieje metoda M, która wykonuje …

6
Z perspektywy TDD, czy jestem złym człowiekiem, jeśli przeprowadzam test na żywym punkcie końcowym zamiast na pozór?
Podążam religijnie za TDD. Moje projekty zazwyczaj mają 85% lub więcej pokrycia testowego, z sensownymi przypadkami testowymi. Dużo pracuję z HBase , a główny interfejs klienta, HTable, jest bardzo trudny do wyszydzenia. Pisanie moich testów jednostkowych zajmuje mi 3 lub 4 razy więcej niż pisanie testów, które używają aktywnego punktu …

3
Mylić z definicją „abstrakcji” w OOP
Próbuję zrozumieć definicję „abstrakcji” w OOP. Natknąłem się na kilka głównych definicji. Czy wszystkie są ważne? Czy któryś z nich się myli? Jestem zmieszany. (Ponownie napisałem definicję własnymi słowami). Definicja 1: Abstrakcja to koncepcja pobierania jakiegoś obiektu ze świata rzeczywistego i konwertowania go na warunki programowania. Takie jak tworzenie Humanklasę …

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.