Ulepsz swoją dokumentację i test kodu w jednym prostym kroku, korzystając z przykładowych funkcji.

Kluczowe dania na wynos

  • Przykładowe funkcje w Go to testowalne fragmenty kodu, które służą jako dokumentacja i można je wykorzystać do sprawdzenia poprawności.
  • Przykładowe funkcje są zgodne z konwencją nazewnictwa i można je zdefiniować dla pakietów, funkcji, typów i metod.
  • Przykładowe funkcje to testy wykonywalne, które można wykorzystać do zapewnienia niezawodności kodu i aktualności dokumentacji.

Jedną z mocnych stron Go jest bogactwo wbudowanych funkcji testowania i dokumentacji. Wśród nich znajduje się bardzo przydatne narzędzie zwane „przykładowymi funkcjami”, które może pomóc Ci sprawdzić kod i wyjaśnić go innym.

Jako programista Go powinieneś dokładnie wiedzieć, czym są przykładowe funkcje i jak możesz ich używać do tworzenia łatwego w utrzymaniu oprogramowania.

Jakie są przykładowe funkcje?

Przykładowe funkcje (lub przykłady) w Golangu to testowalne fragmenty kodu, które możesz dodać do pakietu jako dokumentację i sprawdzić pod kątem poprawności. Przykładowe funkcje nie przyjmują parametrów i nie zwracają wyniku.

instagram viewer

Wyobraź sobie, że masz następujące informacje Zwielokrotniać funkcja w Twoim projekcie:

funcMultiply(a, b int)int {
return a * b
}

Przykładowa funkcja dla Zwielokrotniać będzie wyglądać tak:

funcExampleMultiply() {
fmt.Println(Multiply(4, 5))
// Output: 2
}

Przykładowe funkcje używają podobnej konwencji nazewnictwa do testowania funkcji. Zdefiniuj przykład funkcji, dodając nazwę funkcji jako przyrostek do „Przykład”, tak jak ma to miejsce w przypadku PrzykładPomnóż Tutaj.

Bliższe spojrzenie na przykładowe funkcje

Kod z poprzedniej sekcji przedstawia podstawową strukturę przykładowej funkcji. Przykładem jest nazwa, treść funkcji i opcjonalny komentarz wyjściowy na końcu funkcji.

Kiedy dodasz komentarz wyjściowy, Go kompiluje i wykonuje przykład, aby sprawdzić jego poprawność, ale bez komentarza Go kompiluje tylko przykładową funkcję, a nie ją wykonuje.

Można zdefiniować przykład pakietu, funkcji, typu i metody na typie.

Definiowanie przykładów dla różnych podmiotów wymaga różnych podejść.

  1. Aby zdefiniować przykład pakietu, po prostu wywołaj swoją funkcję Przykład(), bez żadnego przyrostka. Oto przykład na poziomie pakietu:
    funcExample() {
    fmt.Println("Hello, world!")
    // Output:
    // Hello, world!
    }
  2. Aby zdefiniować przykład funkcji, po prostu dodajesz nazwę funkcji jako przyrostek, jak nauczyłeś się wcześniej.
    funcExampleMultiply() {
    fmt.Println(Multiply(4,5))
    // Output: 2
    }
  3. Aby zdefiniować przykład dla typu, dodaj nazwę jako przyrostek do Przykład. Oto przykład:
    type MyStruct struct {
    // ...
    }

    funcExampleMyStruct() {
    // ...
    }

  4. I na koniec, dla metody określonego typu, dodajesz nazwę typu, podkreślenie, a następnie nazwę metody. Oto demonstracja:
    func(m *MyStruct)MyMethod() {
    // ...
    }

    funcExampleMyStruct_MyMethod() {
    // ...
    }

Można zdefiniować wiele przykładów dla encji, dodając dodatkowe podkreślenie i przyrostek rozpoczynający się od małej litery. Na przykład, PrzykładMultiply_sekunda, PrzykładMyStruct_MyMethod_sekunda.

Możesz także mieć większy przykład wyjaśniający złożoną logikę za pomocą a przykład całego pliku.

Przykładem całego pliku jest plik, który kończy się na _test.go i zawiera dokładnie jedną funkcję przykładową, żadnych funkcji testowych ani testowych oraz co najmniej jedną inną deklarację na poziomie pakietu. Podczas wyświetlania takich przykładów godoc pokaże cały plik. - Blog deweloperski Go

Silnik Go rozpoznaje i obsługuje przykładowe funkcje zgodnie z ich definicją.

Możesz skorzystać z Nieuporządkowane wyjście alternatywa dla komentarzy wyjściowych. Jest to szczególnie przydatne w scenariuszach, w których funkcja zwraca listę, która nie jest oczekiwana w określonej kolejności.

Dokumentowanie kodu za pomocą przykładowych funkcji

Przykładowe funkcje są przydatne zarówno do celów dokumentacyjnych, jak i testowych. Przykładowa funkcja zwykle lepiej wyjaśnia zachowanie niż komentarze.

Tak jak JavaDoc, Idź S wbudowane narzędzie do dokumentacji, godoc, ułatwia dokumentowanie kodu. Będziesz jednak chciał wspólnie udokumentować niektóre biblioteki i funkcje, aby uzyskać pełniejszy obraz ich działania. Przykłady eliminują tę porażkę, ponieważ mogą wykazać interakcje pomiędzy różnymi jednostkami opakowania.

The Godok narzędzie automatycznie kojarzy przykłady z funkcjami, typami i pakietami, do których należą, w zależności od specyfikacji. Idzie także o krok dalej, umożliwiając eksperymentowanie w interfejsie sieciowym dokumentacji.

Możesz wypróbować pakiet lub metodę bezpośrednio z dokumentacji, zanim jeszcze użyjesz jej w swoim kodzie.

Ten obraz pokazuje przykład dla json. Ważny funkcjonować pod kodowanie/json:

Używanie przykładowych funkcji do testu jednostkowego

Przykładowe funkcje są również testami wykonywalnymi. Kiedy uruchomisz idź na test polecenie, silnik uruchamia każdą przykładową funkcję z końcowym komentarzem wyjściowym i upewnia się, że jej wynik odpowiada treści komentarza.

Ta funkcja jest przydatna na wiele sposobów. Może służyć jako dodatkowa warstwa testowanie w celu zapewnienia niezawodnego kodu, pomaga także śledzić dokumentację w przypadku zmian w kodzie.

Na przykład, jeśli dokonasz zmiany, która ma wpływ na działanie określonej funkcji i wynik, jaki zwraca. Jeśli nie zaktualizujesz komentarza wyjściowego w przykładzie, aby uwzględnić nowe zmiany, testy dla tego przykładu nie powiodą się.

Pomaga to bardzo w zapobieganiu przestarzałej dokumentacji, ponieważ dokumentacja będzie zawsze aktualna z kodem.

Przykładowe funkcje tworzą niezawodny kod i dokumentację

Dokumentacja jest istotną częścią tworzenia oprogramowania, ale niewiele języków zapewnia tak potężną platformę do dokumentowania i testowania kodu.

Go zawiera wszystko, czego potrzebujesz do tworzenia wysokiej jakości dokumentacji dla swojego oprogramowania, a przykładowe funkcje są tego istotną częścią. Użyj przykładów, aby pomóc użytkownikom i współpracownikom szybciej zaadaptować i zrozumieć Twój kod.