Inżynieria oprogramowania

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

4
size_t lub int dla wymiarów, indeksu itp
W C ++ size_t(lub, bardziej poprawnie, T::size_typektóry jest „zwykle” size_t; tj. unsignedTyp) jest używany jako wartość zwracana dla size()argumentu argumentu operator[]itd. (Patrz std::vector, i in.) Z drugiej strony języki .NET używają int(i opcjonalnie long) do tego samego celu; w rzeczywistości języki zgodne z CLS nie są wymagane do obsługi typów …
15 c#  c++  array 

3
Udostępnianie obiektów DTO między mikrousługami
TL; DR - Czy można współdzielić bibliotekę POJO między usługami? Zasadniczo chcemy, aby dzielenie między usługami było ściśle ograniczone do żadnego, jeśli to możliwe. Odbyła się dyskusja, czy usługa udostępniająca dane powinna zapewniać bibliotekę klienta do użytku przez klientów. Klient-lib jest ogólnie opcjonalny dla klienta usługi i może korzystać z …

3
Czy Redux używa wzorca oczyszczonego obiektu Boga?
Podczas uczenia się o Redux, przyszedł mi do głowy wzorzec Bóg-obiekt (lub anty-wzór) - oba mają jeden duży obiekt zawierający wszystkie dane aplikacji i metody ich manipulowania. Ale Redux wprowadził pewne ograniczenia, takie jak uczynienie Object niezmiennym i zdarzeń czystymi funkcjami utrzymującymi ścisłą sygnaturę. Pojawiło się więc pytanie, czy Redux …
15 redux 

7
Wady używania zerowalnego klucza obcego zamiast tworzenia tabeli skrzyżowań
Powiedz, że mam następujący schemat ER: Teraz gdybym reprezentował związek użyciu klucza zagraniczną Schoolw Student, mogę mieć NULLwartości (ponieważ Student nie jest wymagane, aby należeć do School), na przykład: Tak więc poprawnym sposobem (w oparciu o to, co przeczytałem) jest utworzenie tabeli skrzyżowań w celu przedstawienia relacji, na przykład: W …

6
Autonomiczne mikrousługi, kolejki zdarzeń i wykrywanie usług
Ostatnio dużo czytałem o mikro-usługach i oto niektóre wnioski, które do tej pory wyciągnąłem (proszę, popraw mnie, jeśli się mylę w dowolnym momencie). Architektura mikrousług dobrze współgra z projektowaniem opartym na domenie. Zwykle jedno państwo członkowskie reprezentuje jeden ograniczony kontekst. Jeśli mikrousługa A wymaga funkcji znajdującej się w mikrousługie B …

1
Jak doszło do std :: vector <bool>?
Obecnie praktycznie wszyscy programiści C ++ zgadzają się, że std::vector&lt;bool&gt;to pomyłka, ponieważ nie jest to pojemnik, a jego przypadki użycia w dużej mierze pokrywają się z przypadkami tego std::bitset. Jak zagłosowano na standard? Czy wówczas było to kontrowersyjne? Jakie były główne argumenty potwierdzające?
15 c++  history  stl 



3
Dlaczego twórca Ruby wybrał koncepcję Symboli?
tl; dr: Czy istniałaby zależna od języka definicja symboli i powód, aby mieć je w innych językach? Dlaczego więc twórca języka Ruby zastosował tę koncepcję symbolsw języku? Pytam o to z perspektywy programisty nie-rubinowego. Nauczyłem się wielu innych języków i w żadnym z nich nie znalazłem potrzeby określania, czy mam …



3
Strategia rozgałęziania Git dla długo nieużywanego kodu
W naszym zespole, oprócz poszczególnych jednostek pracy (Historie), mamy dłuższe motywy pracy (Epopeje). Liczne historie stają się epickie. Tradycyjnie mieliśmy gałęzie funkcji dla każdej Opowieści i połączyliśmy je prosto do opanowania, gdy przejdą kontrolę jakości. Chcielibyśmy jednak zacząć powstrzymywać się od wydania ukończonych historii w Eposie, dopóki Epicka nie zostanie …


2
Czy należy wywodzić / dziedziczyć po std :: wyjatku?
Projektując moją pierwszą „poważną” bibliotekę C ++, zadaję sobie pytanie: Czy to dobry styl czerpać wyjątki std::exceptioni to jest potomstwo ?! Nawet po przeczytaniu Projektowanie klas wyjątków Jaka jest „duża liczba” wyjątków do wdrożenia w mojej bibliotece? Wciąż nie jestem pewien. Ponieważ, poza powszechną (ale może nie dobrą) praktyką, jako …
15 c++  exceptions 

8
Czy powinienem rejestrować błędy konstruktorów zgłaszających wyjątki?
Tworzyłem aplikację przez kilka miesięcy i zdałem sobie sprawę, że pojawił się wzorzec: logger.error(ERROR_MSG); throw new Exception(ERROR_MSG); Lub podczas łapania: try { // ...block that can throw something } catch (Exception e) { logger.error(ERROR_MSG, e); throw new MyException(ERROR_MSG, e); } Tak więc, ilekroć rzucałem lub łapałem wyjątek, rejestrowałem go. W …

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.