Żenujący „developerzy”

2

Dostałem dzisiaj wczoraj za zadanie zmienić pewną statyczną część strony mojego szefa na dynamiczną – dokładniej mowa o generatorze przykładowych, losowych pożyczek wraz z przykładowymi ratami na przykładowym, losowym okresie czasu.. i tak wygenerować dziesięć wierszy w formie tabelki. W miarę zaokrąglone sumy, roczne przeskoki w ilości rat, obliczenie odsetek przy oprocentowaniu rocznym.. Zdaje się tylko, że matematyka jest tutaj najcięższa.

O coś takiego (stara wersja)

Oczywiście strona robiona przez jakąś ‚firmę’ z jastrzębia trochę czasu temu. Dostęp do serwera jest, plików, zadanie nie trudne, do napisania i zrealizowania w godzinę.. mogłoby się tak wydawać. Napisanie, przetestowanie kodu i stylowanie zajęło góra 30 minut – o tym napiszę w innym poście – resztę i większość czasu zajęło mi patrzenie i myślenie nad tworem, jaki ujrzały moje oczy…

Problem pierwszy: wtf… to jest jeden wielki obrazek

O jakież było moje zdziwienie, kiedy spojrzałem w kod strony głównej na wstępie…

Jeśli ktoś tego nie widzi to opiszę to słownie: O jakim kurwa debilem trzeba być, aby całą główną treść strony zrobić z pociętych obrazków! Dlaczego?

  • Treść się w ogóle nie indeksuje
  • Nie skopiuję jej w postaci tekstu
  • jak i wpierdala to znacznie więcej transferu, w końcu obrazek, pisałem kiedyś o tworzeniu mobilnych stron
  • Bliskie zeru możliwości edycji
  • I tak oto nie mogę zamienić starej tabelki na nową, dynamiczną
  • i 100 innych wad

Po prostu tak się nie robi, szczególnie, że tekst, bloki można zamienić na HTML + CSS – byłoby spoko, jeśli tylko górne, zielone belki byłyby obrazkami. W szkole podstawowej potrafiłem już lepsze strony robić, a tu proszę: popis i arcydzieło tego „programisty” w postaci stworzenia tak zaawansowanej (głupotą) strony. Na domiar złego, jakby tego było mało.. Lewa kolumna też jest jednym wielkim obrazkiem.

Drugi problemik: struktura plików i „szablony” stron

No przecież, że napiszę zwykły generator tekstu w PHP wraz z odpowiednimi znacznikami, a wszystko piękniej sformatuję i użyję CSS’a, a nie cech tagów HTML. Generator tego jednego obrazka nie wchodzi w grę – serwer zabity przy większej ilości odwiedzin, a po za tym to nie captcha i po prostu.. tak się nie robi.

Ok, skrypt jest już gotowy od jakiegoś czasu.. tylko, że on jest w PHP, a „struktura” tego „systemu” strony nie pozwala mi go przepuścić przez parser, jeśli chcę go umieścić w obu plikach. index.html już sobie podarowałem na jutro do dziś z jednym wielkim obrazkiem, jest jeszcze podstrona chce_kase.html – tu już lepiej to wygląda.

Szybkie sprawdzenie, czy .html faktycznie nie są parsowane.. nie są. Kurde! Nie będę dodawał handlera do htaccess, za duże prawdopodobieństwo, że coś się zjebie, a po za tym nigdy nie lubiłem operować komendami apache, a modyfikowanie ustawień serwera też nie wchodzi w grę.. nie napisałem tego jeszcze, ale chciałem dokonać tej modyfikacji przy jak najmniejszej  ingerencji w to programistyczne cudo. Po za tym popatrzcie na tą logiczną i jakże zaawansowaną strukturę plików:

Struktura plików arcydzieła. 2*index, 2*pozyczka...

Dwa indeksy? Tylko.. który jest serwowany tak na prawdę? W przypadku serwera na którym to leży: najpierw poleciał index.html.. i dobrze, bo tam znajduje się ten ‚faktyczny’ index.

Wywołanie /index.php owocuje czymś takim

Problem jednak pojawił się, jak stronę ściągnąłem do siebie na maszynę, odpaliłem przez mój pakiet xampp’a.. no i jeb. „Brak strony…” – tzn taki śmieszy „szablon” strony błędu (która i tak źle wyglądała – widzisz go wyżej) został requie()‚bnięty przez index.php, bo nie podano id strony który wyszukiwany jest w… tablicy. O jakiż żenujący sposób (i brzydko sformatowany) „definiowania” możliwych do załączenia stron.

