Piszę grę w Typescript i postanowiłem, że spróbuję zastosować się do idei „ programowania opartego na interfejsie ”, w którym piszesz kod oparty na interfejsie zamiast implementacji obiektu. Napisałem sporo interfejsów i klas, które je implementują, a następnie cofnąłem się i zdałem sobie sprawę, że klasy były na tyle proste, …
Mam problem ze zdefiniowaniem tego wzorca danych, na który natrafiłem podczas pracy nad kilkoma aplikacjami. Składa się ona z: Typ obiektu, który składa się z wielu samych obiektów Drugi typ obiektu, w którym każda instancja „ma wiele” pierwszego obiektu I każdy z podobiektów pierwszego obiektu można modyfikować według każdego powiązania …
W moim kodzie jest około siedmiu miejsc, w których zgłaszam wyjątek. Wszystkie te wyjątki są traktowane tak samo: wydrukuj błąd do pliku dziennika, przywróć domyślny stan oprogramowania i zakończ. Podczas przeglądu kodu mój starszy inżynier, którego bardzo cenię, powiedział, że powinienem podklasować wszystkie te wyjątki. Jego argumentem jest to, że …
Niedawno dokonałem poważnych zmian w moim kodzie. Jedną z głównych rzeczy, które próbowałem zrobić, było podzielenie moich klas na obiekty danych i obiekty robocze. Zostało to zainspirowane między innymi przez tę sekcję Clean Code : Hybrydy To zamieszanie czasami prowadzi do niefortunnych hybrydowych struktur danych, które są w połowie obiektowymi …
Czytam ostatnio Clean Code i różne artykuły online o SOLID, a im więcej o tym czytam, tym bardziej czuję, że nic nie wiem. Załóżmy, że buduję aplikację internetową przy użyciu ASP.NET MVC 3. Powiedzmy, że mam UsersControllertaką Createakcję: public class UsersController : Controller { public ActionResult Create(CreateUserViewModel viewModel) { } …
W książce C ++ autor mówi, że nie potrzebujemy już funkcji z długą listą parametrów, ponieważ większość parametrów można przekształcić w zmienne stanu w klasie. Z drugiej strony, funkcjonalny podręcznik programowania mówi, że zmienne stanu są złe, ponieważ powodują skutki uboczne, które powodują podatność na błędy i trudność do zrównoleglenia …
Mam klasę obliczającą roczny dochód netto pracowników. Ma stałą reprezentującą procent podatku. Ale pewnego dnia stawka podatku się zmieniła, więc muszę naprawić kod. Czy czynność ustalenia tej stałej wskazuje na naruszenie zasady otwartego-zamkniętego , ponieważ postuluje, że klasa powinna być zamknięta na modyfikacje?
Mam aplikację, która przyjmuje liczbę całkowitą jako dane wejściowe i na podstawie wejściowych wywołań metod statycznych różnych klas. Za każdym razem, gdy dodawany jest nowy numer, musimy dodać kolejny przypadek i wywołać inną metodę statyczną innej klasy. W przełączniku jest teraz 50 skrzynek i za każdym razem, gdy muszę dodać …
(Widziałem to pytanie , ale pierwsza odpowiedź dotyczy bardziej właściwości automatycznych niż projektowania, a druga mówi, że ukryj kod przechowywania danych przed konsumentem , czego nie jestem pewien, czy tego chcę / mój kod robi, więc chciałbym usłyszeć inną opinię) Mam dwóch bardzo podobnych podmiotów, HolidayDiscountoraz RentalDiscount, że stanowią rabaty …
Mam problemy z tym, co uważam za zbyt abstrakcyjne w bazie kodu (a przynajmniej radzenie sobie z tym). Większość metod w bazie kodu została wyodrębniona w celu przyjęcia najwyższego rodzica A w bazie kodu, ale dziecko B tego rodzica ma nowy atrybut, który wpływa na logikę niektórych z tych metod. …
Moja firma przepisuje naszą aplikację internetową od zera. Jest to aplikacja dla dużych przedsiębiorstw ze złożoną domeną w branży finansowej. Używamy ORM (Entity Framework) do utrwalania. Zasadniczo połowa naszych aplikacji skupia się na gromadzeniu nieprzetworzonych danych od użytkownika, przechowywaniu ich, a następnie druga połowa aplikacji, która zawiera większość naszej rzeczywistej …
Przeczytałem tę odpowiedź: https://softwareengineering.stackexchange.com/a/234254/173318 proszę o poprawienie mojego zrozumienia. Reguły biznesowe odnoszą się do listy etapów biznesowych w świecie rzeczywistym (bez kodów). Logika biznesowa odnosi się do procesu przekształcania reguł biznesowych w kody i tych grup / rodzajów kodów adresowanych jako „Logika biznesowa”. Do czego służy warstwa usługi? jeśli przeczytam …
Zastanawiałem się, co sprawia, że Iterator jest wyjątkowy w porównaniu z innymi podobnymi konstrukcjami, i że Gang of Four wymienia go jako wzorzec projektowy. Iterator opiera się na polimorfizmie (hierarchii zbiorów ze wspólnym interfejsem) i oddzieleniu obaw (iteracja zbiorów powinna być niezależna od struktury danych). Ale co, jeśli zastąpimy hierarchię …
Po około miesiącu czytania i poszukiwania DDD postanowiłem rozpocząć własny projekt i stworzyłem DDD z tymi ograniczonymi kontekstami> Klienci Produkty Zamówienia Dane do faktury Każdy ograniczony kontekst ma spoczynkowy interfejs API jako warstwę prezentacji, warstwę domeny, warstwę trwałą. Jak na razie kod działa płynnie, ale pochodząc ze świata monolitycznego, wciąż …
Istnieją trzy powszechne sposoby AFAIK na wdrożenie wielokrotnego użytku, jeśli chodzi o OOP Dziedziczenie: zwykle w celu przedstawienia związku jest (kaczka jest ptakiem) Skład: zwykle reprezentuje relację „ma związek” (samochód ma silnik) Cechy (np. Słowo kluczowe cecha w PHP): ... naprawdę nie jestem tego pewien Chociaż wydaje mi się, że …
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.