Przyjazne środowisko Java

Śledzenie kodu

W JBuilder 9 nie ma dużej różnicy w prędkości działania pomiędzy "normalnie" uruchomionym kodem Javy a tym działającym pod kontrolą debuggera. Debugger może zarówno śledzić kod lokalnie, jak i kod uruchomiony zdalnie (dotyczy to stron JSP, servletów czy komponentów EJB).

Uproszczono definicję pułapek i tzw. mechanizmów podglądania zmiennych. Pułapka (punkt przerwania) może być warunkowa. Można określić, że program ma być zatrzymany w momencie wywołania określonej funkcji, wystąpienia wyjątku czy też w przypadku wywołania danej metody z określonymi parametrami. Ponadto można decydować, czy przerwanie ma nastąpić tylko w danym procesie, czy przy dowolnym wywołaniu. Warto dodać, że te opcje działają znacznie szybciej niż zwykłe warunkowe pułapki.

W trakcie śledzenia zdalnej aplikacji można modyfikować kod źródłowy. Metoda HotSwap pozwala "podmienić" nowo skompilowaną klasę. Oczywiście przy założeniu, że po "zdalnej" stronie znajduje się maszyna wirtualna, która obsługuje ten mechanizm. HotSwap nie pozwala na zmianę "w locie" pojedynczej linii kodu, ale umożliwia zmianę i ponowne przetestowanie całego modułu bez zatrzymywania debuggera.

Prostym, ale ciekawym pomysłem Borlanda było dodanie opcji, która wyświetla wynik konwersji obiektu na łańcuch znaków. W ten sposób programista, odpowiednio implementując funkcję toString(), może kontrolować, co jest wyświetlane w oknie podglądu obiektu.

Do projektu można dodać jeden lub więcej "konfiguracji" debuggera. Przed uruchomieniem projektu można łatwo wybrać odpowiednią konfigurację.

JBuilder 9 wykorzystuje metodologię testów jednostkowych i biblioteki JUnit. Specjalne kreatory generują odpowiednie klasy testowe.

Wbudowany optymalizator

Wraz z pakietem w wersji Enterprise programista otrzymuje narzędzie do optymalizacji kodu. To pakiet OptimizeIT Suite pozwalający dokładnie "dostroić" aplikację. W jego skład wchodzą cztery główne narzędzia.

Code Coverage jest programem, który analizuje tzw. pokrycie kodu. Dzięki niemu programista wie, które fragmenty kodu były wywoływane i ile razy, a które są zupełnie niepotrzebne w aplikacji. Analiza dotyczy zarówno bloków (klasa, metoda), jak i poszczególnych linii w kodzie źródłowym. Dzięki temu można wyeliminować "martwy kod", co zwiększa czytelność źródłowych plików i ułatwia utrzymanie aplikacji. Code Coverage może analizować dowolne programy - od apletów, przez servlety czy strony JSP, aż po komponenty EJB.

Przyjazne środowisko Java

Pisząc kod w Javie, można przełączyć się do widoku pokazującego strukturę kodu

Thread Debugger pozwala na dokładną analizę wzajemnych związków pomiędzy działającymi wątkami w aplikacjach. Wykrywane są zakleszczenia czy sytuacje, w których jeden z wątków otrzymuje zbyt mało zasobów, by mógł działać prawidłowo. Wszystkie informacje są dostępne do analizy w czasie działania aplikacji (oprócz tego mogą być zapisywane w pliku log).

Każda operacja związana z wątkami (utworzenie, blokada itp.) jest ilustrowana na wykresie. Dzięki temu na bieżąco widać, co dzieje się w programie. Przykładowo, gdy nastąpi blokada, można w większości przypadków przejść od razu do odpowiedniego fragmentu kodu.

Oprócz analizy wątków, Thread Debugger śledzi powstawanie obiektów odpowiedzialnych za synchronizację (tzw. monitorów czy sekcji krytycznych). W ten sposób można dokładnie zbadać przyczynę powstawania np. zakleszczeń.

Wyróżnioną kategorią są blokady wynikające z operacji wejścia/wyjścia - tam pokazany jest np. nie tylko czas oczekiwania, ale także prawdopodobna przyczyna opóźnienia.


TOP 200