Z zamiłowania tworzę strony internetowe. Moje teksty mają na celu opisanie
niektórych fragmentów internetu, którego ta strona jest częścią.
Konserwatywny, pewny siebie, niekonwencjonalny - to wady czy zalety? Sprawdź!
maciej łebkowski
Kilka godzin kodowania i kolejny raz przekonałem się, że nie ma dróg na skróty, prostszych rozwiązań czy wygodnych metod. Wszystko trzeba solidnie zakodować.
Już nie pamiętam czemu chciałem przebudować stronę domową. Pradowpodobnie dlatego, że była
"ciężka".
Musiałem ją trochę przerobić, żeby nadawała się do zbliżającego się wielkimi
krokami portfolio. Przy okazji trafiłem na, jaki mi się na początku wydawało, świetny sposób
pobierania
hierarchicznych danych z bazy MySQL (via). No to do roboty.
Zaczęło się strasznie wolno. Stworzenie nowego wirtualnego hosta, skopiowanie szablonów,
ustawianie konfiguracji i dopiero mogłem zacząć coś kodować. Przerabianie starego kodu wcale
mi się nie uśmiechało, ale głupio było z kolei wynajdować drugi raz koło, więc zabrałem się
za tą pół-przeróbkę.
Do tej pory dane zczytywałem z pliku tekstowego. Swoją drogą mechanizm zczytywania rekurencyjnych
danych z tej mojej tekstowej bazy zajął mi dobre 12 godzin ciągłego kodowania, bo uparłem się,
że ma wszystko robić w jednej pętli.
Tak, za wybryki trzeba płacić.
Pierwszy problem powstał przy próbie wyświetlenia danych. Niestety, baza była pusta. Trochę się
miotałem z tym wszystkim, ale zaraz zrobiłem stronę główną i mapę serwisu (tak, to było
osiągnięcie!), na których treścią było nieśmiertelne lorem ipsum.
Jako że ręczna edycja bazy nie wchodziła w grę (to już nie plik tekstowy w końcu) uznałem, że
bez CMSa ani rusz. Powstał szybciutko, taki fikuśny, z różnymi strzałkami i przełacznikami do
zmiany opcji i tak dalej. Na szczęście na tym etapie moim największym zmartwieniem było to, jak
ustawić elementy formy na stronie.
Można zobaczyć
zrzut ekranu.
Jak już sobie naklikałem jakąś bzdurną (ale hierarchiczną!) treść to mogłem zająć się mapą.
Ta oczywiście była bardziej oporna. No bo, pobieranie danych jednym zapytaniem może i jest fajne,
ale nikt nie pomyślał o tym, że ciężko jest z takiej struktury stworzyć drzewo. W moim boju nie
byłem nawet blisko rozwiązania. Wielokrotnie myślałem, że jest to coś podobnego do mojej
poprzedniej mapy serwisu, ale jak tylko próbowałem zastosować to, co wcześniej zakodowałem,
parser wpadał w nieskończoną pętlę lub robił coś równie śmiesznego.
Po długiej walce i wyniku nieskończoność do zera dla mojego przeciwnika, którym tego dnia były
nie tylko strony, nie tylko serwer, ale też same hierarchiczne dane i ich ułożenie w bazie,
skorzystałem z gotowego rozwiązania (którego notabene nie rozumiałem) zamieszczonego razem z
artykułem - sprawcą całego zła.
Kilka chwil później chciałem się uderzyć czymś cięzkim w głowę. Nadpisałem sobie plik ze skryptem mapy serwisu jakimś innym. Na szczęście zanim doszło do rękoczynów spróbowałem odtworzyć kod. Tu z pomocą przyszła mi moja pamięć, która okazała się nieoceniona, gdyż zrobiłem reprodukcję z dokładnością do dwóch literówek.
Niestety, moje tarzanie się po podłodze (czytaj: burza mózgu) miało się dopiero zacząć.
Otóż, uknułem sobie przechytry plan wyświetlania menu dla danej podstrony (być może nie jest
jasnym to, iż nieszczęsnymi danymi są właśnie kolejne podstrony lub mówiąc prościej: struktura
witryny). Zakładał on eliminacje z drzewa wszystkich wpisów o poziomie większym niż jeden.
Nie interesowały mnie żadne podmenu, stąd zdecydowałem się na takie cięcie gałęzi. I o ile
wychodować moje hierarchiczne drzewko nie było trudno, to okaleczenie go kosztowało mnie trochę
nerwów. I kiedy już radosny jak skowronek chciałem uruchomić skrypt okazało się, że działa to
dla podstron, ale nie dla linków, które są do bazy wstawiane w nieco inny sposób. Nie raz i
nie dwa razy miałem jeszcze przekląć minutę, w której zainteresowałem się artykułem!
Jednak chodzenie jak głupi po domu, tarzanie sie po nowym dywanie, picie Muszynianki w
nieprzyzwoitych ilościach i wypiekanie się na (pięknym dzisiaj) słoneczku wpłynęło na tyle dobrze
na moje procesy myślowe, że nie dalej jak po trzech godzinach ślęczenia nad kodem, w którym
tworzyłem niesłychane gęstwiny instrukcji warunkowych - cel został osiągnięty!
Niestety w/w aktywności musiały mieć również pewną dawkę negatywnego wpływu, gdyż nie uchroniłem się przed postępkiem bardzo nieracjonalnym. Otóż patrząc na to, co właśnie stworzyłem uznałem, że jest nieładne i po prostu upchnę te wredne linki do innej bazy, nie bawiąc się w ograniczanie zapytań (które na mojej bazie trwają tak długo, że pewnie i gdybym ich robił 20 razy więcej, to spowolnienia nie dałoby się zauważyć). Tak oto zostałem bez linków, za to w bojowym nastroju, aby kodować dalej.
Kolejna z moich dróg na skróty to obsługiwanie wszystkich zapytań przez jeden plik. Nie znając jednak lepszego sposóbu, podłączyłem sobie plik, który uruchamia się, gdy jakiejś strony nie ma na serwerze. I działało to bez zarzutu najmniejszego, jednak zapomniałem, że to rozwiązanie pozbawia mnie jakichkolwiek danych z tablic $_POST oraz $_GET. Tak więc dane wysyłane przez normalnych webmasterów przez adres, ja musiałem sprytnie ukryć przed nazwą podstrony. Mówiąc prościej, moje adresy rosną w stronę lewą (http://example.com/zmienna2/zmienna1/plik) miast w prawą (http://example.com/plik/raz/dwa). Ciekawa mi wyszła hybrydka, nie powiem.
I kiedy już wszystko miało być dobrze, spokojnie przepisywałem sobie dane ze starej bazy do nowej, zachciało mi się napisać oświadczenie o dostępności. Ten deserek, przy pisaniu którego wspomagałem się stronami Marka Pilgrima, Dave`a Shea oraz bliżej mi nie znanego Riddle wyszedł mi całkiem nieźle i uważam go za kolejny etap w moim tworzeniu stron www.
Nie na skróty! Powoli, do celu, bez kręcenia. Mniej stresu. Ufff...