Pytania otagowane jako design

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



3
Tłumy konstruujące jedno wdrożenie. DI beznadziejny? Używać lokalizatora usług?
Załóżmy, że mamy 1001 klientów, którzy konstruują swoje zależności bezpośrednio, zamiast akceptować zastrzyki. Według naszego szefa refaktoryzacja 1001 nie jest opcją. W rzeczywistości nie mamy nawet dostępu do ich źródła, tylko do plików klas. Powinniśmy „zmodernizować” system, przez który przechodzi 1001 klientów. Możemy refaktoryzować to, co lubimy. Zależności są częścią …

5
OOP Styl kodowania: inicjować wszystko w konstruktorze?
Nadal uważam się za programistę-ucznia, więc zawsze szukam „lepszego” sposobu na typowe programowanie. Dzisiaj mój współpracownik argumentował, że mój styl kodowania robi niepotrzebną pracę i chcę usłyszeć opinie innych. Zazwyczaj, gdy projektuję klasę w języku OOP (zwykle C ++ lub Python), dzieliłem inicjalizację na dwie różne części: class MyClass1 { …

1
Czy dobrą praktyką jest wdrażanie dwóch domyślnych metod Java 8 pod względem siebie?
Projektuję interfejs za pomocą dwóch powiązanych metod, podobnych do tego: public interface ThingComputer { default Thing computeFirstThing() { return computeAllThings().get(0); } default List<Thing> computeAllThings() { return ImmutableList.of(computeFirstThing()); } } Około połowa implementacji obliczy tylko jedną rzecz, podczas gdy druga połowa może obliczyć więcej. Czy ma to jakiś precedens w powszechnie …



5
Czy powinienem napisać interfejs API przed implementacją?
Ostatnio zajmuję się bardziej „zorganizowanym” programowaniem i dowiaduję się, że powinienem programować interfejs, a nie implementację. Mając to na uwadze, czy lepiej byłoby „naszkicować” projekt w interfejsach przed napisaniem implementacji, jeśli to możliwe? A jeśli tak jest, to w przypadku korzystania z bibliotek stron trzecich (tj. Lidgren), czy powinienem owijać …

2
Decyzja projektowa - po co generować <p> bez </p>?
tl; dr Niektóre powszechnie używane programy, które generują HTML, generują tylko otwierające znaczniki akapitów, a nie zamykające, zakładając, że przeglądarka prawidłowo zamyka akapity. Na pierwszy rzut oka wydaje mi się, że założenie, że przeglądarki będą poprawnie zamykać akapity, jest nieprawidłowe. Czy moja interpretacja jest poprawna? Mówiąc bardziej ogólnie, jakie kompromisy …

10
Dlaczego RDBMS nie zwracają połączonych tabel w formacie zagnieżdżonym?
Powiedzmy na przykład, że chcę pobrać użytkownika oraz wszystkie jego numery telefonów i adresy e-mail. Numery telefonów i e-maile są przechowywane w osobnych tabelach, jeden użytkownik do wielu telefonów / e-maili. Mogę to zrobić dość łatwo: SELECT * FROM users user LEFT JOIN emails email ON email.user_id=user.id LEFT JOIN phones …
14 design  sql  rdbms 

7
Czy klucz zastępczy powinien być kiedykolwiek udostępniony użytkownikowi?
Często w tabeli, która nie ma naturalnego klucza, nadal przydatne jest, aby użytkownicy mogli mieć unikatowo wygenerowany identyfikator. Jeśli tabela ma zastępczy klucz podstawowy (a w takim przypadku na pewno byś się tego spodziewał), czy klucz ten powinien zostać udostępniony użytkownikowi, czy też powinno się w tym celu użyć innego …

3
Ogólny projekt parsera plików w Javie przy użyciu wzorca strategii
Pracuję nad produktem, w którym jednym z modułów jest parsowanie plików XML i zrzucanie wymaganej zawartości do bazy danych. Mimo że obecnym wymaganiem jest tylko parsowanie plików XML, chcę zaprojektować mój moduł analizujący w taki sposób, aby w przyszłości mógł obsługiwać dowolny rodzaj plików. Powodem takiego podejścia jest to, że …
14 java  design  parsing  xml 

1
Czy korzystamy właściwie ze wzoru repozytorium?
Korzystamy z szeregu oddzielnych klas z przyrostkiem, -repositoryaby pobrać dane z bazy danych; dla każdej tabeli własne repozytorium. Mamy na przykład customerrepositoryklasę, która ma wszelkiego rodzaju metody pozyskiwania klientów i vacancyrepositoryktóra ma wszelkiego rodzaju metody pozyskiwania wolnych miejsc pracy. Mam dwa pytania dotyczące tego sposobu robienia rzeczy: Co powiesz na …



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.