Uczmy się kodzić od tego człeka

Aha, wiedz jeszcze, że to co widzisz na obrazku wyżej.. to cały plik index.php, bez ostatnich 2-3 linijek. Ciekaw jestem ile dni nad tym pracował.

Nie najlepsze rozwiązanie, ale i tak lepsze niż cokolwiek tego tworu (wczoraj)

Postanowiłem ostatecznie, że miejsce takiej tabelki zastąpię iframe’em z wyświetlaniem zewnętrznego pliku .php. Nie chciałem się bawić w przebudowę .html na .php – cholera wie co by się wydarzyło przy tym złego. No cóż, bezpieczny sposób „uruchomienia” skryptu php przy tym nie zagłębiając się w większe modyfikacje. Wystylizować, aby nie było widać krawędzi, podać odpowiednie wymiary i wycentrować.. ostatecznie się udało, a efekt wygląda tak:

Mimo wszystko nie odpowiadam za to, co jest NAD i POD tabelką..

I w czym się różni od poprzedniego? Stylowane w CSS: wyobraź sobie, że dolna czerwona belka była o tej samej długości plikiem JPG. Oczywiście zastąpiłem to 11px (dokładnie sprawdzone!) solid borderem z tym samym kolorem… kilka kilobajtów transferu i żądanie mniej do serwera. Po za tym nie jest to już tabelka w tabelce, gdzie wierszami były obrazki, a blok z obrazkami i.. tabelką – no przecież powinno tak być ;-). No i najważniejsze: dynamicznie, losowo generowana treść.

Pozostały jednak błędy, w sumie to jeden: na obrazkach znajduje się border przy bocznych krawędziach.. nie border w CSS, a border w JPG.. nie miałem już czasu zamalowywać ich na biało, tak więc niestety tak zostało.. – aż do dzisiaj

To było w czwartek, wczoraj. Dziś jest nowy dzień

Ostatecznie znalazłem godzinkę, aby przerobić stronę główną tego wybryku dnia dzisiejszego. Jak nie trudno się domyślić, wystarczyło otworzyć edytorem index.html i wprowadzić odpowiednie modyfikacje – jakież to wszystko logiczne i poskładane w spójną całość.

Odnajdź się na pierwszy rzut oka w tym gównie kodu

Wyleciały całe obrazki, wycinałem z marnej jakości JPG’ów, to, czego nie mogłem wyprodukować. W zamian pojawił się <div> a w nim albo <ul>, <table> albo <ol>.. – wedle wymagań każdego boxa. Ostatecznie strona główna poznała istnienie zewnętrznego CSS, bo w nim były te boksy stylowane i po wszystkim efekt wygląda moim zdaniem całkiem podobnie.

Porównanie przed i po

Spoko, szczególnie widać różnicę przy czcionce na wypunktowaniach i listach – cóż, nie jestem w stanie się domyślić jaki krój został zastosowany. Po za tym strona ta nie jest warta jakichś większych ingerencji w stylu @font-face itd. Mimo wszystko szef ucieszony, ja trochę też. Poprawki zakończone.

Na pohybel, kwiatki bohatera tego postu

Pozostańmy jeszcze przy profesjonaliźmie ów bardzo kompetentnej „firmy” jak i „programisty” – jej przedstawiciela. Teraz sobie pojeżdżę po ludziach-debilach, co tak bardzo uwielbiam czynić.

HTML sprzed 10 latu i dalej

Zaglądając w źródło strony (nawet na obrazku wyżej) widzimy to, co było popularne właśnie z dekadę temu:

  • struktura strony oparta o tabelkach, chyba nigdzie nie można znaleźć żadnego znacznika <div>…
  • znalazłem nawet powtórzony <body>
  • kod, który nigdy się chyba nie uda zwalidować, nigdy nie zbliży się do standardu
  • błędne kodowanie – widać na screenie wyżej (kod również pewnie nie słyszał o czymś takim jak utf)
  • kod, który nigdy nie widział i nie dowie się pewnie o czymś takim jak zewnętrzny CSS
  • wszystko stylowane jest przez „wewnętrzne” cechy tagu html, czasem pojawia się style=””
  • no i ciekawe meta:
    <meta name="description" content="???">
    <meta name="keywords" content="??? ">
    <meta name="Author" content=" :: ::">

