Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trup w szafie - poprawność kodu PHP
hombrerro
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 31.07.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Od jakiegoś czasu współpracuje z dość dużą firmą hostingową, chyba ogólnie znaną. Praca polega na przepisaniu autorskiego (tzn. powstalego wlasnie w tej firmie) kodu systemu administracji kontami użytkowników. Dostałem konto na specjalnym developersko-testowym serwerze będącym "kopią serwera produkcyjnego" z opcjami "developerskimi". Opcja developerska polegała na włączeniu wyświetlania błędów na ekran a nie ich logowaniu.

Tyle tytułem wstępu.

Jak na serwer testowy monitowanie tylko o błędach typu E_ERROR jest dość odważnym posunięciem a tak właśnie było ustawione. Nikomu z wesołych programistów z firmy to najwyrazniej nie przeszkadzalo.
Ja jednak poszukałem dziury w całym, szczególnie po wstępnej analizie kilku plików, i wyprosiłem zmianę ustawień serwera.
Warningi i notice zajmowały srednio na kazdej ze stron około 2 ekranów.

Tyle tytułem rozwinięcia.

Błędy typu E_NOTICE i E_WARNING to też są błędy w kodzie i to czasem poważne i groźne.
Jednak mało kto zwraca na to uwagę chociaż np. w innych językach tego typu błędy są traktowane jako krytyczne zatrzymujące wykonywanie kodu.
php swą popularność (zasłużoną) uzyskało właśnie dzięki uproszczeniu zasad programowania, nie ma kontroli typów zmiennych, deklaracji zmiennych, gospodarowania pamięcią itd. Każdy może przeczytać byle jaki "tutorial" w internecie i programować. Najczęściej php jest pierwszym językiem z jakim takie osoby się zetknęły.
I to jest właśnie bół. php moim zdaniem nie jest wcale dobrym językiem dla początkujących gdyż nie narzuca ścisłych zasad programowania, nie wymaga "sterylności" kodu. Jaki procent osób piszących skrypty php przejmuje się np. wykorzystaniem zasobów systemowych? W php można olewać pewne reguły i wszystko działa na "stronce". I działa i działa i działa, pojawiają się nowe rozwiązania: bazy danych, szablony, CMSXFCPSy czy cokolwiek a nawyki a właściwiie ich brak zostają na zawsze. I są tak zwanym trupem w szafie.
Później tak się życie potoczy, że może trzeba będzie zrobić coś poważniejszego, jakąś "profeskę". Oczywiście zostanie zrobione, nawet fajnie będzie wyglądać...
I nawet będzie działać, tylko ( życie się toczy ) że wkrótce z aplikacji zacznie korzystać 100 razy więcej osób niż się to zakładało i zaczną się schody. Bo wszystko zacznie się sypać, zapychać, zawieszać, zapętlać a serwer zacznie umierać.

Przykład "systemu administracji" pokazuje to wszystko w praktyce.
I tak:
inkrementowane zmienne nie mają początkowej wartości ( a co najśmieszniejsze ta sama zmienna jest używana kilkakrotnie w module i jest inkrementowana od niewiadomo jakich wartości. Jedna z takich praktych powodowała błąd widoczny dla użytkowników)
- zmienne pochodzące z tablic $_POST, $_GET, $_COOKIE są ledwo co sprawdzane - zakłada się tylko, że zmienna jest albo jej nie ma. To są jedyne dwa stany istniejące w świadomości programistów.
- indeksy w tablicach są stałymi: $tablica[cos_tam]
- funkcje coś robią ale nie wiadomo czy im się udało
- itd.

Ale niestety nie jedyny przykład. Jakiś miesiąc temu instalowałem gdzieś system CMS - zdaje się że było to Envolution - też pojawiło się pare takich "gniotów" choć poziom zdecydowanie wyższy (i tu jest to chyba nieuwaga a nie olewactwo).

Dodatkowo dzisiaj ściągnąłem sobie ze strony php.skryptoteka.pl kilka okazów - no i to już jest "wolna amerykanka", oprócz kilku wyjątków, bałagan totalny. A najgorsze jest to, że ktoś sobie napisze "prosty licznik odwiedzin" który działa chyba tylko dlatego, że ma szczęście, wydali go do sieci z której pobierze go 1000 osób i wszyscy będą już "prosty licznik odwiedzin" mieli za sobą. A autor takiego oprogramowania zyska poważanie w środowisku (1000 downloadów).

