← Wróć do bloga

Mój program przeszedł 19 testów.
Pierwsza osoba, która go używała, znalazła to, czego nie łapał

30.09.2026
Ten wpis to archiwum newslettera. Czytaj oryginał na Substack →

Ciao! 🇵🇱🇮🇹

Wpadł mi w ręce mem z Anakinem i Padmé, który streszcza jeden z moich ostatnich projektów lepiej niż cała dokumentacja. Ta dokumentacja zresztą też jest długa.

Lecimy z tematem 🚀


Cisza, która wyglądała jak sukces

Na stronie mojej wspólnoty modlitewnej jest formularz do wysyłania intencji. Zespół modli się za każdą przez cztery tygodnie. Część osób wraca po kilku dniach z tą samą prośbą, a osoba czytająca maile musiała pamiętać sama, co już było. Napisałem więc wtyczkę, która porównuje nową intencję z tymi z ostatnich 28 dni i przy podobnej dopisuje w temacie maila [PODOBNA do intencji z DD.MM]. Przeszła 19 przypadków testowych. Wdrożyłem.

Po trzech dniach przyszły pierwsze przekazane maile z dopiskiem, że ta intencja na pewno już była, a program tego nie pokazuje.

Objaw. Mail bez znacznika znaczy „nowa intencja”. Mail bez znacznika, bo program nie rozpoznał powtórki, wygląda identycznie. Obie sytuacje kończyły się tą samą ciszą, więc z mojej strony wszystko wyglądało dobrze.

Co się działo pod spodem. Program porównywał słowa. Moje testy też były zbudowane ze słów: brałem intencję, skracałem ją, zmieniałem końcówki. Ludzie tak nie piszą. Kto wraca z tą samą prośbą, pisze ją od nowa, innymi słowami. Przy jednej takiej parze pokrycie wyszło 40 procent przy progu 80. Jeden podpis wysłał osiem różnych intencji w dziesięć minut i żadna nie dostała znacznika. W drugą stronę też się sypało: słowo „Bożą” program wziął za imię i połączył ze sobą intencje, które nie miały ze sobą nic wspólnego.

Jak to wykryć u siebie. Jeśli masz cokolwiek, co oznacza wyjątki (duplikaty, podejrzane płatności, powtórzone zgłoszenia), policz, ile oznaczeń dało w pierwszym tygodniu. Zero przy prawdziwym ruchu powinno Cię zaniepokoić. Potem weź dane z produkcji, o których z głowy wiesz, co powinno zostać oznaczone, i przepuść je przez mechanizm jeszcze raz.

Jak naprawiłem. Progu nie ruszałem, bo zacząłby oznaczać rzeczy, które powtórką nie są. Dołożyłem osobne sygnały: powracające imiona w treści, ten sam podpis w polu „Imię”, a przy powtórce słowo w słowo godzinę pierwszego zgłoszenia. Formy „Boży”, „Bożą” i podobne trafiły na listę wykluczeń, wypisane w całości, bo po samym początku słowa odpadłaby też Bożena. Zmieniłem też sposób testowania: kopia wtyczki odtworzyła wszystkie 35 prawdziwych wpisów z rejestru, nie wysyłając przy tym ani jednego maila.

Czego to uczy. Przypadki testowe piszesz sam, więc sprawdzają, czy program rozumie Ciebie. Mechanizm, który milczy, gdy nic nie znajdzie, sprawdzaj na danych, w których wiesz, co powinien znaleźć, bo jego milczenie niczego nie dowodzi.


🛠️ Narzędzie

WP-CLI: wp eval-file plus filtr pre_option_

wp eval-file uruchamia plik PHP wewnątrz działającego WordPressa, z całym jego kodem i bazą, ale bez przeglądarki i bez formularza. Filtr pre_option_{nazwa} podsuwa funkcji get_option() Twoje dane w miejsce tych z bazy, więc kopia wtyczki czyta prawdziwy rejestr i nic do niego nie zapisuje. Tak odtworzyłem wszystkie 35 wpisów rejestru intencji na kopii z innym prefiksem funkcji i innym numerem formularza, żeby żaden testowy mail nie trafił do skrzynki zespołu. Polecam, bo to najtańszy sposób na przetestowanie wtyczki na danych z produkcji bez ruszania produkcji.

https://developer.wordpress.org/cli/commands/eval-file/


🌍 Ze świata


😄 Na koniec

Mem z Anakinem i Padmé: „Mam dobrą i złą wiadomość”, „Zacznij od złej”, „Nie działa”, „A dobra?”, „Zbudowaliśmy go”

U mnie kolejność była odwrotna: najpierw zbudowałem, a zła wiadomość przyszła mailem trzy dni później.


Jeśli ktoś w Twoim otoczeniu powinien to przeczytać, prześlij mu ten numer. To najlepsza forma wsparcia.

A jeśli wolisz wesprzeć bezpośrednio: postaw mi kawę.

Cieszę się, że tu jesteś! Aby nie przegapić kolejnych wpisów i pomóc mi tworzyć więcej takich treści, dołącz do grona subskrybentów. To nic nie kosztuje.

Dołącz do Marini Brief →