Zapominamy o metodzie close

W C# mamy using, czyli taką konstrukcję, która przypomina trochę żonę – kurę domową (zakładając, że program to małżeństwo, a programista to mąż). Maż idzie do kibla robi swoje i zapomina wywołać close na desce. Żona samodzielnie zamknie deskę i nie będzie marudzić. W Javie żona ma inne podejście. Nic nie mówi i nic nie […]

Piractwo w ACTA to najmniejszy problem

A to dlaczego? Ano dlatego, że internet z samego swojego założenia jest uodporniony na wszelkie próby odcinania użytkowników czy skutecznego blokowania usług. ARPANETW był projektowany by przetrwać konflikt atomowy zatem kilku durni w garniturach z taniego armaniego nie zagrozi raczej sieci. Zresztą był Napster, który nie trzymał się pierwszej zasady Jamesa Hetfielda, „jeżeni fanów nie […]

Różnica pomiędzy call i execution w AspectJ

Różnica wredna, która potrafi zepsuć dzień. Generalnie zarówno call jak i execution nie różnią się jeżeli chodzi o moment wywołania. Jeżeli zdefiniujemy, że mają być wkompilowane przed to zostaną wkompilowane przed. Jeżeli po to po. Kompilator zapewnia, że w danym przepływie sterowania aspekt będzie umieszczony w odpowiednim miejscu. Oczywiście przy założeniu, że nie ma tam […]

Ekstremalna obiektowość w praktyce – część 9 – Nie używaj getterów/setterów/własności

Część 0 Część 1 Część 2 Część 3 Część 4 Część 5 Część 6 Część 7 Część 8 Piątek, a zatem słuchamy Listy w Trójce. Przed nami ostatnia z zasad Jeff’a Bay’a Nie używaj getterów/setterów/własności Niewątpliwie jest to najbardziej obiektowa z zasad. By zrozumieć o co w niej chodzi porównajmy takie oto dwie klasy Listing […]

Wady użycia mocków z mock-frameworków

Idzie sobie transakcja z banku. Trafia ona ci na moje biurko i muszę ją zwalidować. Biorę ci ja JSR-303 i przepuszczam ci ja transakcję przez tą zabawkę… Rzecz w tym, że mam kilka własnych walidatorów, które korzystają z danych pobranych z bazy. Dane sa pobierane raz i zapisywane w takim pseudo cache, który potrafi odpowiedzieć […]

SOPA była do przewidzenia

Mamy sobie rok 1455 w Moguncji niejaki GutenbergW wydaje pierwszą drukowaną biblię zwaną Biblią GutenbergaW. Oczywiście wynalazek druku jest dla Europy przełomowy (choć jesteśmy pod tym względem daleko za murzynami… wróć… Azjatami). Co nam on daje? Przede wszystkim przyspiesza obieg informacji. Informacja przestaje być wyceniana na podstawie nośnika. W praktyce cena nośnika gwałtownie spada. Cały […]

Ekstremalna obiektowość w praktyce – część 8 – opakowywanie kolekcji w klasy specyficzne dla kontekstu wykorzystania

Część 0 Część 1 Część 2 Część 3 Część 4 Część 5 Część 6 Część 7 Gladius Noctis, a na blogu ósma z zasad Jeff’a Bay’a Klasa której polem jest kolekcja nie powinna mieć żadnych innych pól (opakowywanie kolekcji w klasy specyficzne dla kontekstu wykorzystania) Nazwa trochę długa, ale nie ważne. Powróćmy na chwilę do […]

Jak ogarnąć DI?

Mini notka w miniblogu 🙂 By ogarnąć DI należy napisać jeden projekt bez użycia słowa kluczowego new w kodzie biznesowym. Można go używać w provideach. Dozwolone jest też tworzenie prymitywów i Stringów „z palca”. Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W takim przypadku jest, to zaznaczone. Artykuły […]

O różnicach pomiędzy wstrzykiwaniem via setter, a via pole z wykorzystaniem @PostConstruct

Szybko o tym dlaczego ta druga metoda jest zdecydowanie lepsza. Generalnie po ustawieniu pola chcemy wykonać pewne operacje. Wstrzykiwanie via setter W guice adnotujemy @Inject metodę (dowolna nazwa, widoczność itp.) i to wszystko. Problem polega na tym, że obiekt jest w stanie nieokreślonym. Raz, że jego tworzenie jeszcze trwa, a dwa, że nie mamy kontroli […]

Szczyt HR-owskiej bezczelności

Siedzę ci ja sobie i przeglądam pocztę zaległą dzisiejszą. Taki oto kwiatek: Szanowny Panie, Chciałbym sie z Panem skontaktować, w sprawie służbowej i chciałbym przedstawić Panu szczegóły. Proszę w tym celu o podanie do siebie kontaktu telefonicznego. Pozdrawiam, Nazwisko pana Emila pozwolę sobie litościwie pominąć by nie robić mu wstydu. Tak samo jak i nazwę […]