Inżynieria oprogramowania

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

10
Czy można polegać na wyjątkowości losowych ints?
Wdrażam protokół sieciowy i wymagam, aby pakiety miały unikalne identyfikatory. Do tej pory właśnie generowałem losowe 32-bitowe liczby całkowite i zakładając, że jest astronomicznie mało prawdopodobne, że dojdzie do kolizji w trakcie trwania programu / połączenia. Czy jest to ogólnie uważane za dopuszczalną praktykę w kodzie produkcyjnym, czy też należy …


5
Jak uniknąć typowych „dynamicznych błędów językowych”?
Niedawno przelałem kilka godzin na JavaScript, ponieważ chciałem skorzystać z ogromnej bazy użytkowników. W ten sposób zauważyłem wzór, który większość ludzi przypisuje dynamicznym językom. Sprawia, że ​​wszystko działa naprawdę szybko, ale gdy kod osiągnie określony rozmiar, tracisz dużo czasu na błędy związane z pisaniem, pisownią i refaktoryzacją. Błędy, które normalnie …

8
Czy powinienem rzucić wyjątek w przypadku znaczącej wartości spoza zakresu, czy sam go obsłużyć?
Napisałem strukturę, która reprezentuje współrzędne szerokości i długości geograficznej. Ich wartości wynoszą od -180 do 180 dla długości i 90 do -90 dla szerokości. Jeśli użytkownik tej struktury podaje mi wartość spoza tego zakresu, mam 2 opcje: Rzuć wyjątek (argument poza zakresem) Konwertuj wartość na ograniczenie Ponieważ współrzędne -185 ma …

5
Czysta architektura: czy skrzynka zawiera prezentera lub zwraca dane?
Clean Architektura sugeruje niech przypadek użycia interaktora nazwać rzeczywistą realizację prezenter (który jest wtryskiwany w następstwie DIP), aby obsłużyć odpowiedzi / wyświetlacz. Widzę jednak osoby wdrażające tę architekturę, zwracające dane wyjściowe z interactor, a następnie pozwól kontrolerowi (w warstwie adaptera) zdecydować, jak sobie z tym poradzić. Czy drugie rozwiązanie wycieka …

2
Czy wydajność jest jedynym powodem, dla którego nie należy używać SignalR (gniazd sieciowych) zamiast tradycyjnego interfejsu API REST?
Użyłem SignalRdo osiągnięcia funkcjonalności wiadomości w czasie rzeczywistym, w kilku z moich projektów. Wydaje się, że działa niezawodnie i jest bardzo łatwy do nauczenia się obsługi. Pokusa, przynajmniej dla mnie, to rezygnacja z rozwijania usługi Web API i używanie jej SignalRdo wszystkiego. Wydaje mi się, że można to osiągnąć dzięki …

6
Czy tłumacz ustny wytwarza kod maszynowy?
Intensywnie studiuję tematy kompilatorów i tłumaczy. Chcę sprawdzić, czy moje podstawowe zrozumienie jest prawidłowe, więc załóżmy, że: Mam język o nazwie „Foobish”, a jego słowami kluczowymi są <OUTPUT> 'TEXT', <Number_of_Repeats>; Więc jeśli chcę drukować na konsoli 10 razy, napiszę OUTPUT 'Hello World', 10; Witaj plik World.foobish. Teraz piszę tłumacza w …

8
Rozpoczynanie zdania nazwą funkcji? [Zamknięte]
Czasami podczas pisania czegoś, co odnosi się do języka programowania, w którym rozróżniana jest wielkość liter, kończę zdanie nazwą funkcji. Teraz zasady języka angielskiego mówią, że pierwsze słowo w zdaniu musi być pisane wielką literą; nazwa funkcji jest mała. Jeśli zastanawiasz się, co mógłbym powiedzieć, że pierwszym słowem będzie nazwa …
42 functions 


3
Czy istnieją liczby, które nie są reprezentowalne w bazie 10, ale mogą być reprezentowane w bazie 2?
C#ma decimaltyp używany dla liczb, które wymagają dokładnej reprezentacji w bazie 10. Na przykład, 0.1nie może być reprezentowany w bazie 2 (np. floati double) i zawsze będzie przybliżeniem, gdy jest przechowywany w zmiennych tego typu. Zastanawiałem się, czy odwrócony fakt był również możliwy. Czy istnieją liczby, które nie są reprezentowalne …

9
Programowanie do przyszłego wykorzystania interfejsów
Obok mnie siedzi kolega, który zaprojektował taki interfejs: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Problem polega na tym, że obecnie nie używamy tego parametru „end” nigdzie w naszym kodzie, po prostu istnieje, ponieważ w przyszłości będziemy musieli go użyć. Próbujemy …

6
Jaka jest rola wiodącego programisty w zwinnym zespole?
W nieagresywnym zespole programistycznym główny programista ogólnie : Ustawia standard (kodowanie i inne) Zespół bada nowe technologie Ustawia kierunek techniczny dla zespołu Ma ostatnie słowo w sprawach Projektuje architekturę systemu Jednak zwinny zespół działa inaczej: Zwinny zespół będzie polegał na nowatorskim designie, a nie z góry Zwinny zespół projektuje razem, …

2
Synchronizacja danych w aplikacjach mobilnych - wiele urządzeń, wielu użytkowników
Chcę zbudować swoją pierwszą aplikację mobilną. Jedną z podstawowych funkcji aplikacji jest to, że wiele urządzeń / użytkowników będzie miało dostęp do tych samych danych - a wszystkie z nich będą miały prawa CRUD. Uważam, że architektura powinna obejmować centralny serwer, na którym przechowywane są wszystkie dane. Urządzenia będą używać …
42 database  mysql  data  mobile 

7
Jak przestać projektować i zacząć projektować ten projekt zgodnie z sugestią mojego kierownika? [Zamknięte]
Jestem młodszym programistą (ok. 3 lata) i przy mojej pracy opracowujemy nowy system. Mój główny programista będzie głównym architektem, jednak rzucił mi wyzwanie, abym sam spróbował zaprojektować system (równolegle). W trakcie kilku iteracji pomysłów na burzę mózgów i proponowania tego, co widziałem jako sugestie dotyczące architektury, mój trop dał mi …

7
Ile czasu mogę poświęcić na naukę w pracy? [Zamknięte]
Od około 2 lat pracuję jako programista. Wydaje się oczywiste, że w dziedzinie tak szybko rozwijającej się, jak tworzenie oprogramowania, musisz poświęcić czas na naukę nowych technologii, ram itp. Zawsze myślałem, że mogę przyjąć za pewnik, że jeśli muszę się czegoś nauczyć, aby rozwiązać problem w pracy, mogę poświęcić godziny …

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.