skracam robotę, która zjada Ci dzień
przestrzeń 01

Opisy produktów do sklepu internetowego

Opisy, tytuły do wyszukiwarki, opisy zdjęć, kategorie, blog, kody kreskowe i galerie. Zapis idzie przez API prosto na żywy sklep, więc cała robota stoi na tym, żeby nie dało się go zepsuć po cichu.

Co potrafi

Karta na wzór
Układ i głos marki schodzą z żywej karty ze sklepu.

Fakty od producenta
Karta nie obieca niczego ponad to, co on podaje.

Zerowe stany i luki
Widać, co wisi bez towaru i czym różnią się dwa sklepy.

Zdjęcia, kody, partia
Wgrywam, porządkuję i wypycham za jednym razem.

karty i podstrony

Ten układ nie przyszedł z szablonu

Silnik sklepu daje pole na opis i na tym jego rola się kończy. To, co w tym polu stanie, piszę sam: własny HTML, własne klasy, własne kafelki. Nie jest to wtyczka do jednej platformy, tylko zwykły kod, więc przenosi się razem ze mną. Na karcie zestawu Yokaba siedzi 41 takich bloków, na stronie hurtowni w Zgierzu 82.

Jedna strona kategorii, 82 bloki

Ta strona powstała, bo punkt w Zgierzu potrzebował własnego wejścia, a nie dlatego, że chciałem mieć co pokazać. Kiedy zmieniają się godziny albo czas dojazdu, poprawiam jeden blok, nie przepisuję całości.

Drugą taką robię szybciej niż pierwszą, bo klocki już są. Na tym polega cała różnica między jedną ładną stroną a układem, który da się powtórzyć.

Ten sam wzór wchodzi na kolejne karty

Karta Yokaby jest wzorem, nie wyjątkiem. Narzędzie czyta ją z żywego sklepu i buduje następne w tym samym układzie, z tym samym zestawem klas.

Bez tego każda karta byłaby osobną robotą, a po trzydziestej przestałyby do siebie pasować. Przy katalogu, który liczy tysiące pozycji, zgodność układu jest ważniejsza niż uroda pojedynczej strony.

decyzje projektowe

Dlaczego zbudowałem to tak, a nie inaczej

Każda z tych decyzji wzięła się z pytania, ile kosztuje naprawa błędu, który ma zostać zatrzymany. Tam, gdzie naprawa jest tania i odwracalna, nie stawiam bramki, bo bramka też kosztuje.

Podgląd jest domyślny, zapis wymaga osobnej flagi

Narzędzie uruchomione bez dodatkowych argumentów niczego nie zapisuje. Pokazuje, co by zrobiło. Zapis to świadomy drugi ruch, nie domyślne zachowanie, bo cofnięcie zmiany na żywym sklepie wymaga drugiego wypchnięcia, a nie klawisza cofania.

Jednostką jest produkt, nie partia

Gdyby partia była niepodzielna, jeden zły opis zatrzymywałby czternaście dobrych albo, co gorsza, przechodziłby razem z nimi. Dlatego każda karta przechodzi warunki osobno. Wstrzymana karta niesie powód wstrzymania, więc wiadomo, co poprawić, bez zgadywania.

Po zapisie narzędzie czyta sklep z powrotem

Wysłanie żądania nie jest dowodem, że zmiana weszła. Po zapisie narzędzie pobiera kartę ze sklepu jeszcze raz i porównuje z tym, co miało tam trafić. Dopóki nie ma odczytu zwrotnego, zadanie jest wysłane, nie zrobione.

Warunek bez miary zostaje w tabeli jako dziura

Kuszące jest wykreślenie warunku, którego nie umiem zmierzyć. Wtedy tabela wygląda lepiej i kłamie. Każdy warunek ma jeden z trzech stanów: próg wyszedł z pomiaru, próg wpisany ręcznie do późniejszej kalibracji, albo miary nie ma wcale. Ten trzeci stan jest wypisany, nie ukryty, bo to on mówi, gdzie zostaje odpowiedzialność człowieka.

