Pytania otagowane jako design-patterns

Wzorzec projektowy jest ogólnym rozwiązaniem wielokrotnego użytku dla często występującego problemu w projektowaniu oprogramowania.

6
Jaki jest lepszy sposób na ucieczkę od zbyt wielu, jeśli / else-if z następującego fragmentu kodu?
Próbuję napisać serwlet, który wykonuje zadania na podstawie wartości „action” przekazanej mu jako dane wejściowe. Oto próbka tego public class SampleClass extends HttpServlet { public static void action1() throws Exception{ //Do some actions } public static void action2() throws Exception{ //Do some actions } //And goes on till action9 public …

2
Jak przejść do testowania kodu nie do wstrzykiwania?
Mam więc następujący kod w całym systemie. Obecnie piszemy testy jednostkowe retrospektywnie (lepiej późno niż nigdy nie był mój argument), ale nie rozumiem, jak to byłoby możliwe do przetestowania? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter = new SearchEntityToQueryAdapter($queryBuilder, $searchEntity); $query = $adapter->setupBuilder()->build(); $totalCount …


1
Czy modele domen w bazie danych mogą być trwałym rozwiązaniem?
Właśnie zacząłem od nowej pracy jako programista baz danych dla średniej wielkości firmy opartej na technologii Microsoft. Zauważyłem wcześnie, jak wiele praktyk różni się od tego, czego nauczono mnie w szkole w zakresie najlepszych praktyk, wzorców projektowych, testów i zarządzania projektami. Najbardziej denerwuje mnie to, w jaki sposób nasz główny …

3
Jak narysować uwagi programisty w określonych warunkach?
Zacznijmy od przykładu. Powiedzmy, że mam wywoływaną metodę, exportktóra zależy w dużym stopniu od schematu DB. Przez „mocno zależy” rozumiem, że dodanie nowej kolumny do określonej tabeli często (bardzo często) prowadzi do zmiany odpowiedniej exportmetody (zwykle należy również dodać nowe pole do danych eksportu). Programiści często zapominają o zmianie exportmetody, …


6
Kwestionując jeden z argumentów dotyczących struktur wstrzykiwania zależności: Dlaczego tworzenie wykresu obiektowego jest trudne?
Ramy wstrzykiwania zależności, takie jak Google Guice, dają następującą motywację do ich użycia ( źródło ): Aby zbudować obiekt, najpierw zbuduj jego zależności. Ale aby zbudować każdą zależność, potrzebujesz jej i tak dalej. Więc kiedy budujesz obiekt, naprawdę musisz zbudować wykres obiektu. Ręczne budowanie wykresów obiektów jest pracochłonne (...) i …

2
Czy powinienem ujawniać „obliczoną” wartość jako właściwość lub metodę?
Mam klasę C #, która reprezentuje typ zawartości w systemie zarządzania treścią internetową. Mamy pole, które pozwala edytorowi treści WWW wprowadzić szablon HTML do wyświetlania obiektu. Zasadniczo używa składni kierownicy do podstawiania wartości właściwości obiektu w ciągu HTML: <h1>{{Title}}</h1><p>{{Message}}</p> Czy z perspektywy projektowania klas powinienem udostępniać sformatowany ciąg HTML (z …

2
Po co rozdzielać klasę CommandHandler za pomocą Handle () zamiast obsługi metody w samym Command
Mam część wzorca CQRS zaimplementowanego przy użyciu architektury S # arp w następujący sposób: public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } …

4
Szyny: Prawo zamieszania Demeter
Czytam książkę zatytułowaną Rails AntiPatterns, a oni mówią o korzystaniu z delegacji, aby uniknąć łamania Prawa Demeter. Oto ich najlepszy przykład: Uważają, że wywołanie czegoś takiego w kontrolerze jest złe (i zgadzam się) @street = @invoice.customer.address.street Ich proponowanym rozwiązaniem jest wykonanie następujących czynności: class Customer has_one :address belongs_to :invoice def …

3
Zasada inwersji zależności: jak zdefiniować „politykę wysokiego poziomu” i „szczegóły niskiego poziomu” dla innych osób?
Próbuję wyjaśnić zasadę inwersji zależności moim (głównie młodszym) kolegom. Jak możemy zdefiniować, która jest „polityką wysokiego poziomu”, a która „szczegółem niskiego poziomu” w oprogramowaniu? Na przykład, jeśli nasze oprogramowanie automatyzuje przepływ pracy kilku aplikacji biznesowych, dlaczego mówimy, że automatyzacja przepływu pracy jest polityką wysokiego poziomu, a aplikacje biznesowe są szczegółami?

3
Czy używanie testów jednostkowych do opowiadania historii to dobry pomysł?
Mam więc moduł uwierzytelniania, który napisałem jakiś czas temu. Teraz widzę błędy na mojej drodze i piszę dla nich testy jednostkowe. Podczas pisania testów jednostkowych trudno mi wymyślić dobre nazwiska i dobre obszary do przetestowania. Na przykład mam takie rzeczy Wymaga Logowania_ powinien być_redirect_when_not_logged_in Wymaga Logowania_powinna_przejść_przejście_w momencie_logowania_w Login_should_work_when_given_proper_credentials Osobiście uważam, …

2
Czy istnieją jakieś określone przepływy pracy lub wzorce projektowe, które są powszechnie używane do tworzenia dużych funkcjonalnych aplikacji programistycznych? [Zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 4 lata temu . Od dłuższego czasu badam Clojure, chociaż nie korzystałem z niego w żadnych nietrywialnych projektach. Zasadniczo …

4
Jak ustalić, czy wzorzec projektowy jest poprawnie wdrożony?
Z powodzeniem mogę skalować wszystkie moje stare aplikacje, które nie korzystały z udokumentowanych wzorców projektowych. Jakikolwiek to jest wzór, nie wiem. W dużej mierze czułem potrzebę użycia prostych koncepcji OOP. Koncepcja wzorców projektowych jest złożona i trudna do zrozumienia. Po wdrożeniu, jak ustalić, czy implementacja jest poprawna, a aplikacja posiada …

3
Polecam wzorzec projektowy / podejście do ujawniania / tolerowania / odzyskiwania po błędach systemowych, obsługę wyjątków (np. W Javie, C ++, Perlu, PHP)
Czy możesz polecić wzorzec / podejście projektowe do ujawniania / tolerowania / odzyskiwania po błędach systemowych, obsługi wyjątków (Java, C ++, Perl, PHP)? Niektóre błędy muszą zostać zgłoszone. Niektóre błędy mogą być obsługiwane wewnętrznie (przez ponowienie lub są nieistotne (można je zignorować). Jak ustrukturyzować kod, aby je złapać? Ale wszystkie …

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.