DI versus Service Locator
Service locator vypadá jako šikovná zkratka, ale třída, která si řekne o „všechno“, o svých závislostech lže. Rozebírám, proč je to antipattern, a kdy naopak něco za service locator označujete neprávem a zbytečně se děsíte.
Service locator vypadá jako šikovná zkratka, ale třída, která si řekne o „všechno“, o svých závislostech lže. Rozebírám, proč je to antipattern, a kdy naopak něco za service locator označujete neprávem a zbytečně se děsíte.
Většina vývojářů řeší lazy loading v DI továrničkou a má za to, že je to samozřejmost. Jenže továrna předjímá, že objekt budete vyrábět, zatímco vy ho chcete jen získat. Správná odpověď se jmenuje accessor a kód vám za to poděkuje i při testování.
Třída Article si magicky sahá do databáze a vy nemáte tušení které? Gratuluju, máte skrytou závislost. DI říká jediné: nic nesháněj, ať ti to někdo dodá. Tak prostý princip, a přitom změní celý způsob, jakým přemýšlíte o návrhu kódu.
Komentáře pod článkem o DI vs lazy loading se zvrhly v špičkování bez argumentů, tak jsem je přestěhoval sem. Původní článek řeší konkrétní problém: jak při přechodu od Service Locatorů k DI neztratit lazy loading. Ne jestli ho použít, ale jak.
Některé komentáře pod článkem o Dependency Injection víc škodily, než pomáhaly. Místo osvěty špičkování a zmatení začátečníků. Přesunul jsem je sem, do karantény, kde nikomu neublíží.
Facebook umí exportovat události do iCalendaru, ale Google Calendar z nich udělá paseku: neveřejné události zobrazí jako „nedostupný“, nahrne i nepotvrzené a ještě poplete letní čas. Jednoduchý PHP filtr na serveru všechny tři problémy elegantně vyřeší.
Stačí napsat $stop() a Tracy vám v prohlížeči přehledně
vyskládá funkci, argumenty, lokální proměnné, call stack i HTTP
hlavičky. Jeden řádek kódu místo deseti var_dump(). Dokáže
tohle váš framework?
Co začalo jako hospodská slezina s klukem, co neslyšel slovo „framework“, dorostlo v malou konferenci pro 140 lidí v pražském Hubu. Hashtag #posobota prorazil mezi top trendy i přes konkurenci ACTA a SOPA. Nový formát funguje, jedeme dál.
Jsem líný programátor, který píše 20kB weby v notepadu, ale odmítá se vzdát Laděnky, Latte nebo routování. Nette se dá používat jako micro framework. A než se nadějete, zjistíte, že využíváte 90 % toho údajně zbytečného monstra.
Pět znaků stačí k parse erroru v PHP. A oprava? Přidat mezeru. Tohle je přesně ten druh absurdity, kvůli které PHP miluju i nenávidím zároveň.
To je vše. Další články se teprve rodí.