Update Nette v dlouhodobem projektu
- saimons
- Člen | 293
Chtel bych se zeptat na vase zkusenosti a trochu se od vas priucit. Vyvijim projekt, zacal jsem nakdy kdyz vysla Nette 2, takze jsem to na ni postavil. Pravidelne updatuju na stabilni verze. Obcas se musi neco predelat, protoze uz to nefunguje jako driv. Ale dost veci se za tu dobu zmenilo, nebo jsem se je naucil lepe chapat, pouzivat. Jako priklad bych uvedl ($this->context vs. inject). Vsude mam samozrejme to prvni, ale pokud ten projekt planuju na nekolik dalsich let, tak je mozne, ze to jednou bude zastarale (viz. Nette\Environment). Jakym zpusobem bych mel upravovat kod, aby byl dlouhodbe pouzitelen? Nebo jak to delate vy?
- studna
- Člen | 181
Především je třeba si říct, že update Nette ti kvalitu kódu nezlepší. Updatovat se oplatí, ale ne za každou cenu. Je to jednoduché, pokud nechceš, aby ti projekt zestárl, neupdatneš.
Ohledně používání inject namísto kontextu – to bych být tebou asi neřešil, pokud máš projekt rozpracovaný tak dlouho. Ta injektáž jednotlivých vlastností do presenteru je sice správnější, ale kontext má tu výhodu, že je lazy. Má smysl to řešit, až přijde nový presenter.
Editoval studna (8. 11. 2012 5:32)
- Filip Procházka
- Moderator | 4668
Dokud ti přístup funguje, nebo nemáš urgentní potřebu použít novější přístup, tak zkrátka kód neměň. Update Nette by ti však měl vždy zaručit zvýšení bezpečnosti a vyřešení některých problémů/chyb.
- Filip Procházka
- Moderator | 4668
To je na tobě. Obecně bys měl mít aplikaci konzistentní, aby bylo při pohledu do kódu jasné, jak napsat další modul. Ale pokud se rozhodneš, že budeš aplikaci přepisovat na nový přístup, tak samozřejmě nové moduly piš novým způsobem :)
- arron
- Člen | 464
Tak aby jsi měl taky názor z ‚druhé strany‘ :-D
Osobně si myslím, že ve chvíli, kdy se člověk naučí něco nového (lepšího), tak by to měl začít používat i za cenu toho, že ta aplikace nebude 100% konzistentní. A to obzvlášť, pokud je to dlouhodobější projekt. Takový projekt, je totiž potřeba stále udržovat, jinak šíleně rychle zestrárne. Neni nutné hned přepisovat všechno, ale prostě nové věci psát tím nejlepším způsobem, který v tu chvíli umím, pokud je to alespoň trochu možné. Zároveň by mělo platit, že jakýkoliv zdroják, který otevřu, tak ho po sobě zanechám v lepším stavu než v jakém byl, když jsem ho otevřel (takže otevřu zdroják, vyděsím se, co jsem to tam prováděl, rozdělím tu šíleně dlouhou a nesmyslnou metodu na 4 menší a mám lepší kód :-)). To Ti zajistí, že postupně budeš dělat drobné změny v celé aplikaci a ta se bude neustále vyvíjet :-) Když to budeš dělat dobře, tak ta aplikace nemá šanci zestárnout…
Hodně Ti v tomhle pomůžou unit testy, pokud je píšeš. Nahraju nový Nette, spustím testy a hned vidím, co se mi kde rozbilo a jak moc. Pak už můžu zvážit, jestli upgradovat nebo ne. Nicméně si myslím, že se dlouhodobě ověřilo, že upgradovat na nový Nette se vyplatí průběžně. Opravte mě, jestli se mýlím, ale ti, co zamrzli na 0.9 a čekali až vyjde stable 2.0, tak se pak nestačili divit a museli nejspíš celou aplikaci uplně předělat. Zatímco my ostatní jsme ty změny dělali postupně po menších kouscích, takže když vyšel stable, tak jsme ho tam prostě nahráli, opravili pár drobností a bylo :-)
- romiix.org
- Člen | 343
@aaron: Rozhodne súhlasím. Problém je s tým, keď pracuješ sám na seba a nie je ti jedno či teraz 5 hodín fakturuješ zákazníkovi za novú funkciu do jeho webu alebo ich investuješ do vlastného vývoja.
V každom prípade, treba myslieť na to, že je podstatne lepšie priebežne udržovať projekt a prepisovať ho aby bol lepší, ako ho po x rokoch prestať používať a následne pol roka vyvíjať niečo úplne nové. Na tom sa ten čas už moc neušetrí.