Pytania otagowane jako design

Pytania dotyczące rozwiązywania problemów i planowania rozwiązania poprzez projektowanie oprogramowania.

7
Projektowanie interfejsu API REST przez URI vs ciąg zapytania
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 …
73 design  rest  api 

7
Czy powinienem pójść normalną ścieżką, czy wcześnie zawieść?
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ć?
73 design 

11
Porady na temat projektowania aplikacji internetowych o ponad 40-letnim okresie użytkowania
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 …

9
Dlaczego warto korzystać z klas cząstkowych?
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ć …

12
SQL: pusty ciąg vs NULL
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 …
72 design  database  sql  strings  null 

7
Kiedy używać klas abstrakcyjnych zamiast interfejsów z metodami rozszerzenia w C #?
„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ą …

10
Mój proponowany projekt jest zwykle gorszy niż projekt mojego kolegi - jak mogę się poprawić? [Zamknięte]
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 …


4
Dlaczego kolekcje Java zostały zaimplementowane za pomocą „opcjonalnych metod” w interfejsie?
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 …

7
Jeśli funkcje muszą wykonać sprawdzanie wartości zerowej przed wykonaniem zamierzonego zachowania, czy to zły projekt?
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 …
67 c#  design  validation 

12
Posiadanie flagi wskazującej, czy powinniśmy zgłaszać błędy
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 …


11
Wyjaśnij zasadę jednej odpowiedzialności
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 …

14
Czy MVC nie chroni przed OOP?
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 …

12
Czy przechodzenie instancji przez kilka warstw jest złą praktyką?
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 …

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.