Tabliczka mnożenia – przykład refaktoryzacji w PHP

Wstęp

Tworzenie czystego, efektywnego kodu to nie tylko kwestia estetyki – to absolutne niezbędne dla utrzymania kodu na przestrzeni czasu. W dzisiejszym artykule omówimy proces refaktoryzacji na przykładzie tworzenia tabliczki mnożenia w języku PHP. Zaczniemy od prostej wersji kodu, a następnie pokażemy, jak stopniowo go refaktoryzować, aby stał się bardziej zrozumiały i efektywny.

Prosta tabliczka mnożenia 10x10.

Pierwszy krok: Prosta tabliczka mnożenia

Początek to podstawy. Zaczynamy od stworzenia prostego kodu, który wygeneruje tabliczkę mnożenia 10×10. Język PHP jest doskonały do tego zadania, ponieważ jego składnia jest prosta i zrozumiała nawet dla początkujących programistów:

<?php
echo "<table>";
for ($i = 1; $i <= 10; $i++) {
    echo "<tr>";
    for ($j = 1; $j <= 10; $j++) {
        $product = $i * $j;
        echo "<td>" . $product . "</td>";
    }
    echo "</tr>";
}
echo "</table>";
?>

Ten kod korzysta z dwóch zagnieżdżonych pętli for do generowania rzędów i kolumn tablicy, a następnie oblicza i wyświetla produkt w każdej komórce.

Drugi krok: Dodanie personalizacji tabliczce mnożenia

Zaczniemy dodawać trochę personalizacji do naszej tabliczki mnożenia, umieszczając znak mnożenia (*) w lewym górnym rogu. Jest to standardowa konwencja w tabliczkach mnożenia i pomoże użytkownikom zrozumieć, jak jest organizowana. Tutaj dodajemy dodatkowe instrukcje warunkowe if do obsługi pierwszego wiersza i kolumny:

<?php
echo "<table>";
for ($i = 0; $i <= 10; $i++) {
    echo "<tr>";
    for ($j = 0; $j <= 10; $j++) {
        if ($i == 0 && $j == 0) {
            echo "<td>*</td>";
        } else if ($i == 0) {
            echo "<td>" . $j . "</td>";
        } else if ($j == 0) {
            echo "<td>" . $i . "</td>";
        } else {
            $product = $i * $j;
            echo "<td>" . $product . "</td>";
        }
    }
    echo "</tr>";
}
echo "</table>";
?>

Trzeci krok: Zmniejszenie powtórzeń

Jednym z podstawowych celów refaktoryzacji jest eliminacja powtarzalności. Powtarzający się kod jest trudniejszy do utrzymania i zwiększa ryzyko błędów. W naszym aktualnym kodzie mamy wiele powtarzających się wywołań echo "<td>". Możemy to uprościć, przechowując wartość, która ma zostać wyświetlona, w zmiennej:

<?php
echo "<table>";
for ($i = 0; $i <= 10; $i++) {
    echo "<tr>";
    for ($j = 0; $j <= 10; $j++) {
        $cellValue = $i * $j;
        if ($i == 0 && $j == 0) {
            $cellValue = "*";
        } else if ($i == 0) {
            $cellValue = $j;
        } else if ($j == 0) {
            $cellValue = $i;
        }
        echo "<td>" . $cellValue . "</td>";
    }
    echo "</tr>";
}
echo "</table>";
?>

Czwarty krok: Wykorzystanie operatora trójargumentowego

Możemy pójść o krok dalej w redukowaniu powtórzeń, wykorzystując operatora trójargumentowego (ternary operator). To jest kompaktowy sposób zapisu instrukcji warunkowych, który jest szczególnie przydatny, gdy chcemy przypisać jedną z dwóch wartości do zmiennej w zależności od warunku. Zauważ, że dla pętli wewnętrznej zmieniamy wartość początkową $j na 1, ponieważ pierwsza kolumna jest teraz obsługiwana przez kod poza pętlą for:

<?php
echo "<table>";
for ($i = 0; $i <= 10; $i++) {
    echo "<tr><td>" . ($i == 0 ? "*" : $i);
    for ($j = 1; $j <= 10; $j++) {
        echo "<td>" . ($i == 0 ? $j : $i * $j);
    }
    echo "</tr>";
}
echo "</table>";
?>

Piąty krok: Integracja znaczników tabeli

Na koniec, zintegrujemy otwierające i zamykające tagi tabeli HTML wewnątrz pętli:

<?php
for ($i = 0; $i <= 10; $i++) {
    echo ($i == 0 ? "<table><tr><td>*" : "<tr><td>" . $i);
    for ($j = 1; $j <= 10; $j++) {
        echo "<td>" . ($i == 0 ? $j : $i * $j);
    }
    echo ($i == 10 ? "</table>" : "");
}
?>

Podsumowanie

Nasz kod jest teraz o wiele bardziej zwięzły i czytelny. Przy użyciu kilku prostych technik refaktoryzacji, przekształciliśmy naszą tabliczkę mnożenia z prostej, ale nieco powtarzalnej, struktury w elegancki kawałek kodu, który jest łatwy do zrozumienia i utrzymania.

Refaktoryzacja kodu to kluczowy aspekt dobrego programowania. To proces ciągłego poprawiania i optymalizacji kodu, który pomaga utrzymać go w czystości i sprawia, że jest łatwiejszy do zrozumienia i utrzymania.

Mam nadzieję, że ten artykuł pomógł Ci zrozumieć, jak podejść do refaktoryzacji w PHP. Pamiętaj, że możesz stosować te techniki do dowolnego języka programowania. Zasady te są użyteczne, nawet jeśli nie programujesz w PHP.

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


Scroll to Top