Powiedzmy, że mam trzy podobne zasoby: Grandparent (collection) -> Parent (collection) -> and Child (collection) Powyżej przedstawia relację między tymi zasobami w następujący sposób: Każdy dziadek może odwzorować jednego lub kilku rodziców. Każdy rodzic może przypisać jedno lub więcej dzieci. Chcę mieć możliwość obsługi wyszukiwania dla zasobu podrzędnego, ale z …
Z książki Code Complete pochodzi następujący cytat: „Postaw normalną przypadek po, ifa nie po else” Co oznacza, że należy wprowadzić wyjątki / odchylenia od standardowej ścieżki else. Ale Pragmatic Programmer uczy nas „wcześnie upaść” (s. 120). Jakiej zasady powinienem przestrzegać?
Scenariusz Obecnie jestem niezależny od projektu opieki zdrowotnej, którego głównym wymaganiem jest przechwytywanie danych o nieznanych atrybutach przy użyciu formularzy generowanych przez użytkowników przez dostawców usług medycznych. Drugim wymogiem jest, aby integralność danych była kluczowa i aby aplikacja była używana przez ponad 40 lat. Obecnie migrujemy dane klienta z ostatnich …
W moim rozumieniu partialsłowo kluczowe nie pozwala na podział klasy na kilka plików źródłowych. Czy jest jakiś inny powód do tego niż organizacja kodu? Widziałem to używane w generowanych klasach interfejsu użytkownika. Wydaje się, że to zły powód, aby utworzyć całe słowo kluczowe. Jeśli klasa jest wystarczająco duża, aby wymagać …
Wiem, że ten temat jest nieco kontrowersyjny i po Internecie płynie wiele różnych artykułów / opinii. Niestety większość z nich zakłada, że osoba nie wie, jaka jest różnica między NULL a pustym ciągiem. Opowiadają więc historie o zaskakujących wynikach z łączeniami / agregacjami i generalnie robią nieco bardziej zaawansowane lekcje …
„Klasa abstrakcyjna” i „interfejs” są podobnymi pojęciami, a interfejs jest bardziej abstrakcyjny z tych dwóch. Jednym z czynników różnicujących jest to, że klasy abstrakcyjne zapewniają w razie potrzeby implementacje metod dla klas pochodnych. Jednak w języku C # ten czynnik różnicujący został zmniejszony dzięki niedawnemu wprowadzeniu metod rozszerzenia, które umożliwiają …
Programuję od kilku lat i ogólnie jestem dobry, jeśli chodzi o rozwiązywanie problemów i tworzenie małych i średnich skryptów, jednak ogólnie nie jestem dobry w projektowaniu dużych programów w sposób obiektowy. Kilka pytań Ostatnio kolega z taką samą liczbą lat doświadczenia jak ja i ja pracowaliśmy nad problemem. Pracowałem nad …
Obejrzałem przemówienie Stuarta Sierra „ Thinking In Data ” i wziąłem z niego jeden z pomysłów jako zasadę projektowania w tej grze, którą tworzę. Różnica polega na tym, że pracuje w Clojure, a ja w JavaScript. Widzę kilka głównych różnic między naszymi językami w tym, że: Clojure to idiomatycznie funkcjonalne …
Podczas mojej pierwszej implementacji rozszerzającej środowisko kolekcji Java byłem zaskoczony, widząc, że interfejs kolekcji zawiera metody zadeklarowane jako opcjonalne. Oczekuje się, że implementator zgłosi UnsupportedOperationExceptions, jeśli nie jest obsługiwany. Od razu uderzyło mnie to jako kiepski wybór interfejsu API. Po przeczytaniu dużej części doskonałej książki Joshuy Blocha „Skuteczna Java”, a …
Więc nie wiem, czy to dobry, czy zły projekt kodu, więc pomyślałem, że lepiej zapytam. Często tworzę metody, które przetwarzają dane z wykorzystaniem klas i często przeprowadzam wiele kontroli metod, aby upewnić się, że nie otrzymam pustych referencji lub innych błędów. Dla bardzo podstawowego przykładu: // fields and properties private …
Niedawno zacząłem pracować w miejscu z kilkoma znacznie starszymi programistami (około 50+). Pracowali nad krytycznymi aplikacjami dotyczącymi lotnictwa, w których system nie mógł ulec awarii. W rezultacie starszy programista ma tendencję do kodowania w ten sposób. Zwykle umieszcza w obiektach wartość logiczną, aby wskazać, czy wyjątek powinien zostać zgłoszony, czy …
Projektuję nowy system i chcę wiedzieć, czym jest inwersja kontroli (MKOl), a co ważniejsze, kiedy z niej korzystać. Czy to musi być zaimplementowane z interfejsami czy może być zrobione z klasami?
Zasada Jednej Odpowiedzialności stanowi, że klasa powinna zrobić jedną i tylko jedną rzecz. Niektóre przypadki są dość wyraźne. Inne są jednak trudne, ponieważ to, co wygląda na „jedną rzecz”, gdy jest oglądane na danym poziomie abstrakcji, może być wieloma rzeczami, gdy patrzy się na niższym poziomie. Obawiam się również, że …
Główną ideą OOP jest ujednolicenie danych i zachowania w jednym obiekcie - obiekcie. W programowaniu proceduralnym istnieją dane i osobno algorytmy modyfikujące dane. We wzorcu Model-Widok-Kontroler dane i logika / algorytmy są umieszczone w odrębnych jednostkach, odpowiednio model i kontroler. W równoważnym podejściu OOP nie należy umieszczać modelu i kontrolera …
Podczas projektowania programu często dochodzę do momentu, w którym muszę przekazywać instancje obiektów przez kilka klas. Na przykład, jeśli mam kontroler, który ładuje plik audio, a następnie przekazuje go do odtwarzacza, a odtwarzacz przekazuje go do odtwarzacza Runner, który przekazuje go gdzie indziej itp. Wygląda to trochę źle, ale nie …
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.