sobota, 19 kwietnia 2014

Test: ArrayList vs LinkedList - zaskakujące wyniki


Ważnym elementem efektywnego programowania w Javie jest znajomość kolekcji. Trzeba je po prostu znać aby wiedzieć, która z nich najlepiej sprawdzi się w danej sytuacji. Zaczynamy wtedy szukać odpowiedzi w internecie i/lub przeglądać ich wewnętrzną implementację. Chyba najczęściej porównywanymi kolekcjami są: ArrayList i LinkedList.

niedziela, 6 kwietnia 2014

Wzorce projektowe #01 - Singleton

Zgodnie z zapowiedzią stworzenia serii o wzorcach projektowych, oto pierwszy wpis z tej tematyki :)

Co to są wzorce projektowe i kiedy je stosować?

Wzorce projektowe są pewnymi sprawdzonymi sposobami na rozwiązanie jakiś powtarzających się problemów z dziedziny projektowania oprogramowania. Powstawały one na bazie doświadczeń programistów i były przez nich wielokrotnie udoskonalane. Warto je znać aby nie musieć odkrywać koła na nowo, ale szybko wdrażać sprawdzone rozwiązania (niekiedy nieco zmodyfikowane i dostosowane do aktualnych potrzeb zadania).

Zaczynamy!

Pierwszy wzorzec, którym postanowiłem się zająć to Singleton. Ze względu na prostotę jego idei oraz łatwość implementacji, wydaje mi się, że jest idealny aby łagodnie rozpocząć naukę wzorców.

Koncepcja Singletona jest taka, że klasa która go implementuje musi zapewnić mechanizm ograniczający ilość możliwych instancji tej klasy do maksymalnie jednej. Czyli jeżeli mamy klasę-Singletona, to w całym programie możemy stworzyć i używać maksymalnie jeden jej egzemplarz.

Przykłady zastosowań:
- klasa Bank w systemie bankowym - raczej chcielibyśmy aby istniał tylko jeden jej egzemplarz w systemie.
- różnego rodzaju menedżery zarządzające danymi - często mogłoby dojść do błędów trudnych do wychwycenia gdyby wiele takich menedżerów mieszało w danych jednocześnie.
- system plików - wystarczy jeden opis formatu plików.

Tutorial - dwa sposoby implementacji Singletona w języku Java:

wtorek, 1 kwietnia 2014

Efektywna praca w Eclipse #01 - skróty klawiaturowe

Postanowiłem, że pierwszy kurs z serii "Efektywna praca w Eclipse" dotyczyć będzie skrótów klawiaturowych, ponieważ wydaje mi się, że jest to podstawowa i najprostsza do nauki rzecz pozwalająca w znacznym stopniu przyspieszyć pracę w tym IDE.

Tak jak zakomunikowałem wcześniej, tutorial jest w formie wideo. Jest to mój pierwszy filmik stworzony do publikacji i nie powiem - trochę problemów z tym było. Zdaję sobie sprawę, że jakość obrazu, nawet na HD nie jest rewelacyjna, a mój komentarz jest często mruczeniem pod nosem, ale nie miałem już siły z tym walczyć. Oprócz tego cały materiał wyszedł mi trochę za długi, w przyszłości spróbuję robić lżejsze ok. 10-cio minutowe kursy. Postaram się nad tym pracować i dołożę wszelkich starań aby każdy kolejny filmik był coraz lepszy.

Tymczasem, zapraszam do obejrzenia:

Video-tutoriale :)

Wiem, że systematyczność moich wpisów na blogu pozostawia wiele do życzenia, co jest spowodowane po prostu brakiem czasu (uczelnia jest jego głównym złodziejem), jednak pomysłów na "content" mam coraz więcej - co średnio ze sobą współgra.
Tak czy inaczej przez ostatnich parę miesięcy udało mi się zgromadzić parę pomysłów na kolejne wpisy związane z programowaniem. Pojawiły się one dość naturalnie, bo po prostu wynikły z tematów, których się teraz uczę. Postanowiłem zawrzeć je w 'seriach' tematycznych kursów i publikować... w formacie wideo

Czemu tak? Ponieważ Wam - odbiorcom, będzie łatwiej i szybciej ogarnąć to co się dzieje w programie, oglądając filmik i słuchając komentarza, niż wczytywać się i dopasowywać odpowiedni opis do właściwego fragmentu kodu. No i ja również będę miał łatwiej, z tego samego powodu - nie będę musiał męczyć się z opisami, a po prostu nagram to co dzieje się u mnie na ekranie wraz z komentarzem, co pozwoli mi zaoszczędzić nieco czasu (mam nadzieję).
Filmiki będę wrzucał na YouTube'a, ale nie oznacza to, że tutaj nic się nie będzie działo. Na blogu zawsze pojawi się stosowny wpis, z krótkim opisem i linkiem do filmu na YT, oraz nie zabraknie wpisów, do których filmik będzie zbędny.

Kursy tematyczne, które chciałbym stworzyć / kontynuować w wersji wideo:
1. JavaFX
2. Efektywna praca w Eclipse
3. JEE - Java Enterprise Edition
4. Wzorce projektowe
5. Digital painting

No i tyle ogłoszeń. Pierwszy filmik z serii "Efektywna praca w Eclipse" już nagrany, i niebawem pojawi się w następnym wpisie :)