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. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 1 Dołączył: 19.09.2003 Skąd: Lublin Ostrzeżenie: (0%)
|
Cytat(halfik @ 2004-12-13 16:18:43) ogolnie w sprawie: czasem nie warto sprawdzac pewnych rzeczy, wszystki zalezy od kontekstu, jesli mamy 100% pewnosc ze nie musimy bo ... to po co? A ja powiem tak: "Rozwój cywilizacji informatycznej to wyścig między programistami, którzy wytwarzają coraz łatwiejsze programy użytkowe dla idiotów, a światem produkującym coraz lepszych gatunkowo idiotów." (patrz moja sygnaturka) Uważam, że nigdy nie możesz mieć 100% pewności, że nie musisz czegoś sprawdzać. Użytkownicy niektórych programów potrafią robić tak głupie rzeczy, że w głowie to się nie mieści. Jedynymi danymi, których nie musisz dokładnie sprawdzać są te, które sam generujesz i sam wysyłasz. Cytat(Vengeance @ 2004-12-16 15:00:16) tylko, że czasem te 30% to tak na prawde 0,3 sekundy ;] I jak dla mnie to zbyt mały zysk aby o niego "walczyć" Pomnóż sobie 0,3 sekundy przez 1000 wyświetleń w ciągu godziny i już dostajesz oszczędność 5 minut czasu procesora. A zapewniam Cię, że 1000 wyświetleń strony w ciągu godziny to wcale nie jest ogromny serwis. A teraz do rzeczy: php jest przez wiele osób postrzegane jako "jakiśtam wynalazek do pisania skryptów na strony". Sądzę, że właśnie dlatego powstają takie kalekie programy jak wspomniane wyżej, w których warningi i noticy zajmują dwie strony. Jak już kilka osób przyznało php jest językiem, który "zachęca" do bałaganiarstwa i ja równiż się z tym zgadzam. Niestety nie możemy nic na to nie poradzić. Jedynym wyjściem jest zabranie się za siebie i pisanie poprawnego kodu, zgodnego z jakimś przyjętym standardem oraz uświadamianie kogo się da, że php jest pełnoprawnym Językiem Programowania a nie jakimśtam wynalazkiem do pisania "skrypcików" na "stronkę" i są tu dokładnie takie same reguły jak w każdym innym Języku. Jedyną różnicą jest to, że niektóre z nich są ukryte przed programistą, co wcale nie oznacza, że możemy się do nich nie stosować. Ten post edytował Jojo 16.12.2004, 15:09:10 |
|
|
|
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
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 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 22:25 |