Pytania otagowane jako design

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

3
Jak rozwiązać zależność cykliczną?
Mam trzy klasy, które są od siebie zależne od siebie: TestExecuter wykonuje żądania TestScenario i zapisuje plik raportu za pomocą klasy ReportGenerator. Więc: TestExecuter zależy od ReportGenerator do wygenerowania raportu ReportGenerator zależy od TestScenario i parametrów ustawionych z TestExecuter. TestScenario zależy od TestExecuter. Nie mogę dowiedzieć się, jak usunąć te …

7
Co jeśli nie mam dobrych pomysłów na wdrożenie funkcji? [Zamknięte]
Pracuję nad własną aplikacją i utknąłem. Muszę wdrożyć funkcję, ale nie mogę znaleźć dobrego podejścia do jej wdrożenia. Myślałem o tym przez kilka dni i nie nadeszły żadne dobre myśli. Przeszukiwanie Internetu nie dało mi żadnej inspiracji. Muszę iść dalej, ale chcę wiedzieć, co jest najlepsze: Myśl więcej, czekaj dłużej …
32 design 

3
Jaka jest zasada najmniejszego zdziwienia?
Co w programowaniu nazywa się zasadą najmniejszego zdziwienia? Jak ta koncepcja jest związana z projektowaniem dobrych interfejsów API? Czy dotyczy to tylko programowania obiektowego, czy też przenika inne techniki programowania? Czy ma to związek z zasadą „robienia jednej rzeczy w metodzie i robienia tego dobrze”?

2
Jak zaprojektować skalowalny system powiadomień? [Zamknięte]
Muszę napisać menedżera systemu powiadomień. Oto moje wymagania: Muszę być w stanie wysłać powiadomienie na różnych platformach, które mogą być zupełnie inne (na przykład muszę mieć możliwość wysłania wiadomości SMS lub e-mail). Czasami powiadomienie może być takie samo dla wszystkich odbiorców na danej platformie, ale czasami może to być powiadomienie …

11
Dobrze zaprojektowane / wysokiej jakości oprogramowanie typu open source [zamknięte]
Biorę klasę projektowania oprogramowania, w której powinienem wybrać oprogramowanie open source do analizy z punktu widzenia projektowania oprogramowania. To musi być duży projekt: nie mniej niż 100 000 linii kodu. Naprawdę chciałbym wybrać oprogramowanie, które jest bardzo dobrze zaprojektowane i zaprojektowane tak, aby mieć dobry wgląd w dobre projektowanie oprogramowania. …

18
Czy deweloper powinien argumentować przeciwko niepotrzebnym lub szkodliwym funkcjom?
Jakie jest dobre podejście deweloperów do omawiania nowych funkcji, a mianowicie funkcji niekrytycznych / wątpliwych? Załóżmy, że rozwijasz język Java, a szef mówi: „Potrzebujemy wskaźników, aby programiści mogli bezpośrednio manipulować pamięcią obiektów!” Czy deweloper powinien zlikwidować ten pomysł, ponieważ dodaje niewyobrażalną złożoność i luki w zabezpieczeniach, czy powinien zrobić to, …
32 design 

1
Czy „StringBuilder” jest aplikacją wzorca projektowego Builder?
Czy wzorzec „Konstruktora” ogranicza się do rozwiązania anty-wzorca „konstruktora teleskopowego”, czy też można powiedzieć, że dotyczy również bardziej ogólnego problemu skomplikowanego tworzenia niezmiennych obiektów? StringBuilderKlasy ma słowo „budowniczy” w nazwie, ale to nie ma nic, teleskopowe do czynienia z konstruktorów, to po prostu pomaga nam zebrać wszystkie dane, które musimy …

10
Czy uzasadnione jest założenie, że dowolna wielkość fizyczna może być reprezentowana przez 64-bitową liczbę całkowitą bez przepełnienia lub niedopełnienia?
Oryginalny algorytm wyszukiwania binarnego w JDK używał 32-bitowych liczb całkowitych i miał błąd przepełnienia, jeśli (low + high) > INT_MAX( http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html ) . Jeśli przepisujemy ten sam algorytm wyszukiwania binarnego przy użyciu (podpisanych) liczb całkowitych 64-bitowych, czy możemy założyć, że low + highnigdy nie przekroczy INT64_MAX, ponieważ fizycznie niemożliwe jest …

5
Czy lepiej jest projektować od góry do dołu czy od dołu do góry?
Jak rozumiem, projektowanie odgórne polega na dopracowaniu abstrakcyjnej koncepcji wysokiego poziomu na mniejsze betonowe i zrozumiałe części, aż do zdefiniowania najmniejszego elementu konstrukcyjnego. Z drugiej strony „od dołu” definiuje części niskiego poziomu, a następnie stopniowo buduje bloki wyższego poziomu, aż powstanie cały system. W praktyce najlepiej powiedzieć, że łączą dwie …
31 design  c++  lisp 

15
Czego programiści mogą nauczyć się od branży budowlanej? [Zamknięte]
Rozmawiając z kolegami o zasadach projektowania i tworzenia oprogramowania, zauważyłem, że jednym z najczęstszych źródeł analogii jest przemysł budowlany. Mamy budować oprogramowanie i uważamy, że projektowanie i budowa być architektura . Jednym z najlepszych sposobów uczenia się (lub nauczania) jest analiza analogii - jakie inne analogie można wyciągnąć z konstrukcji? …


4
Czy istnieje różnica między komponentem a modułem
Mam mały problem z modułem terminów i komponentem. Moim zdaniem moduł to klasy pakietowe, do których można uzyskać dostęp tylko poprzez dobrze zdefiniowany interfejs. Ukryją wszystkie szczegóły implementacji i są wielokrotnego użytku. Moduły definiują moduły, od których są zależne. Jaka jest różnica w stosunku do komponentów? Sprawdziłem to w niektórych …

5
Jaki jest skuteczny sposób rejestrowania uzasadnienia decyzji dotyczących projektu produktu?
W naszej firmie nie korzystamy z żadnych dokumentów projektowych produktu. Mamy łącznie trzech pracowników, więc wszystkie dyskusje na temat projektu produktu odbywają się osobiście lub w serwisie Slack. (Jesteśmy również na podstawowym pakiecie Slack, który pozwala tylko przeglądać najnowsze wiadomości.) Nasz produkt jest wciąż na wczesnym etapie i często ponownie …

9
Projektowanie klasy tak, aby przyjmowała całe klasy jako parametry, a nie poszczególne właściwości
Załóżmy na przykład, że masz aplikację o powszechnie udostępnianej klasie o nazwie User. Ta klasa ujawnia wszystkie informacje o użytkowniku, jego identyfikatorze, nazwie, poziomach dostępu do każdego modułu, strefie czasowej itp. Dane użytkownika są oczywiście szeroko przywoływane w całym systemie, ale z jakiegokolwiek powodu system jest skonfigurowany tak, aby zamiast …
30 java  c#  design  solid 

10
Biorąc pod uwagę stado koni, jak znaleźć średnią długość rogu wszystkich jednorożców?
Powyższe pytanie jest abstrakcyjnym przykładem typowego problemu, który napotykam w starszym kodzie, a ściślej - problemów wynikających z poprzednich prób rozwiązania tego problemu. Mogę wymyślić co najmniej jedną metodę platformy .NET, która ma rozwiązać ten problem, podobnie jak Enumerable.OfType<T>metoda. Ale fakt, że ostatecznie kończysz przesłuchiwanie typu obiektu w czasie wykonywania, …

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.