Inżynieria oprogramowania

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

2
Czysta architektura: co to jest model widoku?
W swojej książce „Czysta architektura” wujek Bob mówi, że prezenter powinien umieścić otrzymane dane w czymś, co nazywa „modelem widoku”. Czy to to samo, co „ViewModel” z wzorca projektowego Model-View-ViewModel (MVVM), czy jest to prosty obiekt do przesyłania danych (DTO)? Jeśli to nie prosta DTO, jak to się odnosi do …

1
Przeszukiwanie danych w kilku mikrousługach
Mam dane dla pewnej domeny rozproszonej między mikrousługą a starszą bazą danych. Mam wyszukiwanie, które obejmuje pola zarówno w starszej, jak i mikrousługowej bazie danych. Poprzednio (przed podziałem mikrousług) było to wykonywane przy użyciu 1 zapytania SQL. Teraz potrzebuję wywołania REST i zapytania do starszej bazy danych, aby obsłużyć tę …

2
Dlaczego glibc jest obsługiwany oddzielnie od GCC?
GCC jest kompilatorem C. Glibc jest biblioteką C. Czy jednak nie jest to absolutnie konieczne dla kompilatora i standardowej biblioteki spakowanej razem jako implementacja języka C? Na przykład, biblioteki C zawiera kompilator ABI i specyficzny materiał podobny <limits.h>, <stdint.h>itd, które różnią się między kompilatory API. A szczegóły, takie jak „jak …
13 c  gcc 

1
Jaką procedurę stosuje się podczas pisania leksykonu opartego na gramatyce?
Podczas czytania odpowiedzi na pytanie Wyjaśnienie dotyczące gramatyk, leksyk i parserów odpowiedź brzmiała: [...] gramatyka BNF zawiera wszystkie reguły potrzebne do analizy leksykalnej i analizy. Wydawało mi się to nieco dziwne, ponieważ do tej pory zawsze myślałem, że leksyk nie jest w ogóle oparty na gramatyce, podczas gdy parser był …

4
Czy są zalety kodowania wartości danych w programie na stałe?
Jestem samoukiem, początkującym programistą, więc przepraszam, jeśli nie przybijam żargonu programisty. Pracuję nad projektem, w którym dostarczam dane, które będą stale aktualizowane, dla programistów, którzy zasadniczo utworzą narzędzie do generowania raportów z zapytań dotyczących danych. Wygląda na to, że wszyscy zaangażowani uważają, że muszą zakodować wartości danych (nie schemat, ale …

1
Dlaczego poleca się kolbę CLI zamiast Flask.run?
W Flask 0.11 wprowadzono flaskCLI. Zarówno dokumentacja, jak i dziennik zmian są zalecane. Dokumentacja serwera deweloperskiego : Począwszy od wersji Flask 0.11 istnieje wiele wbudowanych sposobów uruchamiania serwera programistycznego. Najlepszym z nich jest narzędzie wiersza polecenia flask , ale można również kontynuować korzystanie z tej Flask.run()metody. Wiersz poleceń Kolba skrypt …
13 python  flask 

3
Licencjonowanie na Github
Przesyłam na GitHub po raz pierwszy i mam wątpliwości co do licencjonowania. Nie wiedziałem, że ten temat został odkryty w sieci! Ale nawet to skomplikowane, moja sytuacja jest tak typowa, że ​​chyba większość osób korzystających z Github już o tym wie. Chcę tylko publicznie przesłać aplikację odwołującą się do bibliotek …
13 licensing  gpl  github 

6
„Napisz asembler w C.” Po co pisać tłumacz maszynowy dla języka niskiego poziomu w języku wyższego poziomu?
Mój instruktor klasy Mikroprocesor dał nam zadanie i powiedział: „Napisz asembler w C.” - Mój umiłowany profesorze Wydawało mi się to trochę nielogiczne. Jeśli się nie mylę, asembler to pierwszy krok od Kodu Maszynowego do podróży po językach wyższego poziomu. Mam na myśli, że C jest językiem wyższego poziomu niż …


3
Jaki powinien być zakres sprawdzania poprawności systemu, który wdraża aplikację internetową?
Dzisiaj miałem zadanie „napisać test kondycji” dla długo działającej usługi, która jest systemem koordynacyjnym do wdrażania aplikacji internetowej. Próbuję ustalić, jaki byłby zakres takiej kontroli zdrowia, i wymyśliłem następujące pytania związane z zakresem kontroli zdrowia: Czy wystarczy uznać usługę za zdrową, jeśli system koordynacji zgłasza, że ​​zadanie jest uruchomione? A …

1
Czy nadużywamy metod statycznych?
Kilka miesięcy temu zacząłem pracować nad nowym projektem, a kiedy przejrzałem kod, uderzyło mnie ilość użytych metod statycznych. collectionToCsvString(Collection<E> elements)Przechowuje się w nich nie tylko metody użytkowe , ale także mnóstwo logiki biznesowej. Kiedy zapytałem faceta odpowiedzialnego za uzasadnienie tego, powiedział, że to sposób na ucieczkę od tyranii Springa . …


2
Dlaczego behawioralne podtypowanie jest nierozstrzygalne?
Prace Liskova w tym obszarze koncentrowały się na podtypach behawioralnych, które oprócz bezpieczeństwa systemu typów omawianego w tym artykule wymagają również, aby podtypy zachowywały wszystkie niezmienniki gwarantowane przez nadtypy w niektórych kontraktach [3]. Ta definicja podtypu jest na ogół nierozstrzygalna, więc nie może być zweryfikowana przez moduł sprawdzania typu. Od: …

3
Jawne DAG zamiast Vector Clocks do synchronizacji
Zacząłem przyglądać się podejściom do synchronizacji danych między zestawami peerów. Uczestnicy muszą być w stanie pracować w sposób odłączony, a następnie synchronizować się ze sobą, aby scalić swoje lokalne zmiany. Uczestnicy powinni mieć możliwość scalania lokalnych aktualizacji za pomocą „scalania trójstronnego” . Tak więc podczas synchronizacji rówieśnicy powinni wiedzieć, które …


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.