Rozpoczynając nowy projekt, mój szef zawsze unika ustalonych decyzji. Zwykle mówi: ok, po prostu zacznij coś pisać i bądź tak ogólny, jak to możliwe. Kiedy skończysz, sprawdzimy, jak będziemy kontynuować. Jego argumentem jest zasadniczo to, że nigdy nie wiesz i „zwinny rozwój”. Aby pytanie było jak najbardziej ogólne: co robisz, …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Wiele dużych firm, od Apple po Microsoft i Google, wkłada coraz więcej pieniędzy …
Mam kod, w którym spadł dobry model dziedziczenia i próbuję zrozumieć, dlaczego i jak to naprawić. Zasadniczo wyobraź sobie, że masz hierarchię zoo z: class Animal class Parrot : Animal class Elephant : Animal class Cow : Animal itp. Masz swoje metody eat (), run () itp. I wszystko jest …
Zastanawiałem się nad dobrym projektowaniem klas obiektowych. W szczególności trudno mi zdecydować między tymi opcjami: metoda statyczna vs instancja metoda bez parametrów lub zwracanej wartości vs metoda z parametrami i zwracaną wartością nakładanie się i odrębna funkcjonalność metody metoda prywatna a publiczna Przykład 1: Ta implementacja korzysta z metod instancji, …
Mam problem ze starszym dyrektorem, który nie rozumie iteracyjnego rozwoju (a tym bardziej zwinnego). Nalega, aby nasza specyfikacja projektu oprogramowania była kompletna przed napisaniem dowolnego wiersza kodu. Kompletny, dla niego, oznacza, że wszystkie funkcjonalne szczegóły są dostępne. Ponadto, będąc byłym programistą Cobola, chce zobaczyć „moduły” i schematy blokowe. To jest …
Jestem w czymś, co wydaje mi się bardzo dziwną pozycją. Jestem „liderem zespołu” w roli dla konkretnego projektu, starszy inżynier oprogramowania na stanowisku. W moim zespole mam 4 programistów, z których jeden pełni podobną rolę w innym projekcie, ale teraz mój ma priorytet, więc pracuje nad moim. Mam również 2 …
Chcę rozpocząć tworzenie stron internetowych, uczyłem się php. Mam doświadczenie w Javie, Pythonie i C ++. To doświadczenie sprawiło, że jestem dobry w tworzeniu stron WWW. Ale jestem okropny w projektowaniu i grafice. Chcę założyć stronę internetową. Co sugerujecie mi? Jeśli twoja sugestia jest lepsza w grafice, jaki byłby dobry …
Mam ten istniejący kod, w którym mają klasę i metodę inicjowania w tej klasie. Oczekuje się, że po utworzeniu obiektu klasy muszą one wywoływać na nim inicjalizację. Powód, dla którego istnieje metoda inicjalizacji Obiekt jest tworzony wcześnie, aby mieć zasięg globalny, a następnie metoda inicjalizacji jest wywoływana później po załadowaniu …
Opisałem koledze, dlaczego konstruktor wywołujący metodę może być antypatternem. przykład (w moim zardzewiałym C ++) class C { public : C(int foo); void setFoo(int foo); private: int foo; } C::C(int foo) { setFoo(foo); } void C::setFoo(int foo) { this->foo = foo } Chciałbym motywować ten fakt lepiej poprzez wasz dodatkowy …
W przeszłości zwykle manipulowałem obiektem w ramach podstawowej metody, która jest tworzona / aktualizowana, ale ostatnio przyjąłem inne podejście i jestem ciekawy, czy to zła praktyka. Oto przykład. Załóżmy, że mam repozytorium, które akceptuje Userbyty, ale przed wstawieniem bytu wywołujemy niektóre metody, aby upewnić się, że wszystkie jego pola są …
W każdym projekcie programistycznym, który obejmuje systemy rozproszone z wieloma programistami, najlepszym rozwiązaniem jest posiadanie diagramów architektury logicznej i fizycznej, ale z mojego doświadczenia wynika, że te diagramy zawsze zaczynają być dobrze utrzymane na początku projektu, ale nie są aktualizowane po wydaniu projektu rozpoczynają się fazy konserwacji. W przypadku złożonych …
Obecna sytuacja Wdrażamy (i obecnie utrzymujemy) aplikację internetową do zakupów online w architekturze mikrousług. Jednym z wymagań jest to, że firma musi być w stanie stosować zasady dotyczące tego, co nasi klienci dodają do koszyka, w celu dostosowania ich doświadczenia i ostatecznego zamówienia. Z pewnością trzeba było wprowadzić silnik reguł …
Próbuję zrozumieć, w jaki sposób zasada inwersji zależności różni się od zasady „program do interfejsu, a nie implementacja”. Rozumiem, co oznacza „Program do interfejsu, a nie implementacja”. Rozumiem również, w jaki sposób pozwala na bardziej elastyczne i łatwe w utrzymaniu projekty. Ale nie rozumiem, w jaki sposób zasada inwersji zależności …
Kiedy próbuję zaprojektować rozwiązanie OO, zwykle używam modelowania CRC, w którym wymieniam nazwy klas (rzeczowniki), co robią (czasowniki) i jak współpracują z innymi klasami. Ten blog ma poniżej do powiedzenia na temat tego czasownika ...This approach, which I will call “noun and verb,” is so limited I’ll dare to call …
Zasada otwartego zamknięcia (OCP) stanowi, że obiekt powinien być otwarty do rozszerzenia, ale zamknięty do modyfikacji. Wierzę, że rozumiem to i używam go w połączeniu z SRP do tworzenia klas, które robią tylko jedną rzecz. I staram się stworzyć wiele małych metod, które umożliwiają wyodrębnienie wszystkich elementów sterujących zachowania na …
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.