Debilna struktura plików

W sumie to poruszyłem ten temat już wyżej.. Po za tym foldery z obrazkami pozwalają na listowanie (brak chociażby pustego index.html), gdyby nie to, że blokuje je głupio napisany RewriteRule. Autorowi chyba też zabrakło pomysłu do wymyślania trzeciej nazwy zmiennej $_GET’a,

RewriteEngine On
RewriteBase /~formy
RewriteCond %{HTTP_HOST} !^www.stronaG1.pl [NC]
RewriteRule ([^/]+)/([^/]+)/([^/]+).html$ index.php?id=$1&opt=$2&c=$3 [QSA]
RewriteRule ([^/]+)/([^/]+).html$ index.php?id=$1&opt=$2&c=0 [QSA]
RewriteRule ([^/]+).html$ index.php?id=$1&opt=0&c=0 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Strona w HTML

No nie oszukujmy się, ale chyba każdy dzisiejszy darmowy hosting pozwala na skrypty PHP – czemuż by ich nie wykorzystać? Chociaż do najprostszego include(‚header.php’); ? Jedna linijka kodu, n-stron mniej do modyfikacji nagłówka. PHP jest, ale tylko do tego głupiego include’owania stron czy formularzy.. zgaduje, że dziurawych jak sito, bo nie zaglądałem w te sfery strony jeszcze…

Zajrzałem w formularze: O dziwo trafia się tam htmlspecialchars() i mysql_escape_string.. szkoda, że tej drugiej już od dawna nie zaleca się używać. Mimo wszystko wygląda to jak kod API dotpay’a – funkcje w których widzę te dwie wyżej wypisane nazwane są.. w angielskim języku: nasz bohater nie trudziłby się przecież tak! Mimo wszystko formularze są jakoś burdelowato generowane, zdaje się że zaczerpnięto trochę esencji z Zend’a.. no ale lepiej tego nie pokazuje, kto wie co tam się czai.

Zaawansowany hover na stronie

Możesz wierzyć lub nie, ale po najechaniu myszką na menu.. są akcje w stylu hover! Jak on do cholery to zrobił bez wykorzystania pseudoselektora :hover w CSS ?!?!!?

Pro hover

Brak odpowiedniej kompresji obrazków

Korzystając z umiejętności autora w jakiejkolwiek optymalizacji dowiadujemy się, że ten obrazek:

Ok 66KB

waży około 66KB. Jedyna modyfikacja, jaką w nim wprowadziłem, to usunąłem bordery na krawędziach o których żaliłem się trochę postu wyżej. Efekt ten sam, a mój zapis waży z tego co pamiętam góra 17KB. Jest różnica? Bordery również dzisiaj w końcu mogłem osiągnąć przez CSS.

Narodowe składanie liter

Może to ja jestem tylko taki dziwny, ale cholernie źle moim zdaniem wygląda nazewnictwo zmiennych, funkcji, plików itp. w języku ojczystym, innym od angielskiego. Tak oto w legendarnym index.php znajduje się funkcja „Polacz()”, która i tak jest skopiowana do innych plików, do tego koszmarnie wygląda:

Jak jest, a jak mniej więcej powinno być

Wracając do narodowości: nie tylko ja jestem zdania, że powinno się pisać w lingua france – języku angielskim. Co z tego jeśli dla Ciebie to jest

jak dla osoby innej narodowości która czyta twój durny kod wszystko wygląda tak

Widziałeś, by jakaś większa programistyczna biblioteka była w języku polskim? Ja nie..

Strukturalny kod i ohydny styl

Kolejne sorry, ale dzisiaj nie ma praktycznie możliwości większego pisania czegokolwiek bez użycia OO.  Spoko, nie popieram pełnej obiektowości jak to jest np. w C#, ale jeśli mam w C++ możliwość tworzenia klas, to jasne, że z takiej możliwości skorzystam. Szczególnie, że pierwsze opcje tworzenia obiektów zaczęły się pojawiać już w PHP3 gdzieś w 1998 roku. Całkowicie zmodernizowany pod tym względem PHP5 jest już na rynku ponad 6 lat, a ja tu widzę nadal funkcję jak w akapicie wyżej: Polacz() leżącą sobie spokojnie na początku w kilku plikach. Spoko, jak wolisz. Ja sam póki co mam tak debilnie rozwiązane zabijanie sesji użytkownika w aktualnym projekcie.. jednak zamierzam to przebudować. Ty nie zdołałeś.

