czwartek, 22 sierpnia 2013

Asercje.

Przelatując przez przestrzeń zwaną "SCJP Sun Certified Programmer for Java 6" spotykam całkiem przyzwoitą liczbę tematów które opisują mechanizmy o których pojęcia nie miałem(w sumie to nic dziwnego, to tej pory nie przywiązywałem to "teorii" specjalnej uwagi, a to błąd, wielki). Dzisiaj pękł rozdział o m.in wyjątkach i ... asercjach.

Rozdział piąty to było właśnie moje pierwsze spotkanie z asercjami, i trochę na zasadzie notatki zamierzam je w tym poście opisać.
Asercje czym one są ? najprościej, jest to mechanizm umożliwiający nam sprawdzenie pewnego założenia, jego spełnienie nie powoduje nic, a niespełnienie obdarowuje nas AssertionError'em.
I właśnie o ten error chodzi :) bo pomimo tego że możemy go wyłapać, to nie robimy tego i dzięki temu mamy dobrze widoczny sygnał: "gościu coś poszło nie tak".
Przykład naprawdę prostego warunku z użyciem asercji wygląda mniej więcej tak: Autorzy książki wspomnianej wyżej dzielą rodzaje asercji na dwa typy, na proste i naprawdę proste(ciekawe nie ?). Przykłady drugiego("naprawdę prosty") to ten powyższy. Prosty daje nam jeszcze możliwość "dopisania" komentarza który pojawi się podczas wyrzucania AssertionError. Na przykład:
Asercji jako takich możemy używać także jako aktywnych komentarzy :) Wyglądają jakoś tak bardziej naturalnie od zwykłych //komentarzy. Na koniec w telegraficznym skrócie:
-Asercje dostępne są od wersji javy 1.4
-We wcześniejszych wersjach można używać słowa assert jako np: nazwy zmiennej, więc w przekładaniu historycznego kodu na bardziej "nowoczesny" mogą wystąpić problemy.
-Domyślnie asercje są "zdezaktywowane" - można je włączyć z poziomu konsoli: java -ea ...
-Bez problemu można je aktywować je dla danej klasy bądź katalogu.
-Używamy ich w metodach prywatnych. Przy ich pomocy nie sprawdzamy jednak argumentów podanych do metod publicznych bądź podanych przez "liczbę poleceń".

Więcej dobrych przykładów użycia można znaleźć tutaj:KLIK

czwartek, 8 sierpnia 2013

GroovyFX

Ten post jest totalnie bezwartościowy pod względem merytorycznym, ale co tam, raz się żyje :)
Przeglądając sobie otchłań internetu natknąłem się na dość ciekawy projekt, i ze względu na to że temat FX'ów był tu poruszany w chyba wszystkich postach, szkoda mi było o tym nie napisać.
Tym projektem jest GroovyFX - poziom słodkości tej nazwy jest równy poziomowi słodkości kotków z tych wszystkich fajnych obrazków.
Ale wracając do samego Groovego, to dopiero teraz zobaczyłem jak w tym się w ogóle piszę, i wygląda to genialnie. Nie chce się napalać ale ten język jest stworzony do pisania okienek :) Źródło zwykłego okienka wygląda tak(kod sobie pożyczyłem z głównej strony projektu):
Od strony samej technologi, to twórcy piszą że nasz kod w GroovyFX będzie łatwiejszy do zrozumienia i utrzymania, i patrząc na ten prosty przykład, trudno się nie zgodzić. GroovyFX nie odstaje niczym od JavaFX(przynajmniej tak piszą), więc trzeba spróbować.



Nie pozostaje nic innego jak napisanie czegoś w tym Groovym.

wtorek, 6 sierpnia 2013

Anonymous class & KISS

Dawno nic się nie pojawiło, wakacje w końcu. Fajnie jest nic nie robić, ale jednak i to się w końcu nudzi :)
Czytając sobie o klasach anonimowych, przypomniał mi się ostatni post na tym blogu(Lista-jak wypełnić?). I tak o to wpadł do głowy pomysł na szybki post(taki w sam raz na sierpień :D ).
Klasy anonimowe - tak jest, jak ktoś jeszcze nie wie co to za cudo, to śpieszę z wyjaśnieniem. Klasy anonimowe to wynalazek, który umożliwia nam tworzenie bardziej zwięzłego kodu, deklarujemy oraz inicjalizujemy w jednym momencie(programistyczny fast food).
Znamy to na przykład z deklaracji akcji buttonów:
Osobiście pomyślałem że przy okazji poprawię kod z ostatniego posta(w końcu "Keep It Short and Simple"). A więc, stary fragment: I nowa wersja:
I jeszcze coś, dlaczego ta anonimowa klasa nazywa się Runnable, jeżeli powinna go implementować ? tak właśnie, good for you !


Więcej na temat anonimowych klas tutaj.