Wpis z mikrobloga

#programowanie też #naukaprogramowania #wzorceprojektowe
Macie może jakieś fajne artykuły omawiające Dependency Injection/Inversion of Control?

Nie chodzi o przykłady praktyczne tylko suchą teorię, jakbyście mieli np. wytłumaczyć 3-latkowi dlaczego ma nie jeść gwoździ xD ciężko cokolwiek takiego znaleźć, wszystko opisane albo na konkretnych przykładach albo językiem przeznaczonym bardziej dla Hawkinga, a potrzebuję najprościej jak się da
  • 10
  • Odpowiedz
@Czarzy: Bo tu nie ma żadnej wyrafinowanej teorii. DI jest tak proste, że tu nie ma czego tłumaczyć. Dopiero konsekwencje (nie)stosowania mogą być bardziej złożone i trudniejsze w wytłumaczeniu laikowi. Ale one pośrednio wynikają również z innych rzeczy.

Co do IoC, to Uncle Bob bardzo fajnie to tłumaczy. W tym wykładzie jest również o tym mowa:
https://www.youtube.com/watch?v=TMuno5RZNeE
  • Odpowiedz
Bo tu nie ma żadnej wyrafinowanej teorii. DI jest tak proste, że tu nie ma czego tłumaczyć.


@zakopiak: powiedz to rekruterom którzy wyjeżdżają z takimi pytaniami ( ͡° ͜ʖ ͡°)

o ile Singleton czy np. Factory łatwo jest wytłumaczyć tak DI to moim zdaniem pytanie tak głupie że głowa mała

btw zadawać takie pytania komuś kto wykorzystywał to w co drugim projekcie...
  • Odpowiedz
@Czarzy: Dlaczego głupie? Nie jest głupie, tylko odpowiedż jest krótka. Zależności przekazujesz z zewnątrz zamiast tworzyć ich instancje wewnątrz (lub pobierać z magicznych globalnych kontenerów).
Na rozmowie można odpowiedź rozszerzyć o plusy tego rozwiązania i minusy niestosowania.
  • Odpowiedz
@zakopiak: no i o takie ubranie tego w słowa mi w sumie chodziło, dzięki :)

plusy i minusy ok tylko sama istota, zazwyczaj opisana jest w dość skomplikowany i mało logiczny sposób. Jestem przyzwyczajony do używania kodu a nie redagowania jego definicji
  • Odpowiedz
@Czarzy:
A. Dependency Injection to po prostu podawanie zależności, dzięki temu klasy mogą się zmieniać niezależnie od siebie, ale bez (B) klasa nadrzędna jest związana z konkretną implementacją (odnosi się do konkretnej nazwy).

B. Dependency Inversion (Principle) - chodzi o zależność na poziomie kodu, czyli o pozbycie się niedogodności z (A). Klasa nadrzędna i ta, na której polega nie mają ze sobą nic wspólnego dzięki zastosowaniu pośredniego interfejsu/klasy abstrakcyjnej. Sposób na
  • Odpowiedz