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
patrycjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 263
Pomógł: 0
Dołączył: 13.07.2003
Skąd: wawa

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


no to pozwole się wtrącić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
co do kodu autorstwa mojej firmy sądze że raczej nic poważnego nikt nam nie zarzuci (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
ale mam właśnie ostatnio doczynienia z takim kodem jaki opisał autor tematu, ba
nawet bałagan tam jest większy a serwis liczy miliony odsłon miesięcznie (średnio 5-7 mln), żadnych bardziej zaawansowanych mechanizmów, o jakimś keszowaniu nie wspomne, czy też o szablonikach, wszystko przemieszane na przemian (html/php/sql).
Długo się zastanawiałem jaka jest przyczyna takiego stanu rzeczy, i chyba już mam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Programista - nie - a dlaczego ma odpowiadać za coś co mu firma (projekt menedzer) każde skodować, i to najczęściej "na wczoraj" i chłopak zapierd.. jak wółka leśna, nie wiele mu płacą itd, ja bym się nie spuszczał nad takim rozwiązaniem i zrobił na szybko raz dwa i po sprawie,
Projekt Menedzer (w firmie sprzedającej rozwiązanie) - to właśnie on jest współ winny całej sytuacji, powinnien inaczej dzielić czas wśród pracowników, inaczej negocjować prace itd,
Dodatkowo firma która zamawiała oprogramowanie, no przepraszam bardzo czy przy zakupie rozwiązania za 200 tyś, robionego prawie rok, nie można wziąść dwóch nie zależnych malućkich firm (za 5 tyś) które by audytowały kod?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Tak więc moim zdaniem, w takich sytuacjach wina leży raczej pośrodku i trochę dalej od samego programisty, to PM ma obowiązek rozplanować prace tak aby było ok, i to firma zakupująca rozwiązanie ma obowiązek sprawdzić co kupuje.
Proponuję Hydepark nie php Pro (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
pzdr
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: 27.12.2025 - 09:30