Zetknąłem się z tą techniką programowania podczas wywiadu z programowaniem par i nie mogłem znaleźć jej nazwy w Google. Chodzi o to, że najpierw piszesz wyrażenie, które używa zmiennych, a następnie piszesz kod, który oblicza zmienne później. Aby użyć przykładowego kodu tutaj: private bool ValidPolicyNumber(string policyNumber) { var hasExpectedPrefix = …
Przez dziesięciolecia to było tak, że interfejsy były tylko tylko (tylko) dla określenia podpisy metod. Powiedziano nam, że to „właściwy sposób na robienie rzeczy”. Potem pojawiła się Java 8 i powiedziała: Teraz możesz zdefiniować domyślne metody. Muszę uciekać, pa. Jestem ciekawy, w jaki sposób jest to trawione zarówno przez doświadczonych …
Ta strona opowiada się za kompozycją za dziedziczeniem za pomocą następującego argumentu (sformułował to w moich słowach): Zmiana podpisu metody nadklasy (która nie została zastąpiona w podklasie) powoduje dodatkowe zmiany w wielu miejscach, gdy używamy dziedziczenia. Jednak gdy korzystamy ze składu, wymagana dodatkowa zmiana występuje tylko w jednym miejscu: podklasie. …
Tworzę grę planszową (takich jak szachy) w Javie, gdzie każdy element ma swój własny typ (jak Pawn, Rookitd.). Do części GUI aplikacji potrzebuję obrazu dla każdego z tych elementów. Ponieważ robienie myśli jak rook.image(); narusza separację interfejsu użytkownika i logiki biznesowej, utworzę inny prezenter dla każdego elementu, a następnie przypiszę …
Mam kilka klas, które zajmują się walidacją wartości. Na przykład RangeValidatorklasa sprawdza, czy wartość mieści się w określonym zakresie. Każda klasa walidatora zawiera dwie metody: is_valid(value)która zwraca wartość Truelub Falsezależy od niej i ensure_valid(value)która sprawdza określoną wartość i albo nie robi nic, jeśli wartość jest poprawna, albo zgłasza określony wyjątek, …
Na spotkaniu SCRUM zespół ds. Produktu debatował na temat funkcji interfejsu API, która zostanie wykorzystana przez aplikację mobilną. Mieliśmy makietę pokazującą, jak powinien wyglądać ekran i jakie kluczowe elementy powinien on zawierać („układ”). Na podstawie tego i dyskusji, którą przeprowadziłem z właścicielem produktu, stworzyłem prototyp odpowiedzi API (HAL + JSON). …
Oto mała ilustracja mojego pytania: Załóżmy zadanie kompilacji, które składa się z 4 niezależnych zadań o nazwie AD. D w sumie trwa dłużej niż AC. System kompilacji, który nie może uwzględnić względnych czasów zadań, może zaplanować takie zadania: --------------------------------------- CPU1: A | C | --------------------------------------- CPU2: B | D | …
Mam Characterklasę linii 2500, która: Śledzi wewnętrzny stan postaci w grze. Ładuje i utrzymuje ten stan. Obsługuje ~ 30 przychodzących poleceń (zwykle = przekazuje je do Game, ale niektóre polecenia tylko do odczytu są natychmiast reagowane). Odbiera ~ 80 połączeń od Gamepodejmowanych działań i odpowiednich działań innych osób. Wydaje mi …
Pytanie jest oczywiste, aby dodać moje przemyślenia: O ile przeczytałem, warstwa prezentacji w Clean arch ma taką samą odpowiedzialność jak w MV w MVP. Jak ktoś decyduje się wybrać jeden wzór zamiast drugiego?
Niedawno zauważyłem, że istnieje możliwość posiadania statycznych metod w interfejsach. Podobnie jak w przypadku statycznych pól interfejsu, istnieje ciekawe zachowanie: nie są one dziedziczone. Nie jestem pewien, czy jest to przydatne w rzeczywistych interfejsach, które mają zostać zaimplementowane. Umożliwia to jednak programistom tworzenie interfejsów, które są po prostu kopertami dla …
Zaczynam dopiero eksplorować SOLID i nie jestem pewien, czy czytanie z plików i pisanie do plików to ta sama odpowiedzialność. Celem jest ten sam typ pliku; Chcę czytać i pisać .pdf w mojej aplikacji. Aplikacja znajduje się w Pythonie, jeśli to robi jakąkolwiek różnicę.
Nie jestem pewien, w jaki sposób TDD, metodologia, obsługuje następujący przypadek. Załóżmy, że chcę zaimplementować algorytm scalania w Pythonie. Zaczynam od pisania assert mergesort([]) === [] a test kończy się niepowodzeniem Nazwa Błąd: nazwa „scalanie” nie jest zdefiniowana Następnie dodaję def mergesort(a): return [] i mój test mija. Następnie dodaję …
Jesteśmy małą firmą z wieloma zespołami, które zarządzają własnymi repozytoriami git. Jest to platforma internetowa, a artefakty każdego zespołu są rozmieszczane pod koniec dnia do nocnych testów. Staramy się sformalizować proces wokół wersji i pakowania. Każdy zespół ma główną gałąź, w której codziennie się rozwija. Członkowie zespołu ds. Zapewnienia jakości …
Mam silne doświadczenie w Javie / Groovy i zostałem przydzielony do zespołu, który utrzymuje dość dużą bazę kodu C dla oprogramowania administracyjnego. Niektóre problemy, takie jak radzenie sobie z kroplami w bazie danych lub generowanie raportów w plikach PDF i Excel, zostały przeniesione na zewnętrzną usługę Java. Jednak jako programista …
Obecnie pracuję jako starszy programista z 3 młodszymi osobami pode mną i wprowadziłem proces sprawdzania kodu, aby pomóc w zarządzaniu jakością kodu wprowadzanego do produkcji. Uważam, że dla nas wszystkich bardzo korzystne jest sprawdzanie siebie nawzajem, jednak po około 5 tygodniach procesu jestem jedynym, który może komentować narzędzie (BitBucket). Myślę, …
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.