Przejdź do treści
Kodivo debiutuje na Product Hunt. Podziel się opinią

Czym są funkcje i jak dzielić zadanie programistyczne na zrozumiałe części?

Funkcja nadaje nazwę fragmentowi działania i wyznacza jego granice. Dzięki temu łatwiej opisać zadanie i sprawdzić wynik.

Określ dane wejściowe i wynik

Funkcja to nazwany fragment kodu, który możesz wywołać. Parametry opisują dane przyjmowane przy wywołaniu, a return zwraca wynik. Ten kompletny przykład PHP 8+ tworzy powitanie, a następnie je wypisuje:

PHP
<?php

declare(strict_types=1);

function greeting(string $name): string
{
    return "Hello, " . $name . "!";
}

echo greeting("Ada") . PHP_EOL;

Wynik

Hello, Ada!

Wynik to Hello, Ada! i nowa linia. $name jest parametrem, a "Ada" argumentem przekazanym w konkretnym wywołaniu. Deklaracje string określają typ parametru i wyniku. strict_types w tym pliku włącza ścisłe sprawdzanie typów skalarnych przy wywołaniach funkcji z tego pliku.

Zachowaj czytelną odpowiedzialność

Funkcja greeting buduje tekst. Nie zapisuje go w bazie ani nie wysyła wiadomości. echo znajduje się poza funkcją, więc możesz użyć zwróconego tekstu w innym miejscu. Rozdzielenie tworzenia wartości od jej wyświetlenia ułatwia sprawdzenie zachowania.

Nie każda funkcja musi być pozbawiona efektów ubocznych. Zapis pliku lub wysłanie wiadomości to rzeczywiste zadania programu. Gdy ich potrzebujesz, nazwij je w poleceniu. „Zwróć powitanie” i „wyślij email z powitaniem” mają inny zakres.

Sprawdź zwykłe i nietypowe dane

Wywołaj funkcję dla innego imienia i pustego tekstu. W obecnej wersji pusty tekst daje Hello, !. Kod realizuje opisaną operację, ale to Ty ustalasz, czy taki wynik jest dopuszczalny. Możesz wymagać odrzucenia pustego imienia albo użycia powitania bez imienia.

Test jest zapisem oczekiwanego zachowania. Przed zleceniem testów ustal oczekiwanie. Agent nie powinien zgadywać, czy spacje oznaczają poprawne imię i czy należy je usuwać. W większym projekcie sprawdź istniejące reguły walidacji przed dodaniem kolejnych.

Zleć agentowi ograniczone zadanie

Przykładowe polecenie: „Zmień greeting tak, aby pusty tekst dawał Hello!. Zachowaj wynik dla Ada. Funkcja ma zwracać tekst i nie wykonywać zapisu ani wysyłki. Dodaj sprawdzenie tych dwóch przypadków w istniejącym systemie testów”.

Granica zadania jest czytelna: jedna funkcja i dwa wyniki. Jeśli agent proponuje klasę lub bibliotekę, zapytaj o wymaganie uzasadniające ten koszt. Do funkcji wrócisz w dalszej nauce PHP w Kodivo. Szczegóły sprawdzaj w dokumentacji funkcji i deklaracji typów.

Kodivo: karta lekcji pokazuje, że null różni się od false i zera. Obok wyświetla kod PHP i wynik.
Przykładowa lekcja „Null and missing values” w Kodivo. Kod i wynik są widoczne obok wyjaśnienia. Interfejs i lekcje są po angielsku.
Sprawdzenie wiedzy w Kodivo: kod z isset i wybór odpowiedzi bool(true) lub bool(false).
W publicznym demo możesz samodzielnie odpowiedzieć na pytanie o kod PHP i sprawdzić odpowiedź. Konto zapisuje postępy w opublikowanych lekcjach.