Miesięczne archiwum: Luty 2011

JMeter – użycie klas Javy w teście

W napisanym niedawno artykule przybliżyłem proces tworzenia scenariusza testowego w narzędziu JMeter. Opisane były w nim najprzydatniejsze i najczęściej używane komponenty, oraz ogólne zasady korzystania z tej aplikacji. Dziś chciałbym temat rozwinąć i przedstawić technikę rzadziej używaną, ale w niektórych przypadkach niezastąpioną. Mowa o wykonywaniu kodu Javy z poziomu JMetera.

Czytaj dalej

Parsowanie liczb double już bezpieczne

Niedawno wspominaliśmy o głośnym ostatnimi czasy błędzie, który powodował wejście do nieskończonej pętli przy próbie parsowania niefortunnych liczb podwójnej precyzji. Najbardziej ucierpiały na tym aplikacje internetowe, z uwagi na znacznie ułatwione przeprowadzanie ataków typu DOS. Na szczęście Oracle stosunkowo szybko zareagowało na odkrycie poważnej luki w ich języku, skutkiem czego już dzisiaj można pobrać JDK i JRE w wersji 6u24, zawierające odpowiednią łatkę. Znaleźć je można standardowo na tej stronie.

JMeter – testujemy wydajność

Istnieje bardzo wiele rodzajów testów. Można dyskutować nad tym jak istotne są poszczególne ich typy, ale trudno nie zaliczyć testów wydajnościowych do grupy o wyższym priorytecie. Nabierają one jeszcze większego znaczenia w przypadku aplikacji internetowych, gdzie z kilku instancji korzystają rzesze użytkowników. Jednym z popularniejszych narzędzi służących do przeprowadzania tego rodzaju testów jest JMeter. Program ten napisany jest w 100% w Javie, dzięki czemu jesteśmy w stanie uruchomić go praktycznie na każdym systemie operacyjnym. Udostępnia także graficzny interfejs, który upraszcza tworzenie scenariuszy testowych. Celem tego artykułu jest przedstawienie głównych elementów budulcowych wspomnianego scenariusza, oraz demonstracja ich użycia.

Czytaj dalej

2.2250738585072012e-308 – problematyczna liczba

Spore zamieszanie spowodowało znalezienie błędu w jednej z podstawowych klas języka Java służącej do konwersji wartości tekstowej do liczby o podwójnej precyzji. Chciałbym się odnieść do tematu zagrożenia płynącego z faktu istnienia tego typu błędu i ewentualnego wpływu na ogólne bezpieczeństwo aplikacji pisanych w Javie.

Czytaj dalej

Detekcja typu plików z Apache Tika

Zdarza się, że aplikacja nad którą pracujemy wymaga od nas wykrycia formatu pliku bazując tylko na jego zawartości. Przykładem może być mechanizm kontroli typu uploadowanych danych działający odrobinę inteligentniej niż przez analizowanie rozszerzenia. Oczywiście jest to wykonalne dla większości popularnych formatów, które posiadają pewne stałe, charakterystyczne wzorce. Żmudne jednak byłoby budowanie bazy z takimi informacjami na własną rękę, a następnie implementowanie algorytmu, który ją wykorzysta. Na szczęście jedną z największych zalet Javy jest ogromna ilość gotowych framework’ów. Również w tym przypadku się nie zawiedziemy – do swojej dyspozycji mamy bowiem Apache Tika.

Czytaj dalej

Clean Code

Programowanie jest sztuką. Czasami jednak nawet największym mistrzom zdarza się stworzyć dzieło daleko odbiegające od norm i przyjętych standardów, które nie może być źródłem dumy. Programiści mogą stworzyć nieczytelny, mało elastyczny kod pod wpływem presji czasu, małego doświadczenia oraz innych mniej lub bardziej znaczących czynników. Kod taki może być także efektem postępującego starzenia się aplikacji. Aby zapobiegać zmniejszającej się jakości kodu, należy skorzystać z technik polepszających wewnętrzną budowę aplikacji wchodzących w skład procesu zwanego refaktoringiem. Często poprzez refaktoring udaje się doprowadzić kod, który na pierwszy rzut oka wydaje się być kompletnym śmietnikiem, do używalnej postaci. Jednak aby zapanować nad chaosem w kodzie trzeba poznać techniki wykorzystywane w procesie refaktoringu. Na łamach naszego bloga będziemy wielokrotnie wracać do tematu refaktoringu, ale na początek polecamy zaznajomienie się z książką, która powinna być idealnym wprowadzeniem w meandry pisania pięknego, czytelnego kodu. Mowa tu o książce pt. „Clean Code: A Handbook of Agile Software Craftsmanship„. Czytaj dalej