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
 
Start new topic
Odpowiedzi
xarr
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 5.12.2004

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


Ogolnie temat fajny i imo potrzebny. Sam piszac zwracam uwage na poprawnosc kodu, ktora mniej lub bardziej wplywa na wydajnosc badz bezpieczenstwo skryptu. Nie zawsze jednak tak bylo i podejrzewam, ze jest to normalny element nauki. Nie kazdy nauczywszy sie podstaw, pozbywa sie tych starych nawykow (srodkow) piszac powazniejsze rzeczy. Mysle ze przykladem moze byc tu podejscie wiekszosci webmasterow do htmla, czyli podstaw prezentacji danych na www. Widac tutaj jak ludzie chetnie "updatuja" info.... jak dziala to dziala, nie wazne jak. Mialem raz taki dosyc wyrazny przyklad jak witryne ladujaca sie w 5x sekund mozna zoptymalizowac niemal samym htmlem i css aby ladowala sie 60% szybciej. No, ale wracajac do tematu... mysle ze potrzebne sa informacje w polskim internecie na temat poprawnego pisania. Takie vademecum i wbrew pozorom najprawdopodobniej dotyczylo by to zaawansowanych koderow i takowi najwiecej by z tego wyniesli (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czlowiek nigdy nie wie wszystkiego, a nawet siedzac w jednym jezyku lata, mozna sie naciac na swojej niewiedzy.
Mozna by stworzyc takie subforum albo moze nawet i dzial na stronce php.pl, ktory pelnil by role uswiadamiania ludzi o koniecznosci poprawnej pisowni kodu lub tez ewentualnym jego optymalizowaniu. Dosyc dlugo czytam juz to forum i www, i wiem ze nie lubi sie tutaj "latwizny i lenistwa". To dobrze, ale teksty czy nawet linki do tekstow oraz jakies krotkie przyklady mogly by trafic do wielu glow.
Oczywiscie jak to bywa w wiekszosci wypadkow latwo sie gada o tym by cos zrobic, cos zmienic, ze jest zle, ze niedobrze.... trudniej jednak stawac naprzeciw. Tak czy inaczej to bardzo ciekawy problem, a proby jego rozwiazania mogly by byc pouczajace takze dla samych "poprawnie" kodujacych.

Pozdrowka

Ten post edytował |[xarr]| 16.12.2004, 12:55:15
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 11:08