czym konkretnie jest ,,dependency injection", to wstrzykiwanie zależności to w praktyce łączenie ze sobą beans'ów (np. poprzez konstruktor)? czy picrel to dobry przykład na DI? #java #spring
@szkok: w mocno potocznym języku tak to można zdefiniować: jeśli klaska definiuje jakich będzie potrzebowała zależności, ale nie mówi skąd je wziąć, to dependency injection jest poskładaniem tego w całość tak, żeby klaska te zależności dostała.
Beany springowe to tylko jedna implementacja DI, a załączony obrazek jest niezłym przykładem. TrackCoach definiuje że potrzebuje jakiegoś serwisu, a ty mu go dostarczasz nie w ramach implementacji TrackCoach tylko w innym, zewnętrznym miejscu.
@szkok: zerknąłem na to co @Myzreal podrzucił i wydaje mi się, że w artykule nieco pomięszane są koncepty Dependency Incjection oraz Inversion of Control Container.
Dependency Injection jest bardzo prostym wzorcem, definiujesz co klasa potrzebuje, a nie jak to dostać (stąd rodzaje: wstrzykiwanie przez konstruktor, setter itp.). Nie ma tu w ogóle mowy o zarządzaniu tymi zależnościami: w jaki sposób są tworzone, kto nimi zarządza (programista, framework, czy cokolwiek
@szkok nie ma nic złego w definicjalch beanów XMLu, nawet jeśli obecnie są przeżytkiem. Według mnie, na poczatek zabawy ze springiem są nawet lepszym pomysłem niż adnotacje, bo używając adnotacji wprowadzasz magię, która ukrywa jak pod spodem wszystko się ze sobą łączy.
The basic principle is that instead of managing dependencies between components in your code by yourself, you use a single container to resolve those for you and inject the required dependencies where you want them.
W artykule to jest podane jako definicja DI. To nie jest definicja DI, tylko IoCContainer. Do DI nie potrzeba żadnego pojednyczego kontenera na zależności. Oraz
@dabi: youtube-dl jest od lipca nierozwijany, lepiej używać: https://github.com/yt-dlp/yt-dlp (to fork, większość komend zadziała tak jakbyś oczekiwał w oryginale)
Rozglądam się za jakimś niezbyt drogim monitorem, wymagania: - 27 cali - rozdzielczość 2560 x 1440px
Moją uwagę przykuł LENOVO Q27Q-10 (jest na promce za 900zl, więc fajna cena, odswiezanie 75Hz), oraz Acer Nitro VG270UP (chyba najtańszy w tej specyfikacji z 144Hz, a do tego widzę dość dobre opinie)
@Torres99: Kilka założeń, bo sam tag pcmasterrace + Twój opis to trochę za mało: - jeżeli używasz laptopa - jeżeli laptop jest na tyle nowoczesny, że ma USB-C - jeżeli nie masz stacji dokującej do laptopa - jeżeli nie pracujesz tylko przy biurku i czasem potrzebujesz mobilności to polecam zakup monitora pozwalający na zestawienie połączenia po USB-C. Jednym kablem podpinasz kompa, a wszystkie peryferia do moniotra, nawet osobnego zasilania dla
@mk321: na pewno nie ma jednego ustalonego terminu na taki stan projektu. Sam użyłbym template lub base/init setup - szczególnie jeśli podąża za jakąś konwencją firmową lub jeśli to goły projekt z samym setupem środowiska, bez żadnej logiki biznesowej.
@mk321: IMO "skeleton project" jest OK. Jeżeli ten termin jest jakoś znaczący w tym co robisz, to czy to będzie "skeleton project", "template" czy "boilerplate" jest mniej istotne, ważne żeby być spójnym i jasno dać do zrozumienia o co chodzi. Wydaje mi się, że "Skeleton project" z wymienionych jest chyba najmniej wieloznaczny.
Intelij Pod czym szukać w internecie (jeśli to w ogóle możliwe) jak chciałbym dodać własne "refaktory" w kodzie. Czyli np mam zmienna, zaznaczam ją i po kliknięciu robi np Optional.of(zmienna). Nie do końca chodzi o live template bo tam to działa odwrotnie czyli najpierw robi skrót a potem piszę zmienną.
Mirki, jak widzicie używanie checked wyjątków w nowych projektach? Jak wiadomo nie są one za bardzo kompatybilne z Java 8, z lambdami, streamami itd. Jakie są ich największe zalety, w projekcie gdzie na końcu wszystkie runtime'owe lądują w jakimś handlerze? Wiadomo, że łatwiej śledzić ścieżkę, no ale gdy w grę wchodzą refleksje to nie zawsze to dużo pomaga. No i jeszcze zasada otwarte/zamknięte, Robert C. Martin approved ( ͡°͜ʖ
Mówi się, że za ileś tam lat (około 20) zniknie jakieś 45% zawodów obecnie wykonywanych. Wydaje się to nawet realne w świetle nowych wynalazków czy koncepcji takich, jak Amazon Go czy autonomiczne samochody Tesli. Mamy więc do czynienia ze swoistą nową rewolucją przemysłową. Oznacza to więc utratę pracy przez miliony ludzi, ewentualną migrację do nowych, kreatywnych zawodów. Tyle że mi wydaje się to niemożliwe. Tak jak kiedyś rolnik z koniem musiał przesiąść
Twelve Ways to Make Code Suck Less by Venkat Subramaniam
We all have seen our share of bad code and some really good code as well. What are some of the common anti patterns that seem to be recurring over and over in code that sucks? By learning about these code smells and avoiding them, we can greatly help make our code better.
@arthurn nie to żebym specjalnie narzekał, ale jakbyś poza wklejaniem kawałku kodu z komentarzem też dodawał link do jakiegoś repozytorium, gdzie kod hostujesz, to być może komuś zechciałoby się rzucić okiem na całość i od razu wskazać błędy które zrobiłeś. A może nawet zasugerować bardziej cwany sposób na rozwiązywanie niektórych problemów.
@arthurn używasz spring-boot 1.4.0.RELEASE, a z tego co pamiętam to on przychodzi ze springie 4.3. Od springa 4.3 jeśli masz jeden konstruktor w klasie, to nie musisz na nim adnotacji @Autowired dodawać.
Tl;dr jak powinno wyglądać repo na gicie żeby dobrze się go używało na różnych OS-ach i IDE?
Używam gita poprzez wbudowane narzędzia Visual Studio i jest bardzo spoko, ale umiem też ważniejsze rzeczy zrobić z konsoli. Chciałbym zrobić drugiego brancha i czasem okazjonalnie pracować z linuksa. Jak do tego podejść? Z wiadomych powodów nie mogę użyć VS, więc część plików z repo jest zbędna, zaś IDE/kompilator na linuksie może chcieć dodawać nowe.
https://www.rp.pl/handel/art40164451-auchan-opuscil-rosje-wielki-majatek-francuskiej-sieci-oficjalnie-kupil-23-latek