warunki

Co sprawdza automat, a gdzie musi patrzeć człowiek

Każdy warunek ma zapisane, czym go mierzę i jaki jest próg. Pokazuję też dziury, czyli rzeczy, których automat sprawdzić nie umie. To one wyznaczają, gdzie zostaje odpowiedzialność człowieka, więc ich nie chowam.

Żadne dwie karty z jednej partii nie niosą tego samego tekstuskalibrowanyporównanie tekstu bez znaczników, próg 0.80
Karta trzyma układ wzoru i nie wnosi własnego nagłówka H1skalibrowanyzgodność zestawu klas, zero brakujących, zero nadmiarowych
Proza karty jest napisana po polsku, z diakrytykamiskalibrowanyudział znaków diakrytycznych w tekście, próg 0.030, zero polskich słów pisanych bez ogonków
Skład podany przez producenta jest w karcie w całości i dokładnie razwpisany ręcznieciąg producenta zawiera się w karcie po normalizacji, liczba wystąpień w całym tekście równa 1
Karta nie obiecuje efektu, którego producent nie deklarujewpisany ręczniedopuszczalne efekty wyciągane ze strony producenta, słowo spoza tej listy zatrzymuje kartę
Meta mieści się w budżecie wyniku wyszukiwaniawpisany ręcznietytuł do 60 znaków, opis do 155
Opis zdjęcia zgadza się z tym, co na zdjęciu widaćdziura jawnaskrypt nie widzi obrazka, rozstrzyga człowiek przy przeglądzie galerii
Fakty w karcie są prawdziwe wobec strony producentadziura jawnapoza składem i efektem żadna bramka nie porównuje treści karty ze źródłem
skalibrowany próg wyszedł z pomiaru wpisany ręcznie próg wpisany, do skalibrowania dziura jawna miary nie ma, decyduje człowiek
na czym to pracuje

Nie na przykładowym sklepie, tylko na moim

Wszystko, co tu opisuję, powstało dla sochanails.pl, sklepu, który prowadzę z żoną. Sprzedajemy produkty do stylizacji paznokci stylistkom i salonom.

Sklep, w którym pracuję codziennie

Każda zmiana, którą tu opisuję, najpierw idzie tutaj. Dopiero potem trafia do tego tekstu.

Baner na tym sliderze to ten sam kadr, który pokazuję jako przykład pracy. Nie powstał do portfolio, tylko do sprzedaży, i stoi tam do dziś.

skala

Dwa sklepy, 5442 pozycje

sochanails.pl ma 4378 pozycji w katalogu, victoria-nails.pl kolejne 1064. Oba chodzą na tych samych narzędziach, więc poprawka zrobiona dla jednego działa w drugim.

rytm dnia

Katalog nie może stanąć w środku dnia

Jesteśmy oficjalnym dystrybutorem Victoria Vynn, Elarto i Makear, a zamówienie złożone do 14:00 wyjeżdża tego samego dnia. Narzędzie pracuje obok tego, nie zamiast tego.

stawka

Błąd nie ląduje w piaskownicy

Narzędzie, które psuje kartę produktu, psuje ją w sklepie, z którego żyję. Stąd hamulce opisane wyżej i upór przy odczycie zwrotnym po zapisie.

skala
21 693linii kodu

Nie licznik dla ozdoby. Tyle miejsca zajmuje opisanie wszystkich przypadków, w których zapis ma się zatrzymać zamiast przejść.

112plików

Każdy robi jedną rzecz. Kod, który pyta sklep o dane, jest osobno od kodu, który rozstrzyga, czy zapis wolno wykonać.

47plików testów

Sprawdzają narzędzie, zanim dotknie sklepu. Zmiana, przez którą któryś test przestaje przechodzić, nie idzie dalej.

2sklepy na utrzymaniu

Te same narzędzia pracują na dwóch różnych katalogach, więc nie są zszyte z jednym konkretnym sklepem.