#main, 18 stycznia 2016

By 18 stycznia 2016#main

W tym tygodniu na pewno pamiętać o przygotowaniu niespodzianek dla babci i dziadka z okazji ich święta (kartki w końcu trochę dochodzą). A co warto sprawdzić w świecie IT?

Cykl #main to punkt początkowy Waszego tygodnia,  prasówka, w której zbieramy ciekawe linki, dzielimy się informacjami, a także podsyłamy programistyczne zadanie. Mamy nadzieję, że w ten sposób umilimy Wam poniedziałkowy powrót do rzeczywistości ;)

HackSummit

Streamowana konferencja z największymi szychami programowania, na którą bilet może być dla Ciebie za tweeta albo donacje na super inicjatywy wspierające rozwój w IT. A do tego hackaton z sporą kasą do wygrania … Nie przegap!

Elevator Saga

Kath podesłała nam na facebooku grę i przyznajemy – przepadliśmy. Jak zaprogramować windę, by działała optymalnie? Spróbuj, ale tylko gdy masz trochę wolnego czasu :)

PS. Śmiało dziel się z nami ciekawymi linkami, z przyjemnością dodamy je do kolejnego #maina!

Spis technologii do aplikacji real-time

Robiąc reserch do pracy znaleźliśmy naprawdę fajną listę wszystkiego, co można użyć by komunikacja w twojej aplikacji była w real-time’ie. Warto spojrzeć, poczytać, bo nie wiadomo, czy nie przyda się w przyszłym projekcie.

Odpowiedź na pytanie z zeszłego tygodnia

A pytaliśmy o to: jak działa Spring (a dokładniej jego kontener IoC)?

W momencie uruchomienia aplikacji Spring tworzy tzw. kontekst. W uproszczeniu można powiedzieć, że jest to kolekcja beanów i związanych z nią konfiguracji. Wewnątrz takiego kontekstu beany ‚widzą się’, ale nie widzą obiektów poza nim.

Początkowo znajdują się tam tylko springowe obiekty – w tym sam kontekst. W zależności od konfiguracji w pierwszym kroku inicjowane są kolejne beany – czyli po prostu tworzone są nowe obiekty i rejestrowane w kontekście (można o nim myśleć także jak o swoistej mapie – kontekst bowiem mapuje nazwy (id) na właściwe obiekty). Ten etap realizuje implementacja interfejsu BeanFactory, która często jest samym kontekstem (np. ClasspathXmlApplicationContext).

Po zakończeniu tego kroku do ‚pracy’ wkraczają implementacje BeanPostProcessor – są one odpowiedzialne za ‚automagię’ springa, czyli np nadawanie wartości polom z adnotacją @Autowired (za to odpowiedzialny jest akurat  AutowiredAnnotationBeanPostProcessor). Jest to także sposób, w jaki możemy modyfikować domyślne zachowanie Springa wg własnych potrzeb. W międzyczasie, po wykonaniu pracy przez wszystkie znane kontekstowi implementacje tego interfejsu, wywoływana jest metoda init() beanów (jeśli istnieje), po czym obiekty te mogą wykonać dodatkowe zadania (większość tego nie robi).

W tym momencie inicjowanie jest uznane za zakończone, a aplikacja za uruchomioną. To oczywiście nieco uproszczony obraz, zainteresowanych póki co odsyłamy do dokumentacji Spring, i prosimy o chwile Cierpliwości – Springowi, także bardziej zaawansowanym aspektom, poświęcimy w przyszłości niejeden artykuł na blogu :)

Pytanie techniczne

Czym w javie różni się final od finally i finalize? 

Oczywiście zachęcamy do samodzielnego odpowiedzenia na pytanie. Za tydzień nasza odpowiedź.

Jon Skeet

Podejrzewam, że o nim nie słyszałaś, ale to naprawdę Postać ;) Jon ma numer jeden w rankingu na StackOverflow – odpowiedział na 32,693 pytań! Wow, prawda?

Jon aktualnie pracuje jako programista Java w Google, jest autorem książek i blogerem (w większości o tematyce C#) i najaktywniejszą osobą na stackoverflow. Jego kod nie podąża za żadną konwencją – on jest konwencją (cytując podaną dalej stronę ;) ). Bywa nazywany ‚najlepszym programistą świata’, choć sam raczej z pokorą podchodzi do swoich umiejętności. Ale przede wszystkim – ma ogromne doświadczenie, którym chętnie dzieli się ze światem, polecamy zapoznać się z blogiem lub odpowiedziami na stackoverflow!

Blog Jona Skeeta

Kilka faktów na jego temat ze społeczności 

Krótki wywiad (dostępna transkrypcja)

Pytanie na ten tydzień

Mój cel związany z IT na najbliższe 5 lat to:
  • Add your answer
  •  
  •  
  •  
  •  
  •