Wzorce projektowe – singleton

Singleton – jeden ze wzorców konstrukcyjnych. Jego celem jest zapewnienie możliwości utworzenia tylko jednego obiektu danej klasy i zapewnienie do niego globalnego dostępu.

Przez wielu uważany za antywzorzec, głównie ze względu na ograniczoną możliwość testowania kodu. Pomijając kwestie słuszności jego wykorzystania przedstawię jego poprawną implementację, co nie jest trywialne jakby mogło się wydawać.

Czytaj dalej

Blog, rozwój, zmiany, Święta

santaTrochę ponad miesiąc temu postanowiłem założyć bloga – swego rodzaju osobisty notatnik programisty. To była szybka piłka, od momentu powstania pomysłu, stronę udostępniłem po trzech dniach. Już teraz widzę, że warto było. Naprawdę.
Stałem się bardziej zorganizowany. Zacząłem prowadzić notatki – na dysku google’a utworzyłem plik w którym umieszczam pomysły, odnośniki do materiałów i książki które warto przeczytać. Obecnie jest tego z pięć stron. Aktualizuję ją wtedy, gdy tylko przyjdzie mi coś ciekawego na myśl. Jestem pod wrażeniem. Do tej pory pomysły jakoś tak „uciekały”, przepadały w otchłań codziennej rutyny.

Czytaj dalej

Obsługa wyjątków – najlepsze praktyki

Try-to-catch-meJestem w trakcie lektury świetnej książki Roberta C. Martina – „Clean code”. Przez wielu uważana za jedną z najlepszych w tej dziedzinie. Jest to pozycja obowiązkowa w bibliotece każdego programisty.

Do tej pory sięgałem do niej (jak i do innych książek) dosyć wyrywkowo, ale sytuacja się  zmieniła gdy kupiłem ostatnio czytnik e-booków – Kindle Touch 2014 (za 319 zł. w Komputroniku). Zacząłem więcej czytać, znacznie więcej niż do tej pory i do tego w miejscach w których nigdy tego wcześniej nie robiłem (czekając w samochodzie, w kolejce do lekarza, itp.). Zdecydowanie mój numer jeden wśród podręcznych gadżetów.

Przez kilka dni przeczytałem już prawie dwie książki: „Pełna moc możliwości” J. Walkiewicza (który swoim wykładem na YT w zasadzie nakłonił mnie do założenia tego bloga), i kończę właśnie Clean code w języku angielskim. W kolejce czeka jeszcze kilka pozycji z kombinatoryki i algorytmów. W Kindlu świetne jest to, że kupuję ebooka w jednym z polskich sklepów internetowych, włączam WiFi w czytniku i książka po chwili jest w urządzeniu. Sklep wysyła ebooka na specjalnego maila w Amazonie, a Amazon wysyła go do mojego urządzenia. Świetna sprawa.

O „czystym kodzie” napiszę trochę więcej w przyszłości. Autor w swoim bestsellerze traktuje między innymi o dobrych praktykach obsługi wyjątków na temat których również chciałbym się podzielić informacjami.

Czytaj dalej

Permutacje, cz. 2 – algorytmy

W poprzednim wpisie programistyczne rozwiązanie zagadki polegało na wygenerowaniu wszystkich permutacji zbioru i sprawdzeniu każdej z nich pod względem spełnienia warunku poprawności. Takie podejście może okazać się najrozsądniejsze w przypadku pracy nad problemami NP-trudnymi (poprzez wygenerowanie wszystkich możliwych rozwiązań i wybranie spośród nich najlepszej).

W dalszej części umieszczam przykłady implementacji w Javie różnych algorytmów generowania permutacji.

Czytaj dalej