Továrny na objekty Nette frameworku – odstranění skrytých závislostí
- 2bfree
- Člen | 248
Rád bych se zeptal, co si komunita a @DavidGrudl myslí o nápadu, že by se pro každou třídu Nette Frameworku, vytvořila továrna respektive interface továrny a následně by se upravil stávající kód, aby používal tyto továrny namísto stávající přímého vytváření objektů?
Slibuji si od toho:
- vyšší flexibilitu
- ostranění skrytých závislostí
- lepší podpora pro jednotkové testování
- 2bfree
- Člen | 248
Například tady: https://api.nette.org/…ter.php.html#948
Ale zkusil bych to řešit plošně všude, kde je new NazevTridy
krome výjimek.
- Tomáš Votruba
- Moderator | 1114
Tedy něco jako Contracts v Laravelu?
Nápad dobrý. Zkus poslat malý pull request (např. na odkazovaný kód) a uvidíš.
- David Grudl
- Nette Core | 8239
Myslím, že Nette je dekomponováno velmi slušně a krom výjimek a value objektů, kde to nemá žádný užitek, všechno vytváří pomocí továrniček.
- Jan Tvrdík
- Nette guru | 2595
@2bfree Pokud narazíš na nějaký konkrétní problém, kde by tě současný stav Nette omezoval, tak napiš, ale jinak myslím není potřeba nic řešit.
- Šaman
- Člen | 2666
Já už jsem i přestal učit, že jedna z výhod DI je odstranění
sktytých závislostí. Je to spíš vedlejší efekt, ale není to základní
princip.
Je na tobě, jak si problém skrytých závislostí vyřešíš v projektu a
navrhované řešení je jedním z nich. Ale nevidím důvod vyžadovat to
samé i pro framework. Nette je pro tebe jedna (resp. dnes několik) závislost
a její vnitřní závislosti ty jako uživatel Nette neřešíš.
Pokud to navrhuješ jako vývojář Nette, tak můj post klidně ignoruj a soustřeď se na komentáře od autorů frameworku.