Po za tym nasz bohater chyba nie wie o czymś takim jak białe, niezależne znaki. Szczególnie tabulatory są wykorzystywane przy upiększaniu kodu, by móc go za rok z łatwością przeczytać. Chyba widać różnicę między tym:

$webs = array(
 'chce_kase'=>'chce_kase.html',
 'index'=>'index.html',
 'kontakt'=>'kontakt.html',
 'polityka'=>'polityka.html',
 'konto'=>'konto.php',
 'lokata'=>'lokata.html',
 'pozyczka'=>'pozyczka.php',
 'regulamin'=>'regulamin.html',
 'forum'=>'forum.html',
 'wez_lokate'=>'wez_lokate.php'
);

a tym:

$webs = array(
 'chce_kase'	=>	'chce_kase.html',
 'index'		=>	'index.html',
 'kontakt'	=>	'kontakt.html',
 'polityka'	=>	'polityka.html',
 'konto'		=>	'konto.php',
 'lokata'	=>	'lokata.html',
 'pozyczka'	=>	'pozyczka.php',
 'regulamin'	=>	'regulamin.html',
 'forum'		=>	'forum.html',
 'wez_lokate'=>	'wez_lokate.php'
);

„Kiedyś zmieniały się stawki w tabelce”

A ja myślę: Hęęę?!!? Jakim cudem niby. O dziwo chyba odnalazłem rozwiązanie tej zagadki.. czemu by nie wsadzić czegoś takiego na stronę:

JS na najwyższym poziomie jak zwykle

Przecież JS rzondzi!

Autorstwo

Zrobię teraz w końcu komuś antyreklamę. Sorry, ale za takie błędy się odpowiada, albo po prostu nie zasyfia się tym internetu / nie wykonuje się tego zawodowo. W jakże genialnym index.php pierwsze linijki to komentarze a tam.. stopka autora! Dobrze, że chociaż wiedział, by dać to na górze, zanim dojechałbym do dolnych partii plików, wypaliłoby mi już oczy. W sumie to dziwię się też, jak autor w ogóle ośmielił się podpisywać pod takim dziełem..

Autor całego tego przedstawienia

Po za tym pierwsze znaczniki w źródle stron wyglądają tak:

<html xmlns="http://www.artday.pl" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">

Zaraz zaraz.. tam jest jakiś link!

Żenująca strona „agencji”

Skoro już dotarliśmy do bohaterów tego posta: „Agencji artday.pl„, to przyznam szczerze, że chyba ona właśnie stoi teraz u mnie na pierwszym miejscu w kategorii żenujących agencji, zaraz po tej z którą walczyłem jakiś czas temu. Co dziwne, nigdy nie uważałem swoich umiejętności za jakieś mega wygórowane, aż tak, bym miał zakładać swoją agencję i firmę. Żenuje mnie, że ludzie z wiedzą w tej kategorii na poziomie mojego garncarstwa zajmują się takimi rzeczami. Jeszcze bardziej mi się przykro robi, jeśli myślę, że mogą od takiego zlecenia brać nawet 2 000zł i są uważani za profesjonalistów, dostają najwyższe oceny w rankingach, a ja biedny, bardziej kompetentny… (student chciałoby się napisać) informatyk robię za durne kilkaset złotych takie rzeczy i jeszcze dostaje zjeby za to i tamto, muszę walczyć o swoje.

Strona agencji jest żenująca, bo jest cholernie podobna do strony którą dzisiaj przerabiałem. Developerze, zadanie domowe: sprawdź sam i wypisz wszystkie kwiatki w komentarzach, które dostrzeżesz na artday.pl.. bo ja już nie mam siły na dziś, a po 8h pracy chciałbym w końcu polatać myślami gdzieś po za developing..

Tagi: , , , , , , , ,

Komentarze 2 komentarze

Za dużo tego aby wypisywać. Wystarczy chyba tylko podać jako przykład „geniuszu”:

>.<
Coś nie ogarnia nowych linii w komentarzach?
height"20%"

Skomentuj