Inżynieria oprogramowania

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

9
'<' versus '! =' jako warunek w pętli „for”?
Załóżmy, że masz następującą forpętlę *: for (int i = 0; i &lt; 10; ++i) { // ... } który zwykle można również zapisać jako: for (int i = 0; i != 10; ++i) { // ... } Końcowe wyniki są takie same, więc czy są jakieś rzeczywiste argumenty przemawiające …
31 syntax 



6
Kiedy należy aktualizować zależności?
Mieliśmy dwa główne kryzysy związane z zależnościami z dwiema różnymi bazami kodu (Android i aplikacja internetowa Node.js). Repozytorium Androida wymagało migracji z Flurry do Firebase, co wymagało aktualizacji biblioteki usług Google Play czterech głównych wersji. Podobnie stało się z naszą aplikacją Node hostowaną przez Heroku, w której nasz stos produkcyjny …

6
Tysiące błędów!
Niedawno zostałem przydzielony do nowego projektu. Właściwie stary projekt napisany w klasycznej ASP. Teraz nowa wersja aplikacji jest pisana w najnowszej wersji ASP.NET, ale nie należy się spodziewać, że będzie to RTM za jakiś czas (przewidywana data premiery to styczeń 2017 r.), Więc muszę przeprowadzić konserwację starej aplikacji, dopóki nie …

7
Czy ustawianie flagi w pętli w celu użycia jej później jest zapachem kodu?
Mam fragment kodu, w którym iteruję mapę, dopóki jakiś warunek nie jest spełniony, a następnie użyję tego warunku, aby zrobić więcej rzeczy. Przykład: Map&lt;BigInteger, List&lt;String&gt;&gt; map = handler.getMap(); if(map != null &amp;&amp; !map.isEmpty()) { for (Map.Entry&lt;BigInteger, List&lt;String&gt;&gt; entry : map.entrySet()) { fillUpList(); if(list.size() &gt; limit) { limitFlag = true; break; …


8
Czy to ograniczenie rozwoju opartego na testach (i ogólnie Agile) jest praktycznie istotne?
W Test Driven Development (TDD) zaczynasz od rozwiązania nieoptymalnego, a następnie iteracyjnie produkujesz lepsze, dodając przypadki testowe i refaktoryzując. Kroki mają być małe, co oznacza, że ​​każde nowe rozwiązanie będzie w jakiś sposób znajdować się w sąsiedztwie poprzedniego. Przypomina to matematyczne lokalne metody optymalizacji, takie jak opadanie gradientu lub wyszukiwanie …

2
Jakie jest pochodzenie Preprocesora C?
Preprocesor C jest dołączony do C, ale ma zupełnie inną składnię niż język główny: znaczące spoczynkowo białe znaki (koniec linii kończy instrukcję, przerwa po tym, jak makro określa początek listy zastępczej) bloki oparte na słowach kluczowych zamiast wzmocnionych bloków elifzamiastelse if definicje oparte na słowach kluczowych zamiast deklaracji odzwierciedla użycie, …
30 c  history  macros 


5
Jaki jest skuteczny sposób rejestrowania uzasadnienia decyzji dotyczących projektu produktu?
W naszej firmie nie korzystamy z żadnych dokumentów projektowych produktu. Mamy łącznie trzech pracowników, więc wszystkie dyskusje na temat projektu produktu odbywają się osobiście lub w serwisie Slack. (Jesteśmy również na podstawowym pakiecie Slack, który pozwala tylko przeglądać najnowsze wiadomości.) Nasz produkt jest wciąż na wczesnym etapie i często ponownie …


9
Projektowanie klasy tak, aby przyjmowała całe klasy jako parametry, a nie poszczególne właściwości
Załóżmy na przykład, że masz aplikację o powszechnie udostępnianej klasie o nazwie User. Ta klasa ujawnia wszystkie informacje o użytkowniku, jego identyfikatorze, nazwie, poziomach dostępu do każdego modułu, strefie czasowej itp. Dane użytkownika są oczywiście szeroko przywoływane w całym systemie, ale z jakiegokolwiek powodu system jest skonfigurowany tak, aby zamiast …
30 java  c#  design  solid 


3
JSON Web Token - dlaczego ładunek jest publiczny?
Nie rozumiem powodu, dla którego oświadczenia / ładunek JWT są publicznie widoczne po odkodowaniu go przez base64. Czemu? Wydaje się, że znacznie bardziej przydatne byłoby zaszyfrowanie go sekretem. Czy ktoś może wyjaśnić, dlaczego lub w jakiej sytuacji upublicznienie tych danych jest przydatne?

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.