Często słyszę termin „stub”, „stub out out”, „stub stub” i tak dalej.
Co oznacza skrót w programowaniu i skąd pochodzi to słowo? W jakich kontekstach można go użyć?
Często słyszę termin „stub”, „stub out out”, „stub stub” i tak dalej.
Co oznacza skrót w programowaniu i skąd pochodzi to słowo? W jakich kontekstach można go użyć?
Odpowiedzi:
Metoda stub to metoda, która zwraca prosty, ale prawidłowy (choć niekoniecznie poprawny) wynik.
Zazwyczaj są one tworzone podczas budowania infrastruktury i nie chcesz teraz tracić czasu na każdą potrzebną metodę. Zamiast tego tworzysz kody pośredniczące, aby wszystko się kompilowało, a automatyczne uzupełnianie IDE wie o metodach, których planujesz użyć.
Innym miejscem, w którym używane są kody pośredniczące, jest kpina podczas testowania. Dostarczasz metody pośredniczące zamiast normalnej zależności poprzez wstrzykiwanie zależności, które zwracają ustalone wyniki, a następnie upewniają się, że kod robi z nimi właściwą rzecz. Izoluje to testowanie od kodu, który próbujesz przetestować, i oznacza, że nie musisz rozpędzać bazy danych, aby uruchomić te testy.
Być może najlepiej na to odpowiedzieć konkretnym przykładem. Rozważmy przypadek, w którym tworzysz aplikację komputerową. Zdecydowałeś się mieć funkcję o nazwie createMenubar
, createToolbar
a createMain
więc, że konstruktor aplikacja jest schludny i uporządkowany.
Twój główny kod będzie wyglądał mniej więcej tak (ten przykład jest w Pythonie):
class ExampleApp():
def __init__(self):
self.createMenubar()
self.createToolbar()
self.createMain()
Dopóki wszystko nie będzie działać, Twoja główna funkcja zawiedzie, więc jak możesz przetestować aplikację podczas programowania? Na przykład, jeśli zaczniesz pracę createMenubar
, inicjalizacja zakończy się niepowodzeniem po utworzeniu paska menu, ponieważ nie zaimplementowałeś paska narzędzi ani głównego obszaru GUI.
To gdzie odcinki wejść. Można utworzyć funkcję o nazwie createToolbar
i createMain
które spełniają wymóg konstruktora app (mianowicie, że te funkcje istnieją), bez konieczności faktycznie je realizować. Te funkcje to kody pośredniczące:
def createToolbar():
pass
def createMain():
pass
Za pomocą tych kodów pośredniczących możesz rozpocząć wdrażanie programu głównego i paska menu, bez martwienia się o szczegóły paska narzędzi lub głównej części programu. W końcu przejdziesz do paska narzędzi i zastąpisz kodeks aktualną funkcją. Na koniec usuniesz kod pośredniczący createMain
i zapewnisz mu prawdziwą implementację.
Zauważ, że kody pośredniczące niekoniecznie nie muszą nic robić. Te kody pośredniczące mogą na przykład utworzyć pusty widget kontenera, który konstruktor aplikacji może utworzyć. Chodzi o to, że tworzysz fałszywe funkcje lub obiekty, które wystarczają, aby umożliwić uruchomienie drugiego kodu podczas jego opracowywania. Z czasem zamieniasz kody pośredniczące jeden po drugim, aż aplikacja zostanie zakończona.
„Stub” jest używany w programowaniu „z góry na dół”. Wtedy budujesz swoją aplikację od ogólnej do szczegółowej. W ten sposób użyjesz „kodów pośredniczących” jako „symboli zastępczych” dla konkretnych aplikacji, których nie miałeś czasu zbudować. Często zwracają rzeczy takie jak wartości pozorowane lub losowe do bardziej ogólnej części programu. W porządku, odgałęzienie podaje wystarczającą wartość, aby bardziej „starsza” część programu działała. Dopóki nie nadejdzie czas, aby odcinek został wymieniony lub dopasowany do jego prawdziwych obliczeń lub wartości.