Autor Zpráva
Sylar
Profil
Zdravím,
plánuji předělat strukturu vlastního RS, protože s přibývajícími fcemi začíná jeho rychlost klesat. Existuje nějaká obecně známá správná struktura, která je ověřená a správné RS by se jí mělo držet?

Mě napadla takováto:
na index.php by se zavolala třída class.Core.php, která by zjistila dle URL adresy, jestli se uživatel snaží dostat na stránku či do adminsitrace. Podle toho by se zavolala třída class.Front nebo class.Back.
Třída class.Back.php by obsahovala pouze seznam podmínek if (isset($_GE['promenna'])) zavolej třídu class.Update nebo class.Insert nebo class.Menu apod. Tyto třídy by pak obsahovali jednotlivé metody, které by provedly nějakou akci, např. vygenerovaly menu a vrátili zpět. Vedle každé třídy s těmito metodami, by ještě byla třída s dotazy pro databázi. Na konci třídy class.Back by se pouze includla šablona, ve které by se už jen vše vypsalo.
Odkazy by pak byly např. index.php?page=stranky&update=32, ze kterých by systém poznal, že má editovat položku 32 z modulu "stranky" např. Jediné co by se vždy provádělo by bylo 5 - 10 - 20 podmínek v souboru class.Back. Ale obyčejné IFy (i když by jich bylo třeba 20) by zase systém tolik zpomalit neměly nebo ano?

Myslíte, že je to je obstojná struktura RS nebo úplně špatně?
Yuhů
Profil
Asi to není špatně. Každý by si měl hlavně navrhnout systém tak, aby se mu dobře programoval a aby ho to bavilo.

Podle mého názoru téměř vůbec nezáleží na rychlosti backendu, tedy editování stránek. To ať je klidně pomalé, protože se volá zřídka (autorů je méně než čtenářů). Naopak bych se snažil optimalizovat rychlost výdeje pro čtenáře. Z toho důvodu trochu váhám nad onou úvodní podmínkou, kdy se podle URL bude rozhodovat, jestli jít do administrace nebo ne. Vím, je to jenom jedna podmínka, ale stejně duplikuje činnost http serveru. Přesně takovou věc dělá http server, že podle URL optimalizovaně rozhoduje, jaký poskytne obsah.

Ve svém RS bych se asi mnohem víc snažil o optimalizaci URL, z mého, více marketingového, pohledu je to důležitější.
Sylar
Profil
Yuhů:
děkuji za tvůj názor. Souhlasím, že je mnohem důležitější soustředit se na optimalizaci rychlosti front-endu, přesto pracovat s administraci, kde trvá načtení modulu několik sekund (velká nadsázka) je otravné.
Tu úvodní podmínku bys tedy odstranil například tím, že adresy typu /stranka/ by šly na front-end a adresy typu ?stranka=administrace bys rovnou posílal na back-end?

Přepisuji nyní staré RS a přesto, že využívám více než dvakrát méně paměti, tak je nový systém o něco málo pomalejší. Hovoříme zde o setinách sekundy, ale spíše mi vrtá hlavou co "žere" více serverového času - podmínky, dotazy na databázi, vícerozměrná pole (kvůli přehlednosti a lepší použitelnosti často používám 3 i 4 rozměrná pole), častá procházení polí foreachem nebo něco úplně jiného? Asi těžko říci takto z voleje, ale přesto bych rád znal tvůj názor, příp. i na další záležitosti, máš-li zkušenosti s vývojem RS.
Mastodont
Profil

co "žere" více serverového času

Zapoj profiler.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0