Inżynieria oprogramowania

11
Jak rozwiązać zależności okrągłego pakietu

Refaktoryzuję dużą bazę kodu, w której większość klas znajduje się w jednym pakiecie. Dla lepszej modułowości tworzę podpakiety dla każdej funkcjonalności. Pamiętam, że dowiadywałem się gdzieś, że wykres zależności pakietu nie powinien zawierać pętli, ale nie wiem, jak rozwiązać następujący...

11
Co to jest „przekrzywienie kodu”?

W książce O'Reilly o Scali przeczytałem, że kopiowanie i wklejanie kodu tworzy: ... tworzy problemy z rozdęciem kodu, łatwością konserwacji i przekrzywieniem , Nie widzę żadnych oczywistych definicji tego słowa w kontekście. Mam świadomość problemów z kopiowaniem i wklejaniem, ale nie mogę...

11
Czy są jakieś badania empiryczne na temat wpływu komentowania kodu źródłowego na jakość oprogramowania, łatwość konserwacji i produktywność programistów? [Zamknięte]

Zamknięte. To pytanie jest nie na temat . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było tematem dotyczącym wymiany stosów inżynierii oprogramowania. Zamknięte 6 lat temu . Jestem zwolennikiem komentowania...

11
Korzystanie z testowania gałęzi w Git

Mamy kogoś (nazwijmy go Ted), który jest odpowiedzialny za testowanie nowych funkcji i poprawek błędów. Używamy Git i GitHub . masterpowinno być / jest zawsze możliwe do wdrożenia i developmenttam, gdzie zatwierdzamy / łączymy nowe funkcje lub poprawki błędów, ale dopiero po ich przetestowaniu...

11
Czy powinienem używać metod abstrakcyjnych czy wirtualnych?

Jeśli założymy, że nie jest pożądane, aby klasa podstawowa była czystą klasą interfejsu i przy użyciu 2 poniższych przykładów, co jest lepszym podejściem przy użyciu abstrakcyjnej lub wirtualnej definicji klasy metody? Zaletą „abstrakcyjnej” wersji jest to, że prawdopodobnie wygląda ona na...

11
Projekt wzorca poleceń

Mam tę starą implementację wzorca poleceń. To rodzaj przekazywania kontekstu przez całą implementację DIOperation , ale później uświadomiłem sobie, że proces uczenia się i uczenia się (który nigdy się nie kończy) nie jest optymalny. Myślę też, że „odwiedzanie” tutaj nie pasuje i po prostu...

11
Tkanie kodu bajtowego vs. makra Lisp

Czytałem o bibliotekach napisanych przez ludzi dla języków takich jak Java i C #, które wykorzystują tkanie kodu bajtowego do robienia rzeczy takich jak przechwytywanie wywołań funkcji, wstawianie kodu rejestrującego itp. Czytałem również o makrach Lisp / Clojure w spróbuj lepiej zrozumieć, jak z...

11
Jak radzić sobie z projektowaniem interfejsu użytkownika i obsługą odpowiednich funkcji w programowaniu Agile?

W procesie programowania zwinnego zwykle główny nacisk kładziony jest na historie użytkowników, ale czasami jedno wymaganie może obejmować kilka historii użytkowników. Na przykład klient może zażądać strony wyszukiwania dla wszystkich użytkowników na forum, a dla każdego użytkownika może wystąpić...