Ogólny projekt i opis systemu oprogramowania. Projekt architektoniczny przedstawia szczegóły implementacji, algorytmów i reprezentacji danych, aby skoncentrować się na interakcji komponentów „czarnej skrzynki”.
Rozważ dwie klasy Dogi Catobie zgodne z Animalprotokołem (pod względem języka programowania Swift. Byłby to interfejs w Javie / C #). Mamy ekran wyświetlający mieszaną listę psów i kotów. Istnieje Interactorklasa, która obsługuje logikę za kulisami. Teraz chcemy przedstawić użytkownikowi powiadomienie o potwierdzeniu, gdy chce usunąć kota. Psy należy jednak …
Chciałbym stworzyć system, który obsługuje wiadomości alarmowe z różnych programów i może przetwarzać te alarmy do mniej wymagających klientów za pośrednictwem poczty elektronicznej. Wszystko to byłoby zawarte w jednej sieci wewnętrznej. Myślę, że chcę, aby podstawowa architektura wyglądała mniej więcej tak: Główny problem, który mam obecnie, to bit „modułu obsługi …
Mówi się, że główną zaletą architektury bezserwerowej jest to, że takie programy nie potrzebują dedykowanego serwera do ciągłego działania. Następnie są wywoływane na żądanie i zatrzymują się przy wychodzeniu z funkcji. Oznacza to, że program bezserwerowy będzie musiał się szybko uruchomić, aby był responsywny. Jak zatem radzi sobie z czasochłonnymi …
Jestem programistą-amatorem, a wszystkie moje dotychczasowe programy były na tyle proste, że można je udokumentować w kodzie. Podczas czytania kodu było jasne, co robię w takim przypadku (moim standardowym testem było przyjrzenie się kodowi 6 miesięcy później i zrozumienie wszystkiego przy pierwszym czytaniu - i mam krótki zakres pamięci). Mam …
Mam wiele usług internetowych, które tworzą aplikację internetową. Klienci mogą uzyskać dostęp do tych usług za pośrednictwem wywołań interfejsów API REST. Czy te usługi powinny być w stanie rozmawiać bezpośrednio ze sobą? Jeśli tak, czy nie doprowadziłoby to do ich połączenia, co jest sprzeczne z koncepcją mikrousług? Czy klient powinien …
Dostawcy nowych architektur komputerowych regularnie próbują wprowadzać nowe modele programowania, np. Ostatnio CUDA / OpenCL dla GPGPU, i zastępują C / POSIX jako interfejs sterowania równoległością platformy. (Poss & Koening, AM3: Ku sprzętowemu akceleratorowi Unix dla wielu rdzeni, 2015) Dlaczego projektanci architektury starają się projektować nowe modele programowania, aby wyprzeć …
Czytałem „ W MVC model powinien obsługiwać sprawdzanie poprawności? ”, Ponieważ byłem ciekawy, gdzie powinna znaleźć się logika sprawdzania poprawności w witrynie MVC. Jeden wiersz w górnej odpowiedzi brzmi następująco: „kontrolery powinny obsługiwać sprawdzanie poprawności, modele powinny obsługiwać weryfikację”. Podobało mi się to, ale zastanawiałem się, dlaczego nie sprawdzalibyśmy danych …
Myślę, że można bezpiecznie powiedzieć, że większość aplikacji internetowych opiera się na paradygmacie żądanie / odpowiedź. PHP nigdy nie miało formalnej abstrakcji tych obiektów. Jedna grupa próbuje to zmienić: https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md W pewnym sensie udało im się jednak śledzić kwestię niezmienności. Z jednej strony obiekt zapytania / odpowiedzi zazwyczaj wymaga bardzo …
Główny problem Widząc dobre wsparcie większość nowoczesnych platform programowania ma do zarządzania pakietami (myślę gem, npm, pipitp), to ma sens, aby zaprojektować aplikację lub system składający się z wewnętrznie opracowanych pakietów, tak aby promować i tworzyć luźno architekturę? Przykład Przykładem może być tworzenie pakietów dostępu do bazy danych, a także …
Jeśli dwa zespoły Scrumowe korzystają z tego samego komponentu oprogramowania, kto jest odpowiedzialny za zapewnienie jasnej wizji architektury tego komponentu oraz utrzymanie / rozwijanie tej wizji w miarę ewolucji bazy kodu? W Scrumie powinieneś mieć zbiorowe prawa własności do kodu, więc jak upewnić się, że rozwój wykonywany przez Zespół A …
Pracuję nad systemem, który pozwala administratorom definiować formularze zawierające pola. Zdefiniowane formularze są następnie wykorzystywane do wprowadzania danych do systemu. Czasami Formularze są wypełniane przez człowieka za pomocą GUI, czasami Formularz jest wypełniany na podstawie wartości zgłoszonych przez inny system. Dla każdego pola administrator może zdefiniować regułę walidacji, która ogranicza …
Nie mogę wymyślić dobrej architektury dla mojej gry karcianej. Potrzebuję pomocy, aby zrozumieć, w jaki sposób gry są zazwyczaj projektowane. Najpierw opiszę zasady gry. Zasady gry Ustawiać Jest czterech graczy, każdy z nich tworzy drużynę. Każdy gracz otrzymuje 12 przetasowanych kart Na stole znajdują się 4 zaślepione karty (rzeka) Kolejność …
Wprowadzając zmiany w dużych systemach, często mam problem z tym, że jakiś element funkcjonalności musi uzyskać dane z innego elementu, ale znajdują się one w różnych częściach głębokiego i rozgałęzionego drzewa połączeń, prawdopodobnie przepływającego przez detektory zdarzeń, odroczone połączenia, itp. W ten sposób prosta zmiana może szybko się zmienić. Powiązany …
Mam problem ze znalezieniem właściwego rozwiązania następującego problemu dotyczącego architektury. W naszym ustawieniu (naszkicowanym poniżej) mamy 2 źródła danych, gdzie źródło danych A jest podstawowym źródłem dla elementów typu Foo. Istnieje dodatkowe źródło danych, które można wykorzystać do uzyskania dodatkowych informacji na temat Foo; jednak ta informacja nie zawsze istnieje. …
Obecnie wybieram między dwoma realnymi projektami / rozwiązaniami oprogramowania. Rozwiązanie 1 jest łatwe do wdrożenia, ale zablokuje niektóre dane w zastrzeżonym formacie i trudno będzie je później zmienić. Rozwiązanie 2 jest trudne do wdrożenia, ale później będzie o wiele łatwiejsze do zmiany. Czy powinienem zdecydować się na YAGNI, czy powinienem …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.