Przepraszam jeżeli kogoś znudziłem ale postanowiłem dać upust swoim frustracjom spowodowanym poprawianiem bylejakiego kodu od patrzenia na który aż oczy bolą.
Wysłałem ten post na forum PRO bo uważam, że poprawne kodowanie jest największym profesjonalizmem. Myślę, że powinno się na to zwracać uwagę wielu osobom korzystającym z tego portalu - szczególnie początkującym. A tak przy okazji: fajnie w sumie, że tak gęsto i często odsyłacie błądzących do manuala może gdyby zapoznać się z nim a nie z tutorialem w sieci jakość kodu trochę by się podniosła.
Go to the top of the page
+Quote Post

Posty w temacie
- hombrerro   Trup w szafie - poprawność kodu PHP   12.12.2004, 14:58:39
- - sopel   bardzo ładnie powiedzianie. myślę, że powinno to n...   12.12.2004, 15:27:09
- - .dragonfly   Bardzo duza wage przywiazuje do czystosci i steryl...   12.12.2004, 16:50:16
- - shima   Nabycie dobrych przyzwyczajeń wymaga napisania set...   12.12.2004, 17:21:43
- - czachor   Świetny tekst @hombrerro. IMO wydaje mi się, że ta...   12.12.2004, 17:26:12
- - shima   Cytat(czachor @ 2004-12-12 17:26:12)Jeszcze c...   12.12.2004, 17:35:50
- - czachor   Trochę przesadziłem, fakt, ale chodziło mi właśnie...   12.12.2004, 17:41:09
- - pillot   no a nie myślicie, że takie luzackie podejście do ...   12.12.2004, 21:17:44
- - Strzałka   No dobrze. A jeżeli mam taki bardzo prosty skrypt:...   12.12.2004, 22:21:26
- - hombrerro   Powinieneś najpierw sprawdzić czy jest wogóle coś ...   12.12.2004, 23:18:48
- - Krolik   Swietny tekst, @hombrerro. I na dodatek aktualny n...   13.12.2004, 09:38:12
- - shima   Cytat(Krolik @ 2004-12-13 09:38:12) Cytat(.....   13.12.2004, 10:33:42
- - patrycjusz   no to pozwole się wtrącić co do kodu autorstwa mo...   13.12.2004, 12:01:29
- - halfik   hmm... a i owszem, ze roznego rodzaju skrypty na s...   13.12.2004, 15:18:43
- - shima   Cytatale z drugiej strony np. pisze dla roznych lu...   13.12.2004, 15:27:16
- - Krolik   CytatCytat(...) to w C/C++/Pascalu moze miec oplak...   14.12.2004, 12:11:33
- - halfik   Cytat(shima @ 2004-12-13 16:27:16)czyli pomag...   15.12.2004, 11:54:15
- - xarr   Ogolnie temat fajny i imo potrzebny. Sam piszac zw...   16.12.2004, 12:54:22
- - bela_666   Cytatpoprawnosc kodu, ktora mniej lub bardziej wpl...   16.12.2004, 13:45:09
- - Vengeance   tylko, że czasem te 30% to tak na prawde 0,3 sekun...   16.12.2004, 14:00:16
- - dr_bonzo   Cytatprzeprowadzono testy i kod bez żadnych białyc...   16.12.2004, 14:56:56
- - Jojo   Cytat(halfik @ 2004-12-13 16:18:43)ogolnie w ...   16.12.2004, 15:04:27
- - DeyV   @bela_666 - a ja gdzieś słyszałem o jakimś słynnym...   16.12.2004, 15:05:20
- - Vengeance   Cytat(Jojo @ 2004-12-16 16:04:27)Cytat(Vengea...   16.12.2004, 15:27:41
- - sf   E, 30%? Nie chce mi się wierzyć. Pozatm zawsze moż...   16.12.2004, 16:00:43
- - xarr   Przyklad z html(dokladnie xhtml) + css i finalnie ...   16.12.2004, 18:32:04
- - Dabroz   Hmm, IMHO kolorowanie składni i robienie ładnych w...   19.12.2004, 14:00:50
- - shima   Cytat(sf @ 2004-12-16 16:00:43)(...) Tylko ja...   19.12.2004, 14:10:13


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 20:17