Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Nette Framework: adresářová struktura aplikace

Miloslav Pojman
Miloslav Pojman (neregistrovaný) 147.32.222.---
15. 4. 2009 17:24

RE: Nette Framework: adresářová struktura aplikace

celé vlákno
To je dobrý postřeh. Ale má smysl přehlednost vykoupit značným dopadem na výkon aplikace?

Co jsem sledoval nějaké diskuse ohledně vývoje zend frameworku, tak ten dopad na výkon je skutečně znatelný. Ale:

  • Nette má kompaktní verzi, kterou použiju, pokud mi jde o výkon, kde žádné include nebo autoload neřeším.
  • Když použiju knihovnu třetí strany, ta si řeší includy po svém a na autoload stejně nedojde
  • Pokud si napíšu vlastní knihovnu, nechci aby byla závislá na nette a jejím autoloadu
  • Vlastní skripty pro jednotlivé stránky jsou zpravidla jednoduché a jedou vždy po stejné koleji, takže zbytečné includy moc nehrozí. Pokud používám nějakou složitou knihovnu, kterou využiju jen občas, můžu v jejím připadě includovat až když ji opravdu potřebuji.
Osvědčil se mi jiný postup. Nette je plně připravené na PHP 5.3 a jmenné prostory. S jejich použitím dojde k tomu, že se na začátku skriptů budou objevovat řady příkazů use (méně elegantní ASCII art deco ;-) ). Něco jako když se dnes člověk podívá na zdroják v C#. Na výkon to dopad nemá, ale jako dokumentační popis závislostí to funguje stejně dobře, ne-li lépe. No a já jsem si zvykl tyto příkazy, byť zakomentované, používat už v PHP 5.2.

Ale kolik vývojářů používajících nette dodržuje stejné konvence?

Ať si každá knihovna nebo framework uvnitř používá co chce. Nelíbí se mi ale vydávat autoload na všechno za standardní řešení (jak se může po přečtění zdát začínajícímu programátorovi). Autoload má v mnoha případech smysl, ale každý vývojář by měl vědět proč a kde ho použít.

Na include_path teoreticky není 100% spoleh, je to pomalé a vyžaduje to od vývojáře, který chce použít knihovnu, aby správně include_path nastavil. Dovedu si představit, že třeba u takového Texy by půlka vláken na fóru byla: „nejede mi to“ s odpovědí „nastavil jsi správně include_path“?

Tohle jde například řešit pomocí souboru TexyForDummies.php, který nastaví příslušnou include_path a naincluduje Texy.php

Pokročilý vývojář si nastaví include_path jak potřebuje a použije standardní řešení.

U texy je to asi jedno, beztak můžu použít kompaktní verzi, ale používat deset knihoven, kde si každá řeší includovaní souborů nějakým obskurním způsobem je peklo. Autor každé z těch knihoven se bude hádat, že jeho řešení je nejlepší a těžko říct kde je pravda.

Když už jsem si jednou jsem si vybral php, tak preferuji řešení, které mi nabízí.