Inżynieria oprogramowania

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



6
Jak przetestować system, w którym trudno wyśmiewać obiekty?
Pracuję z następującym systemem: Network Data Feed -> Third Party Nio Library -> My Objects via adapter pattern Niedawno mieliśmy problem polegający na tym, że zaktualizowałem używaną przeze mnie bibliotekę, co spowodowało między innymi zmianę znaczników czasu (zwracanych przez bibliotekę zewnętrzną long) z milisekund po epoce na nanosekundy po epoce. …

1
Nazwa funkcji, która zwraca argumenty?
Funkcja, która nic nie robi, nie przyjmuje argumentów i nic nie zwraca, jest tradycyjnie nazywana a nooplub no-op. Przykład noop znajduje się poniżej: function noop(){} http://en.wikipedia.org/wiki/NOP Czy istnieje więc nazwa funkcji, która ma jedynie zwracać argumenty i nie robić nic innego? Przykład tego rodzaju funkcji: function(a){return a}
34 functions 

6
Jaki jest sens implementowania stosu przy użyciu dwóch kolejek?
Mam następujące pytanie o pracę domową: Zaimplementuj metody stosu push (x) i pop () przy użyciu dwóch kolejek. Wydaje mi się to dziwne, ponieważ: Stos to kolejka (LIFO) Nie rozumiem, dlaczego potrzebujesz dwóch kolejek, aby go zaimplementować Szukałem w okolicy: GeeksForGeeks Przepełnienie stosu i znalazłem kilka rozwiązań. Właśnie z tym …
34 java  stack 

8
Czy przesłanianie Object.finalize () jest naprawdę złe?
Dwa główne argumenty przeciwko zastąpieniu Object.finalize()są następujące: Nie możesz zdecydować, kiedy to się nazywa. Może w ogóle nie zostać wywołany. Jeśli dobrze to rozumiem, nie sądzę, aby były to wystarczające powody, by Object.finalize()tak bardzo nienawidzić . Od implementacji maszyny wirtualnej i GC zależy, kiedy właściwy czas na zwolnienie obiektu, a …


7
Dlaczego większość języków głównego nurtu nie obsługuje składni „x <y <z” dla 3-kierunkowych porównań boolowskich?
Gdybym chciał porównać dwie liczby (lub inne dobrze uporządkowane byty), zrobiłbym to z x &lt; y. Jeśli chcę porównać trzy z nich, licealistka z algebry zasugeruje spróbowanie x &lt; y &lt; z. Programista we mnie odpowie wtedy „nie, to nieważne, musisz to zrobić x &lt; y &amp;&amp; y &lt; z”. …

3
Utrzymywanie synchronizacji repozytoriów git na różnych hostach
Zastanawiam się nad uruchomieniem małego projektu i chcę, aby jego wersjonowanie odbywało się za pomocą git. Bitbucket wydaje mi się dobrą opcją z ich darmowym planem. Chcę go używać jako głównego narzędzia do pracy z git, ponieważ mają ładne narzędzia, takie jak interfejs WWW, klient Mac OS i tak dalej. …
34 git 

6
Dlaczego niektóre funkcjonalne języki programowania wykorzystują przestrzeń dla aplikacji funkcji?
Po zapoznaniu się z niektórymi językami programowania funkcjonalnego zawsze zastanawiałem się, dlaczego niektóre języki fp używają jednego lub więcej białych znaków do zastosowania funkcji (i definicji), podczas gdy większość (wszystkie?) Języków imperatywnych / obiektowych używa nawiasów, co wydaje się być bardziej matematycznym sposobem. Myślę też, że ten drugi styl jest …

6
Do czego konkretnie odnosi się moc ekspresji?
Moc ekspresyjna jest definiowana przez Wikipedię jako: .. szerokość pomysłów, które można przedstawić i przekazać w tym języku. Czy „pomysły” odnoszą się do rzeczy (operacji, struktur, algorytmów itp.), Które możemy komunikować z maszyną ? Czy też odnosi się do „ludzkich” pojęć, które można uchwycić i komunikować z językiem innym ludziom? …


7
Czy interfejsy API RESTful mają tendencję do zachęcania do anemicznych modeli domen?
Pracuję nad projektem, w którym staramy się zastosować zarówno projektowanie oparte na domenie, jak i REST do architektury zorientowanej na usługi. Nie martwimy się o 100% zgodność z REST; prawdopodobnie lepiej byłoby powiedzieć, że próbujemy budować API HTTP zorientowane na zasoby (~ Poziom 2 modelu dojrzałości REST Richardsona). Niemniej jednak …


1
Co to jest programowanie tabelaryczne?
Język programowania Falcon reklamuje się jako programowanie tabelaryczne: Falcon zapewnia sześć zintegrowanych paradygmatów programowania: proceduralny, obiektowy, prototypowy, funkcjonalny, tabelaryczny i zorientowany na komunikaty. I nie musicie opanować ich wszystkich; musisz tylko wybrać preferowane składniki i pozwolić kodowi podążać za twoją inspiracją. Dokumentacja rozszerza się trochę o tym, jak smak języku …
34 paradigms 

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.