Pisze ten temat, aby troche ponarzekac, podpytac, rozpoczac dyskusje. Pisze niezalogowany, poniewaz chce pozostac anonimowy, aby nie zostac na tym forum rozpoznany :]
Pracuje w firmie, ktora sprzedaje, calkiem spory system napisany w PHP w polaczeniu z PostgreSQL. Dziala on na naszym serwerze, wiec klient dostaje tylko konto i co miesiac oplaca abonament.
Jezeli chodzi o wyglad tego projektu, to nie bede sie wypowiadal, bo niektorym moze sie podobac - jest to kwestia gustu. Usability lezy:
- oparty na ramkach wiec URL w pasku adresowym sie nie zmienia
- ... tym samym F5 nie dziala
- toporne dzialanie Wstecz/Naprzod w niektorych przegladarkach, bo po nacisnieciu jakiegokolwiek przycisku strona przekierowanie do kolejnej strony jest przesylane POSTem, stad np. FF ciagle pyta o to, czy wyslac naglowki POST
- nie dziala w menu "Otworz w nowej karcie", bo nie ma "href" tylko "onclick"
- ... dalej nie bede pisal :P
Zobaczylem kod to sie przerazilem. Zadnego frameworka, pisany strukturalnie, kod PHP pomieszany z HTML, JavaScript, SQL a nawet CSS! Niektore pliki maja ponad 100kB a rekordowy 200kB! I wez tu Panie odnajdz sie w takim kodzie. Oczywiscie bezpieczenstwo lezy - kazdy formularz podatny na XSS, cholera wie jakie jeszcze bledy.
Fakt, ze baza danych spora, duzo insertow. Konwencja (zarowno w kodzie PHP jak i PostgreSQL): jezyk polski pomieszany z angielskim (tak wiec mamy tabele users oraz grupy). Oczywiscie w bazie zadnych triggerow, procedur, czy funkcji... no ale ok.
System pisany strukturalnie, stoi na kilku naprawde poteznych serwerach, a uzytkownikow ma mniej niz 4p ;) Bo oto przyklad jak rozwiazane jest stronnicowanie i sortowanie danych w tabeli: pobierana jest CALA zawartosc tabeli wedlug warunkow WHERE
jakie chcemy uzyskac (chociazby miala i 50k rekordow). Nastepnie wszystko przypisywane jest do tabeli PHP, a nastepnie taka tabela jest sortowana wedlug okreslonej kolumny, jakas funkcja sortujaca PHPa. O LIMIT
, czy OFFSET
w SQL nikt nie slyszal chyba. Wyobrazacie sobie wiec ile RAMu to zzera gdy mamy do czynienia z wieksza iloscia rekordow ;)
Ale dosyc juz marudzenia. Taki system kosztowal firme grupa kase, ok 100k zl. gdzie ja (moim skromnym zdaniem) napisalbym taki system 2x taniej i lepiej. Jednym slowem sprzedaja klientom GOWNO! Ale nikogo to nie obchodzi. Dziala, jest calkiem funkcjonalne (musze przyznac), wiec sie sprzedaje. Jak wolno dziala, to dokladamy nowy serwer i wszystko gra.
Czuje sie jak frajer, dbajac o jakosc swojego kodu, gdy ktos inny sprzedaje gorszy produkt (z punktu widzenia tego, co jest "pod maska") za wieksza kase niz ja. Czy w zwiazku z tym jest sens sie starac? Moze lepiej klepac swoje, nie zwracajac uwagi na jakosc. Na zasadzie "byleby dzialalo", 8h i ide do domu. Bo chyba z tego zalozenia wychodzili programisci tworzacy wspomniany przeze mnie projekt...