W każdej aplikacji mogą wystąpić błędy.Przygotuj się na to pisząc odpowiednią obsługę wyjątków
* Poznaj techniki programowania, dzięki którym Twoje aplikacje staną się odporne na błędy
* Naucz się przewidywać błędy i zapobiegać ich występowaniu
* Zabezpiecz aplikacje przez skutkami wystąpienia błędów stosując odpowiednie wzorce projektowe
Żaden kod nie jest idealny -- nawet najbardziej doświadczony programista popełnia błędy. Tym, co w takich przypadkach wyróżnia doświadczonego programistę jest fakt, że jego aplikacje posiadają mechanizmy pozwalające na obsługę tych błędów. Dzięki nim program nie zawiesi się ani nie "pogubi" żadnych danych. Oczywiście, aby napisać odpowiednią obsługę wyjątków, należy poznać ich typy oraz mechanizmy ich powstawania. Niezbędna jest również znajomość wzorców projektowych oraz narzędzi do testowania kodu.
W książce "Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu" znajdziesz wszystkie te informacje. Dowiesz się, jak zaimplementować obsługę wyjątków i poprawić jakość kodu źródłowego. Poznasz modele wyjątków i nauczysz się zarządzać mechanizmami ich obsługi na poziomie aplikacji i pojedynczych modułów. Przeczytasz tu także o wzorach projektowych zapewniających prawidłową obsługę wyjątków.
* Koncepcje obsługi wyjątków
* Obsługa wyjątków w aplikacjach wielowątkowych
* Przyczyny występowania wyjątków w różnych elementach języka Java
* Programowanie rozproszone w Javie
* Wyjątki w aplikacjach J2EE
* Wzorce projektowe
* Testowanie kodu i usuwanie błędów
Po przeczytaniu tej książki Twoja wiedza pozwoli Ci na podejmowanie odpowiednich decyzje dotyczące architektury aplikacji i odpowiadającego jej modelu wyjątków.
Gotowe rozwiązania i przykłady dla użytkowników Flasha
Zamiast koncentrować się na abstrakcyjnych niuansach języka ActionScript, można skorzystać z gotowych sposobów rozwiązywania typowych problemów. Receptury ułatwiają pisanie skryptów w języku ActionScript, ucząc przy tym praktycznych technik, które na pewno będą przydatne jeszcze wiele razy.
Ogrom możliwości języka ActionScript może przytłaczać. W niniejszej książce analizujemy zaawansowane technologie jako zespoły prostych czynności, z których każda ma praktyczne znaczenie i z których każdą warto zrozumieć. Książka "ActionScript. Receptury" jest interesująca zarówno dla młodego kodera, jak i dla doświadczonego programisty, ponieważ pozwala spojrzeć z nowej perspektywy i podejść w nowy sposób do zagadnień programowania w języku ActionScript, jednocześnie umożliwiając ugruntowanie zdobytych już umiejętności.
Książka "ActionScript. Receptury" zawiera ponad 300 receptur związanych z niezliczoną ilością tematów, wśród których znajdują się m.in.:
* rysowanie kształtów za pomocą instrukcji skryptów;
* programistyczne sterowanie odtwarzaniem klipów filmowych;
* obsługa wprowadzania tekstu i operacje na łańcuchach znaków;
* udostępnianie strumieni audio i wideo dzięki technologii Flash Communication Server;
* wykorzystanie technologii Flash Remoting do tworzenia połączeń z zapleczem bazodanowym;
* posługiwanie się zestawami rekordów i macierzami danych;
* wiele, wiele innych rozwiązań w 20 pełnych receptur rozdziałach.
Na początku książki omówione są krótkie, proste receptury. Później, stopniowo, pojawiają się dłuższe i bardziej skomplikowane skrypty wykonujące coraz bardziej wymyślne zadania. Taki układ wiedzy umożliwia łączenie poznanych skryptów w rozwiązania, na których można oprzeć swoje aplikacje utworzone we Flashu. Miła niespodzianka czeka i tego, kto nad jednostkowe receptury wyżej ceni duże aplikacje: w książce opisano siedem kompletnych, złożonych projektów we Flashu.
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktykWydawnictwo Helion
Czytelny i przejrzysty kod to podstawa sprawnego tworzenia aplikacji. W przypadku pracy zespołowej stosowanie wspólnego standardu kodowania to konieczność. Pisanie kodu w oparciu o określone standardy kodowania przyspiesza powstawanie programu, ułatwia komunikację pomiędzy członkami zespołu i pozwala na szybkie wdrożenie nowych programistów do projektu. Oczywiście, w każdej firmie lub zespole można ustalić własny standard kodowania -- ważne jest jednak, aby opierał się na określonych regułach, wynikających ze specyfiki języka programowania.
Książka "Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk" zawiera opis wspomnianych reguł. Przedstawia zasady pisania kodu źródłowego i standaryzowania określonych zapisów, operacji i sposobów wykorzystania elementów języka C++. Każda z zasad jest szczegółowo omówiona i poparta praktycznymi przykładami. Książka prezentuje najlepsze ze znanych praktyk -- zarówno "starych", jak i tych, które całkiem niedawno uległy standaryzacji, oraz opisuje techniki, o których nie słyszeli nawet programiści z wieloletnim doświadczeniem.
* Organizacja kodu
* Styl projektowy i styl kodowania
* Skalowalność kodu
* Racjonalna i efektywna obsługa błędów
* Prawidłowe stosowanie elementów języka
* Odpowiednie korzystanie z STL
* Bezpieczeństwo typów
Usprawnij pracę, stosując standardy kodowania -- gdy za parę miesięcy będziesz musiał wrócić do swoich dzisiejszych programów, przekonasz się, że było warto.
Usuń luki w zabezpieczeniach programów i systemów operacyjnych
* Poznaj przyczyny powstawania luk
* Naucz się sposobów włamań do systemów
* Podejmij odpowiednie środki zapobiegawcze
Niemal co tydzień dowiadujemy się o nowych "łatach" usuwających luki w zabezpieczeniach systemów operacyjnych i programów. Niestety -- często, zanim łata zostanie rozpowszechniona i zainstalowana na komputerach, ktoś wykorzysta "dziurę" w systemie i włamie się do niego. Cóż więc zrobić, aby zabezpieczyć swoje dane przez atakiem hakera? Jak znaleźć słabe punkty zabezpieczeń i usunąć je? W jaki sposób zaimplementować odpowiednie zabezpieczenia w tworzonym przez siebie oprogramowaniu?
Książka "The Shellcoder’s handbook. Edycja polska" zawiera odpowiedzi na wszystkie te pytania. Książka będąca efektem pracy zespołu złożonego ze specjalistów w zakresie bezpieczeństwa systemów komputerowych, analityków i hakerów przedstawia sposoby wykrywania słabych punktów oprogramowania tworzonego w języku C i sprawdzenia możliwości ich wykorzystania. Opisuje luki w istniejących systemach i programach oraz sposoby ich zabezpieczenia. Zawarte w niej wiadomości pozwolą na tworzenie własnych systemów wykrywania błędów i pomogą ustalić, czy błędy te stanowią potencjalne zagrożenie.
* Podstawowe metody włamań do różnych systemów operacyjnych
* Techniki przepełniania stosu, wykorzystywania kodu powłoki i błędów łańcuchów formatujących
* Kontrola słabych punktów programów metodami wstrzykiwania kodu i fuzzingu
* Kontrola kodu źródłowego programów
* Klasy błędów
* Sposoby śledzenia słabych punktów
* Analiza kodu binarnego
* Tworzenie eksploitów
* Ataki na systemy zarządzania bazami danych
Nie dopuść do tego, aby Twoje programy padły ofiarą ataku hakera.
Wykorzystaj wszystko, co oferuje Ci Flash
* Stwórz złożone animacje
* Kontroluj obiekty za pomocą języka ActionScript
* Połącz film wykonany we Flashu z bazą danych
Macromedia Flash 8 nie jest po prostu programem do tworzenia animacji wektorowej. Zawiera on również -- a może przede wszystkim -- potężny język programowania ActionScript, wykorzystywany do wielu zadań związanych z tworzeniem interaktywnych prezentacji multimedialnych i witryn WWW. Dopiero użycie ActionScriptu ujawnia prawdziwą potęgę Flasha. Dzięki temu w pełni obiektowemu językowi można uzyskać efekty niemożliwe do osiągnięcia za pomocą narzędzi rysunkowych i animacyjnych Flasha.
W książce "Flash 8. Techniki zaawansowane. Klatka po klatce" znajdziesz omówienie technik związanych ze stosowaniem języka ActionScript. Poznasz podstawy tego języka, a także dowiesz się, w jaki sposób pisać skrypty i do jakich obiektów je dołączać. Nauczysz się kontrolować za jego pomocą elementy graficzne, dźwiękowe, tekstowe i nawigacyjne umieszczone w prezentacji. Zdobędziesz wiedzę na temat możliwości połączenia witryn WWW tworzonych we Flashu z zewnętrznymi plikami, przeglądarką internetową i serwerem, na którym są one publikowane. Znajdziesz tu także informacje o wykrywaniu i usuwaniu błędów w skryptach.
W książce poruszone zostały następujące tematy:
* zaawansowane narzędzia animacyjne,
* korzystanie z cyfrowego wideo w filmach Flasha,
* elementy języka ActionScript,
* panel Actions,
* tworzenie i używanie obiektów,
* zarządzanie listwami czasowymi,
* obsługa klawiatury i myszy,
* komunikacja z serwerem i przeglądarką,
* pobieranie danych z zewnątrz,
* sterowanie elementami graficznymi i dźwiękiem.
Odkryj niesamowite możliwości Flasha i ActionScriptu!
Przetestuj swoje aplikacje podczas ich tworzenia
* Poznaj strukturę testów jednostkowych
* Stwórz poprawne testy jednostkowe
* Wykorzystaj moduły testowe w projekcie
Testy jednostkowe są niezwykle ważnym narzędziem programisty. Przeprowadzane podczas pisania aplikacji pozwalają na sprawdzenie poprawności kodu, wyłapanie błędów i szybkie usunięcie ich. W nowoczesnych metodykach wytwarzania oprogramowania testy jednostkowe są jednymi z najważniejszych elementów procesu. Tworzenie systemów bez korzystania z testów jednostkowych często porównywane jest do pisania programów na kartce. Nowoczesne narzędzia takie, jak JUnit bardzo ułatwiają przeprowadzanie testów jednostkowych, integrując się ze środowiskami programistycznymi.
Książka "JUnit. Pragmatyczne testy jednostkowe w Javie" to wprowadzenie do tematyki testów jednostkowych. Czytając ją poznasz ich znaczenie i nauczysz się stosować JUnit do projektowania i wykorzystywania testów. Dowiesz się, jak projektować testy jednostkowe w oparciu JUnit, co testować za ich pomocą i gdzie umieszczać kod testowy. W książce przeczytasz też o zasadach projektowania łatwego do testowania kodu oraz programowaniu sterowanym testami.
* Cele przeprowadzania testów jednostkowych
* Planowanie testów
* Implementacja testów z wykorzystaniem JUnit
* Zasady stosowania testów
* Automatyzowanie testów
* Określanie częstotliwości testowania
* Projektowanie kodu pod kątem testowania
Przekonaj się, jak bardzo testy jednostkowe ułatwią Ci pracę.
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Testowanie aplikacji to temat najczęściej pomijany przez programistów. Testowanie nie jest tak pasjonujące jak tworzenie programów czy poznawanie nowych narzędzi. Jest jednak niezbędne. Prawidłowo przeprowadzony proces testowania może znacznie poprawić wydajność, podnieść jakość projektu i kodu, zmniejszyć obciążenia wynikające z konserwacji kodu i pomóc lepiej zaspokoić wymagania klientów, współpracowników i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczególnie za pomocą testów automatycznych, jest niezwykle istotnym procesem.
Książka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programistów Perla, którzy chcą poprawić jakość i wydajność tworzonych przez siebie programów. Opisuje metody tworzenia testów automatycznych, stosowania ich i interpretowania ich wyników. Przedstawia sposoby testowania pojedynczych modułów, całych aplikacji, witryn WWW, baz danych, a nawet programów stworzonych w innych językach programowania. Zawiera również informacje o tym, jak dostosować podstawowe narzędzia testujące do własnego środowiska i projektów.
* Instalowanie modułów testujących
* Pisanie testów
* Automatyzacja uruchamiania testów
* Analiza wyników testów
* Dystrybucja testów
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dzięki wiadomościom zawartym w tej książce można zredukować długość cyklu tworzenia oprogramowania i zdecydowanie ułatwić konserwację gotowych systemów.
Popularność języka Java stale rośnie. Programiści z całego świata wykorzystują go do tworzenia zarówno prostych aplikacji, jak i złożonych systemów. Podstawowa zaleta Javy -- przenośność kodu -- powoduje, że programy napisane w Javie możemy spotkać nie tylko na dyskach komputerów i serwerów, ale również w telefonach komórkowych i innych urządzeniach mobilnych. Java jest ciągle rozwijana -- w każdej kolejnej wersji pojawiają się nowe elementy, ułatwiające realizację coraz bardziej złożonych zagadnień programistycznych.
"Java. Kompendium programisty" to doskonały przewodnik po najnowszym wcieleniu języka Java, noszącym oznaczenie J2SE5. Każdy twórca aplikacji w Javie znajdzie tu niezbędne do swojej pracy informacje. Autor -- Herb Schildt, znany z wielu bestsellerowych pozycji dotyczących programowania w Javie i C++ -- opisuje wszystkie elementy języka Java w wersji 5. Typy danych, metody, konstrukcje, podstawowe biblioteki i techniki programistyczne -- wszystko zostało opisane prostym i zrozumiałym językiem oraz zilustrowane przykładami.
* Historia języka Java
* Podstawowe założenia programowania obiektowego
* Typy danych i zmienne
* Operatory
* Klasy, metody, pakiety i interfejsy
* Wątki i wyjątki
* Elementy bibliotek Javy
* Operacje wejścia i wyjścia
* Programowanie sieciowe
* Biblioteki AWT i Swing
* JavaBeans i serwlety
W tym podręczniku znajdziesz odpowiedzi na wszystkie pytania związane z Javą.
O autorze:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows.
[więcej...]
Gotowe rozwiązania i przykłady dla użytkowników Flasha
Zamiast koncentrować się na abstrakcyjnych niuansach języka ActionScript, można skorzystać z gotowych sposobów rozwiązywania typowych problemów. Receptury ułatwiają pisanie skryptów w języku ActionScript, ucząc przy tym praktycznych technik, które na pewno będą przydatne jeszcze wiele razy.
Ogrom możliwości języka ActionScript może przytłaczać. W niniejszej książce analizujemy zaawansowane technologie jako zespoły prostych czynności, z których każda ma praktyczne znaczenie i z których każdą warto zrozumieć. Książka "ActionScript. Receptury" jest interesująca zarówno dla młodego kodera, jak i dla doświadczonego programisty, ponieważ pozwala spojrzeć z nowej perspektywy i podejść w nowy sposób do zagadnień programowania w języku ActionScript, jednocześnie umożliwiając ugruntowanie zdobytych już umiejętności.
Książka "ActionScript. Receptury" zawiera ponad 300 receptur związanych z niezliczoną ilością tematów, wśród których znajdują się m.in.:
* rysowanie kształtów za pomocą instrukcji skryptów;
* programistyczne sterowanie odtwarzaniem klipów filmowych;
* obsługa wprowadzania tekstu i operacje na łańcuchach znaków;
* udostępnianie strumieni audio i wideo dzięki technologii Flash Communication Server;
* wykorzystanie technologii Flash Remoting do tworzenia połączeń z zapleczem bazodanowym;
* posługiwanie się zestawami rekordów i macierzami danych;
* wiele, wiele innych rozwiązań w 20 pełnych receptur rozdziałach.
Na początku książki omówione są krótkie, proste receptury. Później, stopniowo, pojawiają się dłuższe i bardziej skomplikowane skrypty wykonujące coraz bardziej wymyślne zadania. Taki układ wiedzy umożliwia łączenie poznanych skryptów w rozwiązania, na których można oprzeć swoje aplikacje utworzone we Flashu. Miła niespodzianka czeka i tego, kto nad jednostkowe receptury wyżej ceni duże aplikacje: w książce opisano siedem kompletnych, złożonych projektów we Flashu.
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktykWydawnictwo Helion
Czytelny i przejrzysty kod to podstawa sprawnego tworzenia aplikacji. W przypadku pracy zespołowej stosowanie wspólnego standardu kodowania to konieczność. Pisanie kodu w oparciu o określone standardy kodowania przyspiesza powstawanie programu, ułatwia komunikację pomiędzy członkami zespołu i pozwala na szybkie wdrożenie nowych programistów do projektu. Oczywiście, w każdej firmie lub zespole można ustalić własny standard kodowania -- ważne jest jednak, aby opierał się na określonych regułach, wynikających ze specyfiki języka programowania.
Książka "Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk" zawiera opis wspomnianych reguł. Przedstawia zasady pisania kodu źródłowego i standaryzowania określonych zapisów, operacji i sposobów wykorzystania elementów języka C++. Każda z zasad jest szczegółowo omówiona i poparta praktycznymi przykładami. Książka prezentuje najlepsze ze znanych praktyk -- zarówno "starych", jak i tych, które całkiem niedawno uległy standaryzacji, oraz opisuje techniki, o których nie słyszeli nawet programiści z wieloletnim doświadczeniem.
* Organizacja kodu
* Styl projektowy i styl kodowania
* Skalowalność kodu
* Racjonalna i efektywna obsługa błędów
* Prawidłowe stosowanie elementów języka
* Odpowiednie korzystanie z STL
* Bezpieczeństwo typów
Usprawnij pracę, stosując standardy kodowania -- gdy za parę miesięcy będziesz musiał wrócić do swoich dzisiejszych programów, przekonasz się, że było warto.
Usuń luki w zabezpieczeniach programów i systemów operacyjnych
* Poznaj przyczyny powstawania luk
* Naucz się sposobów włamań do systemów
* Podejmij odpowiednie środki zapobiegawcze
Niemal co tydzień dowiadujemy się o nowych "łatach" usuwających luki w zabezpieczeniach systemów operacyjnych i programów. Niestety -- często, zanim łata zostanie rozpowszechniona i zainstalowana na komputerach, ktoś wykorzysta "dziurę" w systemie i włamie się do niego. Cóż więc zrobić, aby zabezpieczyć swoje dane przez atakiem hakera? Jak znaleźć słabe punkty zabezpieczeń i usunąć je? W jaki sposób zaimplementować odpowiednie zabezpieczenia w tworzonym przez siebie oprogramowaniu?
Książka "The Shellcoder’s handbook. Edycja polska" zawiera odpowiedzi na wszystkie te pytania. Książka będąca efektem pracy zespołu złożonego ze specjalistów w zakresie bezpieczeństwa systemów komputerowych, analityków i hakerów przedstawia sposoby wykrywania słabych punktów oprogramowania tworzonego w języku C i sprawdzenia możliwości ich wykorzystania. Opisuje luki w istniejących systemach i programach oraz sposoby ich zabezpieczenia. Zawarte w niej wiadomości pozwolą na tworzenie własnych systemów wykrywania błędów i pomogą ustalić, czy błędy te stanowią potencjalne zagrożenie.
* Podstawowe metody włamań do różnych systemów operacyjnych
* Techniki przepełniania stosu, wykorzystywania kodu powłoki i błędów łańcuchów formatujących
* Kontrola słabych punktów programów metodami wstrzykiwania kodu i fuzzingu
* Kontrola kodu źródłowego programów
* Klasy błędów
* Sposoby śledzenia słabych punktów
* Analiza kodu binarnego
* Tworzenie eksploitów
* Ataki na systemy zarządzania bazami danych
Nie dopuść do tego, aby Twoje programy padły ofiarą ataku hakera.
Wykorzystaj wszystko, co oferuje Ci Flash
* Stwórz złożone animacje
* Kontroluj obiekty za pomocą języka ActionScript
* Połącz film wykonany we Flashu z bazą danych
Macromedia Flash 8 nie jest po prostu programem do tworzenia animacji wektorowej. Zawiera on również -- a może przede wszystkim -- potężny język programowania ActionScript, wykorzystywany do wielu zadań związanych z tworzeniem interaktywnych prezentacji multimedialnych i witryn WWW. Dopiero użycie ActionScriptu ujawnia prawdziwą potęgę Flasha. Dzięki temu w pełni obiektowemu językowi można uzyskać efekty niemożliwe do osiągnięcia za pomocą narzędzi rysunkowych i animacyjnych Flasha.
W książce "Flash 8. Techniki zaawansowane. Klatka po klatce" znajdziesz omówienie technik związanych ze stosowaniem języka ActionScript. Poznasz podstawy tego języka, a także dowiesz się, w jaki sposób pisać skrypty i do jakich obiektów je dołączać. Nauczysz się kontrolować za jego pomocą elementy graficzne, dźwiękowe, tekstowe i nawigacyjne umieszczone w prezentacji. Zdobędziesz wiedzę na temat możliwości połączenia witryn WWW tworzonych we Flashu z zewnętrznymi plikami, przeglądarką internetową i serwerem, na którym są one publikowane. Znajdziesz tu także informacje o wykrywaniu i usuwaniu błędów w skryptach.
W książce poruszone zostały następujące tematy:
* zaawansowane narzędzia animacyjne,
* korzystanie z cyfrowego wideo w filmach Flasha,
* elementy języka ActionScript,
* panel Actions,
* tworzenie i używanie obiektów,
* zarządzanie listwami czasowymi,
* obsługa klawiatury i myszy,
* komunikacja z serwerem i przeglądarką,
* pobieranie danych z zewnątrz,
* sterowanie elementami graficznymi i dźwiękiem.
Odkryj niesamowite możliwości Flasha i ActionScriptu!
Przetestuj swoje aplikacje podczas ich tworzenia
* Poznaj strukturę testów jednostkowych
* Stwórz poprawne testy jednostkowe
* Wykorzystaj moduły testowe w projekcie
Testy jednostkowe są niezwykle ważnym narzędziem programisty. Przeprowadzane podczas pisania aplikacji pozwalają na sprawdzenie poprawności kodu, wyłapanie błędów i szybkie usunięcie ich. W nowoczesnych metodykach wytwarzania oprogramowania testy jednostkowe są jednymi z najważniejszych elementów procesu. Tworzenie systemów bez korzystania z testów jednostkowych często porównywane jest do pisania programów na kartce. Nowoczesne narzędzia takie, jak JUnit bardzo ułatwiają przeprowadzanie testów jednostkowych, integrując się ze środowiskami programistycznymi.
Książka "JUnit. Pragmatyczne testy jednostkowe w Javie" to wprowadzenie do tematyki testów jednostkowych. Czytając ją poznasz ich znaczenie i nauczysz się stosować JUnit do projektowania i wykorzystywania testów. Dowiesz się, jak projektować testy jednostkowe w oparciu JUnit, co testować za ich pomocą i gdzie umieszczać kod testowy. W książce przeczytasz też o zasadach projektowania łatwego do testowania kodu oraz programowaniu sterowanym testami.
* Cele przeprowadzania testów jednostkowych
* Planowanie testów
* Implementacja testów z wykorzystaniem JUnit
* Zasady stosowania testów
* Automatyzowanie testów
* Określanie częstotliwości testowania
* Projektowanie kodu pod kątem testowania
Przekonaj się, jak bardzo testy jednostkowe ułatwią Ci pracę.
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Testowanie aplikacji to temat najczęściej pomijany przez programistów. Testowanie nie jest tak pasjonujące jak tworzenie programów czy poznawanie nowych narzędzi. Jest jednak niezbędne. Prawidłowo przeprowadzony proces testowania może znacznie poprawić wydajność, podnieść jakość projektu i kodu, zmniejszyć obciążenia wynikające z konserwacji kodu i pomóc lepiej zaspokoić wymagania klientów, współpracowników i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczególnie za pomocą testów automatycznych, jest niezwykle istotnym procesem.
Książka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programistów Perla, którzy chcą poprawić jakość i wydajność tworzonych przez siebie programów. Opisuje metody tworzenia testów automatycznych, stosowania ich i interpretowania ich wyników. Przedstawia sposoby testowania pojedynczych modułów, całych aplikacji, witryn WWW, baz danych, a nawet programów stworzonych w innych językach programowania. Zawiera również informacje o tym, jak dostosować podstawowe narzędzia testujące do własnego środowiska i projektów.
* Instalowanie modułów testujących
* Pisanie testów
* Automatyzacja uruchamiania testów
* Analiza wyników testów
* Dystrybucja testów
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dzięki wiadomościom zawartym w tej książce można zredukować długość cyklu tworzenia oprogramowania i zdecydowanie ułatwić konserwację gotowych systemów.
Popularność języka Java stale rośnie. Programiści z całego świata wykorzystują go do tworzenia zarówno prostych aplikacji, jak i złożonych systemów. Podstawowa zaleta Javy -- przenośność kodu -- powoduje, że programy napisane w Javie możemy spotkać nie tylko na dyskach komputerów i serwerów, ale również w telefonach komórkowych i innych urządzeniach mobilnych. Java jest ciągle rozwijana -- w każdej kolejnej wersji pojawiają się nowe elementy, ułatwiające realizację coraz bardziej złożonych zagadnień programistycznych.
"Java. Kompendium programisty" to doskonały przewodnik po najnowszym wcieleniu języka Java, noszącym oznaczenie J2SE5. Każdy twórca aplikacji w Javie znajdzie tu niezbędne do swojej pracy informacje. Autor -- Herb Schildt, znany z wielu bestsellerowych pozycji dotyczących programowania w Javie i C++ -- opisuje wszystkie elementy języka Java w wersji 5. Typy danych, metody, konstrukcje, podstawowe biblioteki i techniki programistyczne -- wszystko zostało opisane prostym i zrozumiałym językiem oraz zilustrowane przykładami.
* Historia języka Java
* Podstawowe założenia programowania obiektowego
* Typy danych i zmienne
* Operatory
* Klasy, metody, pakiety i interfejsy
* Wątki i wyjątki
* Elementy bibliotek Javy
* Operacje wejścia i wyjścia
* Programowanie sieciowe
* Biblioteki AWT i Swing
* JavaBeans i serwlety
W tym podręczniku znajdziesz odpowiedzi na wszystkie pytania związane z Javą.
O autorze:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows.
[więcej...]
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWydawnictwo Helion
Poznaj skuteczne rozwiązania problemów, jakie napotkasz podczas codziennej pracy programisty
* Prawidłowo zoptymalizuj kod źródłowy
* Zaprojektuj efektywną obsługę wyjątków
* Naucz się odpowiednio korzystać z przestrzeni nazw
Nauka każdego nowego zagadnienia przebiega zdecydowanie szybciej i efektywniej pod kierunkiem osoby znającej temat. Nie inaczej jest w przypadku nauki programowania w języku C++. Programowanie w tym języku wymaga dogłębnego opanowania możliwości biblioteki standardowej, inżynierii oprogramowania i wielu innych tematów. Rozwiązując samodzielnie zagadki, jakie często pojawiają się podczas poznawania języka C++ lepiej zapamiętujemy ich rozwiązania, dzięki czemu łatwiej możemy zastosować je w codziennej pracy.
Książka "Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań" to zbiór zagadnień związanych z niemal wszystkimi aspektami programowania w C++, przedstawionych w formie zagadek z rozwiązaniami. Opisuje zarówno podstawy stosowania szablonów, biblioteki standardowej i projektowanie klas, jak i tematy zaawansowane -- przestrzenie nazw, wyjątki, dziedziczenie i zarządzanie zasobami. Czytając ją, przekonasz się, w jaki sposób można użyć pozornie niezwiązanych ze sobą elementów do opracowania nowych i oryginalnych rozwiązań częstych problemów.
* Poprawne stosowanie predykatów
* Kontenery i wskaźniki
* Korzystanie z szablonów
* Optymalizacja kodu
* Bezpieczna obsługa wyjątków
* Mechanizmy dziedziczenia i polimorfizmu
* Zarządzanie zasobami i pamięcią
* Makrodefinicje
* Przestrzenie nazw
Gdy zrozumiesz zagadnienia opisywane w tej książce, nie będziesz musiał podczas programowania zastanawiać się nad szczegółami -- będziesz mógł skoncentrować się na problemach, które naprawdę chcesz rozwiązać.
O autorze:
Herb Sutter to ekspert od programowania w języku C++. Jest regularnie zapraszany do wygłaszania wykładów na konferencjach dla programistów.
[więcej...]
Wyszukiwanie błędów w kodzie to czynność, którą programiści wykonują niemal równie często, jak pisanie kodu. Narzędzia do wykrywania i poprawiania błędów tylko częściowo rozwiązują problem. W wielu przypadkach błąd nie tkwi w nieprawidłowo sformułowanym poleceniu lub źle zdefiniowanej zmiennej, ale w miejscu, którego nawet najlepsze narzędzie nie znajdzie. Programista musi się nauczyć samemu bronić przed ukrytymi pomyłkami i nieprzyjemnymi niespodziankami. Błędy trzeba znaleźć, zanim one znajdą nas.
Książka "Znajdź błąd. Sztuka analizowania kodu" to zbiór 50 programów napisanych w językach Perl, C, Java, Python i asembler x86. Każdy z nich zawiera jeden, trudny do znalezienia, ale jak najbardziej realistyczny błąd. Wykrycie go wymaga przewidzenia sposobu, w jaki program będzie wykonywany, i prześledzenia krok po kroku jego działania. Każdy przykład opatrzony jest wskazówkami pomocnymi przy wyszukiwaniu błędów. Książka przedstawia sposoby analizowania programów i przewidywania miejsc, w których może wystąpić błąd.
* Klasyfikacja błędów
* Metody analizy kodu
* Błędy w programach w języku C
* Analiza aplikacji napisanych w języku Python
* Wyszukiwanie błędów w programach w języku Java
* Programy w języku Perl i asembler x86
Wykonując zadania zawarte w tej książce, nie tylko nauczysz się odnajdywać błędy, ale także udoskonalisz swoje umiejętności w zakresie pisania aplikacji.
* Obszerny przewodnik po języku Java -- zaktualizowany dla wersji JDK 1.3
* Pełne omówienie środowiska programowania zorientowanego obiektowo oraz klas Swing
* Więcej przykładowch kodów przydatnych profesjonalnym programistom
* CD-ROM zawiera kod źródłowy wszystkich programów, J2SE w wersji 1.3, Forte™ -- Java Community Edition i wiele więcej!
Pięć wydań w USA, pierwsze wydanie w Polsce!
"Java 2. Podstawy” jest najlepszą książką dla programistów. Nie ma sobie równych pod względem ilości przekazanych informacji, a mimo to pozostaje bardzo czytelna. -- K. N. King, Computer Reviews
Programiści znajdą tu wszystko, czego potrzeba, aby wykorzystać potęgę języka Java… -- PC Week
"Java 2. Podstawy" dostarcza wszystkiego, czego potrzebujesz, aby ukończyć nawet najbardziej skomplikowane projekty. Dlatego właśnie ta książka przez pięć lat była międzynarodowym bestsellerem. "Java 2. Podstawy" omawia podstawy platformy Java 2 Standard Edition w wersji 1.3, zawiera pełny opis zorientowanego obiektowo środowiska programistycznego Javy, komponentów interfejsu użytkownika Swing i wiele, wiele więcej.
Piąta wydanie prezentuje wiele nowych, gotowych do zastosowania programów, z których zasłynęły poprzednie edycje tej książki: pojawiły się również nowe programy dotyczące mechanizmu odbicia oraz optymalizacji kodu. Szczegółowo wyjaśniono koncepcję klas wewnętrznych, funkcjonowanie proxy, obsługę wyjątków, techniki usuwania błędów, model zdarzeń Javy, interfejs wejścia/wyjścia oraz zarządzania plikami.
Kompendium dla programistów Javy, a w nim:
* Omówienie języka Java i tworzenia aplikacji w środowisku Forte(tm)
* Tworzenie aplikacji GUI przy pomocy nowych klas Swing
* Sposoby pisania klas proxy i klas wewnętrznych
* Korzystanie z modelu zdarzeń Javy
* Omówienie klas strumieni oraz mechanizmu zarządzania plikami
To idealna książka dla profesjonalnych programistów, którzy chcą nauczyć się Javy i wykorzystać ją w swojej pracy zawodowej. Zawiera CD-ROM z kodem źródłowy wszystkich przykładów, Forte ™ -- Java Community Edition (zintegrowane środowisko programistyczne Javy) oraz wersje testowe wielu innych użytecznych programów.
Podręczna pomoc dla programisty ActionScript
ActionScript to język skryptowy pakietu Macromedia Flash służący do tworzenia praktycznie każdego rodzaju treści -- od graficznego interfejsu użytkownika i gier do sekwencerów dźwięku i animowanych wygaszaczy ekranu. Składniowo jest niemal identyczny z językiem JavaScript, lecz jest dostosowany do obsługi elementów stworzonych w programie Flash. ActionScript pozwala na tworzenie kodu strukturalnego, obiektowego oraz stanowiącego dowolne połączenie tych dwóch rodzajów.
Ta niewielka książeczka będzie Twoją podręczną pomocą, do której będziesz mógł się odwołać, gdy zapomnisz argumentów potrzebnej Ci właśnie funkcji lub gdy będziesz chciał przypomnieć sobie składnię rzadziej używanej konstrukcji ActionScriptu. Znajdziesz w niej krótkie, zwięzłe i zrozumiałe opisy wszystkich elementów składających się na ten język programowania. Jest to niezbędna pozycja dla wszystkich programistów Flasha.
Teoria i praktyka prowadzenia projektów programistycznych
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do przekazania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia oprogramowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
"eXtreme programming" przedstawia nową metodologię i praktykę programowania w przystępny, a jednocześnie kompleksowy sposób. Autorzy omawiają podstawowe pojęcia programowania ekstremalnego: planowanie edycji, programowanie w parach, wczesne testowanie, "zręczne modelowanie" i refaktoryzację. Zostały one zaprezentowane na przykładzie konkretnego projektu, którego realizację omówiono w książce.
Kto powinien przeczytać tę książkę? Będzie ona niewątpliwie pożyteczną lekturą dla każdego, kto choć częściowo związał swe życie z tworzeniem oprogramowania -- programisty, menedżera czy koordynatora projektu. I nawet gdyby miało skończyć się tylko na czytaniu -- bez praktycznego zastosowania w najbliższym projekcie poznanych reguł, wiedza o programowaniu ekstremalnym okaże się bez wątpienia pożyteczna.
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do oddania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia programowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
Przegląd funkcji i możliwości .NET Framework 2.0
oraz środowiska CLR 2.0 dla zaawansowanych
* Jakie możliwości oferuje platforma .NET Framework 2.0 i środowisko CLR 2.0?
* Jak szybko i łatwo pisać aplikacje dla systemu Windows?
* Jak zwiększyć swą produktywność?
Wraz z coraz bardziej rozbudowaną funkcjonalnością .NET Framework rośnie także jej popularność. Możliwość błyskawicznego tworzenia zaawansowanych aplikacji dla systemu Windows na bazie tej platformy oraz wspólnego środowiska uruchomieniowego CLR sprawia, że coraz większa rzesza programistów pragnie poznać te technologie i wykorzystać je do zwiększenia swej produktywności. Wersja 2.0 .NET Framework udostępnia większą liczbę wbudowanych kontrolek, nowe funkcje obsługi baz danych za pomocą ADO.NET, rozbudowane narzędzia do tworzenia witryn internetowych przy użyciu ASP.NET i wiele innych usprawnień znacznie ułatwiających programowanie.
".NET Framework 2.0. Zaawansowane programowanie" to podręcznik dla programistów, którzy chcą szybko rozpocząć pracę z tą platformą. Dzięki tej książce poznasz mechanizmy działania .NET Framework i środowiska CLR, a także funkcje licznych bibliotek, zarówno tych podstawowych, jak i bardziej wyspecjalizowanych. Dowiesz się, jak przy użyciu tych technologii łatwo zapewniać bezpieczeństwo kodu, debugować oprogramowanie, obsługiwać transakcje, zapewniać współdziałanie aplikacji z kodem niezarządzanym i wykonywać wiele innych potrzebnych operacji.
* Funkcjonowanie środowiska CLR
* Struktura i mechanizmy wspólnego systemu typów (CTS)
* Działanie języka pośredniego (IL) i kompilacji JIT
* Obsługa operacji wejścia-wyjścia
* Tworzenie aplikacji międzynarodowych
* Zapewnianie bezpieczeństwa kodu
* Programowanie współbieżne przy użyciu wątków, domen i procesów
* Umożliwianie współdziałania z kodem niezarządzanym
* Debugowanie oprogramowania
* Stosowanie wyrażeń regularnych
* Programowanie dynamiczne z zastosowaniem metadanych i refleksji
* Obsługa transakcji
Zacznij korzystać z możliwości .NET Framework 2.0
i już dziś zwiększ swą produktywność.
Poznaj ogromne możliwości języka ActionScript 2.0
ActionScript to obiektowy język programowania zaimplementowany w jednym z najpopularniejszych narzędzi do tworzenia interaktywnych witryn WWW, czyli w programie Macromedia Flash. Korzystanie z ActionScriptu pozwala wydobyć z Flasha możliwości niedostępne z poziomu jego narzędzi graficznych i animacyjnych. ActionScript daje projektantowi niemal nieograniczoną swobodę twórczą. Za pomocą odpowiednio skonstruowanych skryptów można tworzyć zarówno proste przyciski i animacje, jak i złożone mechanizmy pobierania danych z zewnętrznych źródeł, dynamicznego generowania grafiki i dokumentów oraz sterowania animacją w zależności od działań użytkownika.
Książka "Macromedia Flash 8 ActionScript. Oficjalny podręcznik", przygotowana we współpracy z producentem Flasha -- firmą Macromedia, umożliwi Ci odkrycie niesamowitych możliwości języka ActionScript. Wykonując przedstawione w niej ćwiczenia i projekty, poznasz składnię tego języka i zasady programowania obiektowego. Dowiesz się, jak za pomocą skryptów kontrolować odtwarzanie animacji i zachowanie obiektów na scenie oraz nauczysz się korzystać w animacjach z elementów pobieranych z plików i baz danych. Przeczytasz o przetwarzaniu plików XML, weryfikowaniu danych wprowadzanych przez użytkownika oraz odtwarzaniu plików multimedialnych za pomocą Flasha.
* Elementy panelu Actions
* Składnia języka ActionScript
* Funkcje i instrukcje warunkowe
* Klasy obiektów
* Obsługa zdarzeń
* Korzystanie z plików graficznych i cyfrowego wideo
* Tworzenie komponentów
* Odczyt danych z plików zewnętrznych
* Drukowanie z poziomu prezentacji
* Optymalizacja plików SWF
"J2ME. Almanach" to niezastąpione, podręczne kompendium wiedzy dla programistów korzystających z Java 2 Micro Edition (J2ME). J2ME to nowa rodzina specyfikacji powstałych w firmie SUN, opisujących uproszczoną, skondensowaną wersję platformy Java 2, która może być używana do tworzenia aplikacji działających na urządzeniach o bardzo ograniczonych zasobach, takich jak telefony komórkowe, palmtopy czy dwukierunkowe pagery.
W książce znajdziesz:
* Wprowadzenie do platformy J2ME i środowisk programistycznych, takich jak Java Wireless Toolkit
* Szczegółowy opis możliwości i wymagań CLDC, MIDP i MIDletów
* Dogłębne omówienie interfejsu użytkownika stosowanego w MIDletach oraz wiele praktycznych wskazówek dotyczących wykorzystania MIDP UI API
* Prezentację sposobów w jaki używać Generic Connection Framework API w celu korzystania z bezprzewodowego Internetu, a także API dla przechowywania danych
* Wprowadzenie do Connected Device Configuration (CDC) i profili CDC
W książce zawarto znany z innych pozycji serii Almanach wydawnictwa O"Reilly obszerny alfabetyczny spis elementów języka, obejmujący klasy z wielu pakietów J2ME, w tym java.lang, java.io, java.util, java.microediton.io, java.microediton.lcdui, java.microediton.midlet i java.microediton.rms. Gdy zaczniesz pracować z J2ME, "J2ME. Almanach" na stałe zagości na Twoim biurku i będzie podręcznym źródłem informacji.
Tysiące osób codziennie kupują nowe urządzenia wyposażone w możliwość uruchamiania aplikacji Javy. Jeśli chcesz, by były to także Twoje aplikacje, ta książka dostarczy Ci całej wiedzy potrzebnej do ich stworzenia.
Wzorce projektowe to opisy poprawnych rozwiązań problemów, na które napotkali programiści w swojej pracy. Pozwalają uniknąć pracy nad rozwiązaniem zagadnienia, które już dawno zostało rozwiązane. Jednak nawet największy zestaw wzorców projektowych jest nieprzydatny, jeśli nie wiadomo, jak zastosować je w określonym zadaniu. Wiedza o tym, że wzorzec istnieje bez umiejętności zaimplementowania go jest bezużyteczna.
Książka "J2EE. Stosowanie wzorców projektowych” zawiera nie tylko opisy wzorców, ale również sposoby ich implementacji w aplikacjach J2EE. Czytelnik znajdzie tu omówienie wzorców dotyczących wydajności, skalowalności i elastyczności aplikacji oraz wzorców ściśle związanych z tworzeniem aplikacji biznesowych. Książka przedstawia również nowe wzorce dla mechanizmów dystrybucji komunikatów i trwałości.
W książce omówiono:
* Podstawowe zasady tworzenia aplikacji biznesowych w Javie.
* Język UML jako uniwersalne narzędzie do modelowania aplikacji.
* Wzorce dla warstwy prezentacji.
* Wzorce dla warstwy logiki biznesowej.
* Wzorce komunikacji pomiędzy warstwami.
* Wzorce dystrybucji komunikatów.
* Przykłady błędnych wzorców.
Największą zaletą książki jest to, że przedstawia zastosowanie wzorców projektowych do tworzenia aplikacji biznesowych. Jeśli zajmujesz się tworzeniem aplikacji J2EE, to ta książka jest dla Ciebie lekturą obowiązkową.
Poznaj tajniki najpopularniejszego języka programowania
w erze Internetu
Chyba wszyscy użytkownicy internetu spotkali się z Javą, często nawet o tym nie wiedząc. W ciągu ostatnich 10 lat zyskała ona ogromną popularność, szczególnie wśród programistów aplikacji sieciowych. Jednakże kojarzenie jej z językiem przeznaczonym wyłącznie do tworzenia takich programów jest dużym błędem. Java to w pełni funkcjonalny i doskonale dopracowany język programowania, nadający się do tworzenia różnych aplikacji, a nie tylko apletów działających na stronach internetowych.
W Javie pisane są gry sieciowe, systemy bankowości elektronicznej, pakiety wspomagające sprzedaż i obsługę klienta, a nawet aplikacje działające w telefonach komórkowych i komputerach przenośnych. Podstawową zaletą języka Java jest przenośność kodu -- raz napisany program można uruchomić na każdym urządzeniu, na którym zainstalowane jest odpowiednie środowisko uruchomieniowe, zwane JRE.
Książka "Praktyczny kurs Java" przeznaczona jest dla osób rozpoczynających swoją przygodę z programowaniem w tym języku. Opisuje podstawy języka, zasady programowania obiektowego i tworzenia własnych apletów i aplikacji. Czytając kolejne rozdziały, dowiesz się:
* Jakie typy danych wykorzystywane są w Javie
* Jak deklarować zmienne i wyprowadzać ich wartości na ekran
* W jaki sposób sterować przebiegiem wykonywania programu
* Jakie zasady rządzą programowaniem obiektowym
* Czym są klasy, obiekty, argumenty i metody
* Co to są wyjątki i jak je obsługiwać w programie
* Jak wykorzystać zaawansowane techniki programowania obiektowego w swoich aplikacjach
* W jaki sposób uzyskiwać dostęp do systemu plików z poziomu swojej aplikacji
* Jak tworzyć aplety i samodzielne aplikacje
Zapoznaj się z podstawami programowania w Javie i naucz się zasad programowania obiektowego, a także dowiedz się, czym są wyjątki w Javie i stwórz własne aplety i aplikacje.
Twórz bezpieczne i wydajne aplikacje wielowątkowe
Chcesz podnieść wydajność swoich aplikacji? Planujesz stworzenie systemu, który będzie uruchamiany na maszynach wyposażonych w procesory wielordzeniowe? A może próbowałeś już tworzyć aplikacje wielowątkowe, ale zniechęciłeś się po wielogodzinnych poszukiwaniach przyczyn błędów, które pojawiają się przy wysokich obciążeniach? Java niemal od początku swego istnienia jest wyposażona w mechanizmy umożliwiające tworzenie aplikacji wielowątkowych, lecz dopiero wersja 5. wniosła zupełnie nową jakość, dzięki wielu poprawkom zwiększającym wydajność maszyny wirtualnej oraz dodatkowym klasom ułatwiającym osiąganie lepszej współbieżności.
W książce "Java. Współbieżność dla praktyków" znajdziesz wyczerpujący opis metod projektowania i tworzenia aplikacji wielowątkowych. Przeczytasz nie tylko o klasach, ich działaniu i sposobach wykorzystania, ale również poznasz wzorce projektowe, praktyki programistyczne i modele, dzięki którym programowanie współbieżne jest łatwiejsze. Znajdziesz tu praktyczne aspekty oraz przykłady tworzenia pewnych, skalowalnych i łatwych w konserwacji aplikacji współbieżnych. Dowiesz się także, w jaki sposób testować aplikacje wielowątkowe, wynajdywać w nich błędy i usuwać je.
Dzięki książce poznasz:
* Możliwości wykorzystania wątków
* Podstawy stosowania wątków
* Współdzielenie obiektów
* Struktura aplikacji wielowątkowych
* Zarządzanie wątkami i zadaniami
* Zastosowania pul wątków
* Optymalizowanie wydajności
* Skalowalność aplikacji wielowątkowych
* Testowanie aplikacji współbieżnych
* Model pamięci Javy
* Tworzenie własnych synchronizatorów
Opanuj język programowania, który zmienił oblicze sieci
* Jakie elementy tworzą język Java?
* Jak wykorzystać pełnię możliwości programowania obiektowego?
* Jak tworzyć własne aplety i aplikacje?
Interesuje Cię język programowania, który zyskuje coraz większą popularność wśród twórców rozwiązań korporacyjnych? A może zamierzasz tworzyć aplikacje dla urządzeń mobilnych? Najwyższa pora poznać tajniki Javy. Ten język już dawno przestał być narzędziem do tworzenia prostych programików osadzanych na stronach WWW. Współczesna Java to potężny obiektowy język programowania wykorzystywany w aplikacjach bankowych i finansowych, portalach internetowych i wielu innych systemach. Jedna z jego wersji służy także do pisania oprogramowania dla telefonów komórkowych, terminali BlackBerry i komputerów przenośnych. Warto więc poznać Javę.
"Praktyczny kurs Java. Wydanie II" to kolejna edycja podręcznika, dzięki któremu poznasz tajniki tego niezwykłego języka programowania. Znajdziesz tu omówienie elementów najnowszej wersji Javy, słów kluczowych tego języka, konstrukcji sterujących i zasad programowania. Dowiesz się, na czym polega projektowanie i programowanie obiektowe. Nauczysz się korzystać z mechanizmów obsługi wyjątków, implementować w programach operacje wejścia i wyjścia oraz budować własne aplikacje i aplety.
* Instalacja Javy w Windows i Linuksie
* Instrukcje Javy
* Operacje na tablicach
* Podstawy programowania obiektowego
* Obsługa wyjątków
* Zaawansowane zagadnienia programowania obiektowego
* Operacje wejścia i wyjścia
* Obsługa myszy i klawiatury
* Tworzenie interfejsów użytkownika
* Korzystanie z komponentów
Zostań profesjonalnym programistą Javy.
Poznaj nowoczesne technologie, aby perfekcyjnie tworzyć sprawne oprogramowanie!
* Jak tworzyć aplikacje JSF w środowisku Eclipse?
* Jak korzystać z frameworku JBoss Seam?
* Jak implementować niestandardowe komponenty, konwertery i mechanizmy weryfikujące?
JavaServer Faces (JSF) jest obecnie najpopularniejszą technologią, która pozwala na projektowanie interfejsu użytkownika poprzez umieszczenie na formularzu komponentów i powiązanie ich z obiektami Javy bez konieczności mieszania kodu źródłowego ze znacznikami. Mocną stroną JSF jest rozszerzalny model komponentowy, a także możliwość współpracy z środowiskami do budowy graficznych interfejsów użytkownika metodą przeciągnij-i-upuść. To nowoczesne narzędzie oferuje także mechanizmy rozwiązujące najtrudniejsze problemy w zakresie nawigacji, zarządzania połączeniami z usługami zewnętrznymi i konfiguracjami oraz izolowania prezentacji od logiki biznesowej.
Książka „JavaServer Faces. Wydanie II” prezentuje gruntownie zaktualizowaną wiedzę dotyczącą JSF oraz wyczerpujące omówienia najnowszych udoskonaleń mechanizmów wiążących tę technologię z platformą Java EE 5, a także analizę rozszerzeń interfejsów API. Zawiera praktyczne porady i wskazówki, dzięki którym szybko nauczysz się technik sterowania przechodzeniem pomiędzy stronami z wykorzystaniem frameworku Shale; poznasz sposoby zastępowania znaczników JSP znacznikami XHTML za pomocą technologii Facelets; do perfekcji opanujesz sztukę rozbudowy tej technologii o własne biblioteki. „Core JavaServer Faces” to doskonały, usystematyzowany zbiór najlepszych praktyk budowy oprogramowania, minimalizowania trwale kodowanych elementów i maksymalizacji produktywności.
* Komponenty zarządzane
* Zaawansowane techniki nawigacji
* Znaczniki i formularze
* Konwersja i weryfikacja poprawności danych
* Implementacja klas niestandardowych mechanizmów weryfikacji
* Powidoki i pakiet Apache Tiles
* Niestandardowe komponenty, konwertery i mechanizmy weryfikujące
* Eliminowanie wycieków połączeń
* Uzyskiwanie dostępu do informacji składowych w katalogach LDAP
* Implementacja mechanizmu weryfikacji w czasie rzeczywistym z wykorzystaniem frameworku Ajax4jsf
Zastosuj nowoczesne technologie JSP, aby w prosty sposób budować zaawansowane i sprawne aplikacje.
Przyspiesz tworzenie aplikacji w Javie
* Uprość określanie zależności pomiędzy klasami
* Zastosuj narzędzie Hibernate do usprawnienia komunikacji z bazami danych
* Wykorzystaj możliwości programowania aspektowego
Technologia J2EE miała w założeniu być prosta i szybka w użytkowaniu. Praktyka jednak okazała się daleka od teorii. Mozolne tworzenie aplikacji wykorzystujących dziesiątki interfejsów połączonych wzajemnymi zależnościami, setki deskryptorów wdrożenia oraz plików pomocniczych spowodowało, że zaczęto poszukiwać rozwiązań alternatywnych. Jednym z nich okazał się framework Spring, zyskujący coraz większą popularność wśród programistów Javy. Spring jest znacznie dużo prostszy od wielu alternatywnych rozwiązań J2EE, znacznie ułatwia testowanie aplikacji, i pozwala na usuwanie zależności z kodu oraz oddzielanie ich od serwera aplikacji. Spring umożliwia również wykorzystanie programowania aspektowego.
Książka "Spring. Zapiski programisty" to praktyczny przewodnik po możliwościach tego środowiska. Jeśli wolisz poznawać nowe zagadnienia w sposób praktyczny, a nie wertując setki stron zapełnionych teoretycznymi wywodami, to ta książka jest właśnie dla Ciebie. Znajdziesz w niej omówienie zagadnień związanych z samym Springiem, współpracującymi z nim narzędziami i sposobami wykorzystania ich w procesie tworzenia aplikacji J2EE -- począwszy do graficznego interfejsu użytkownika i interfejsu sieciowego, a skończywszy na dostępie do relacyjnych baz danych.
* Tworzenie klas z zastosowaniem zależności
* Budowanie interfejsu użytkownika
* Integrowanie JSF z frameworkiem Spring
* Dostęp do baz danych za pomocą JDBC
* Odwzorowanie baz danych na obiekty za pomocą Hibernaete
* Obsługa i zabezpieczanie transakcji
* Wysyłanie i odbieranie wiadomości e-mail
Jeśli poszukujesz wydajniejszych metod tworzenia aplikacji J2EE, wykorzystaj możliwości frameworka Spring. Dzięki tej książce poznasz je wszystkie.
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion
Przy tworzeniu systemów informatycznych najważniejsze zadania wykonuje się, zanim powstanie pierwszy fragment kodu źródłowego. Wymogi stawiane współczesnym aplikacjom powodują, że inżynieria oprogramowania staje się kwestią kluczową. Opracowanie odpowiedniego projektu oraz właściwy dobór technologii i metodologii zapewniają szybką i efektywną pracę nad systemem. Niezwykle ważne jest poznanie dostępnych w języku Java struktur danych i umiejętność ich wykorzystania. Prawidłowo dobrana struktura danych znacznie przyspiesza nie tylko implementację aplikacji, ale również działanie gotowego systemu.
Książka "Struktury danych i techniki obiektowe na przykładzie Javy 5.0" przedstawia podstawowe struktury danych i sposoby ich wykorzystania podczas programowania obiektowego. Wszystkie wiadomości zostały zaprezentowane z uwzględnieniem reguł nowoczesnej inżynierii oprogramowania. Czytając kolejne rozdziały książki, poznasz najlepsze zastosowania różnych struktur danych oraz wady i zalety ich implementacji. Przede wszystkim jednak zrozumiesz potrzebę stosowania tak wielu struktur danych.
* Cykl życia oprogramowania
* Zastosowanie języka UML w projektowaniu systemów
* Obsługa błędów i wyjątków
* Testowanie oprogramowania
* Dziedziczenie i hierarchia klas
* Listy jedno- i dwukierunkowe
* Interfejs Collection
* Stosy i kolejki
* Algorytmy rekurencyjne
* Sortowanie danych
* Drzewa wyszukiwania
* Grafy
Po przeczytaniu tej książki zrozumiesz zasadę:
"Pomyśl, a dopiero potem pisz kod".
Wejdź w świat programowania w języku asemblera
* Dowiedz się, kiedy użycie asemblera jest niezbędne
* Poznaj zasady programowania w asemblerze
* Napisz szybkie i wydajne programy dla DOS-a i Windows
* Zdobądź wiedzę o zasadach działania procesora i pamięci
Uważasz, że możliwości języków programowania wysokiego poziomu nie pozwalają na napisanie programu, którego potrzebujesz? Chcesz stworzyć sterownik, program rezydentny, demo lub... wirusa? Interesuje Cię, co dzieje się w komputerze podczas wykonywania programu?
Wykorzystaj potencjał asemblera!
Programowanie w języku niskiego poziomu daje niemal nieograniczoną kontrolę nad sprzętem i działaniem aplikacji. Programy napisane w języku asemblera działają szybko, są niewielkie i zajmują mało pamięci. Są bardzo wydajne i otwierają dostęp do takich obszarów komputera, do których dostęp z poziomu C++ czy Visual Basica jest niemożliwy.
Książka "Praktyczny kurs asemblera" wprowadzi Cię w świat programowania w tym języku. Dowiesz się, jak działa procesor, w jaki sposób komunikuje się z pamięcią i pozostałymi elementami komputera. Poznasz typy rozkazów procesora, tryby adresowania i zasady tworzenia programów w asemblerze. Lepiej poznasz swój komputer i dowiesz się, w jaki sposób zapamiętuje i przetwarza dane. Komputer przestanie być dla Ciebie "czarną skrzynką" wykonującą w czarodziejski sposób Twoje polecenia.
* Podstawowe wiadomości o architekturze procesorów Intel
* Organizacja pamięci i tryby adresowania
* Omówienie listy rozkazów procesora
* Narzędzia do tworzenia programów w języku asemblera
* Struktura programu w asemblerze
* Definiowanie zmiennych
* Tworzenie podprogramów i makrorozkazów
* Wykorzystanie funkcji BIOS-a oraz MS-DOS
* Programy w asemblerze uruchamiane w systemie Windows
* Optymalizacja kodu
* Tworzenie modułów dla innych języków programowania
Po przeczytaniu tej książki przestaniesz postrzegać asemblera jako zbiór magicznych zaklęć, zrozumiałych jedynie dla brodatych guru pamiętających jeszcze czasy komputerów zajmujących powierzchnię sali gimnastycznej. Napiszesz programy, których uruchomienie nie będzie wymagało od użytkownika posiadania superkomputera. Poznasz wszystkie, nawet najgłębiej ukryte, możliwości komputera.
Kompendium wiedzy dla każdego programisty, projektanta i kierownika projektu
* Nowoczesne metodyki wytwarzania oprogramowania
* Narzędzia do modelowania aplikacji i automatycznego generowania kodu
* Koncepcja architektury sterowanej modelami
* Sposoby zapewnienia jakości aplikacji
Tworzenie aplikacji korporacyjnych to wyścig z czasem. Organizacje zmieniają się podobnie jak otoczenie biznesowe, w którym działają. Zbyt długi okres przygotowania aplikacji może sprawić, że po wdrożeniu okaże się ona bezużyteczna. Z drugiej jednak strony, zbyt duży pośpiech przy tworzeniu aplikacji powoduje, że pomija się fazę modelowania i testowania, pisząc kod źródłowy bez jakiejkolwiek koncepcji i planu. Efektem takiego pośpiechu są aplikacje niedostosowane do wymagań użytkowników i pracujące niestabilnie. Sposobem na stworzenie odpowiedniego systemu informatycznego dla korporacji jest wykorzystywanie odpowiednich metodyk projektowych i nowoczesnych narzędzi ułatwiających zarówno pisanie, jak i testowanie aplikacji.
Książka "J2EE. Podstawy programowania aplikacji korporacyjnych" przedstawia najlepsze praktyki projektowe stosowane przy tworzeniu systemów informatycznych z wykorzystaniem platformy J2EE. Opisano w niej kolejne etapy projektu oraz narzędzia i metodyki, dzięki którym przeprowadzenie każdego z nich będzie szybsze i efektywniejsze. Czytając ją, poznasz metodyki RUP i XP, typy architektur systemów oraz sposoby modelowania aplikacji i narzędzia do automatycznego generowania szkieletu kodu źródłowego. Dowiesz się, jak optymalnie skonfigurować środowiska programistyczne i jak testować kolejne moduły aplikacji. Nauczysz się korzystać z nowoczesnych metodyk i narzędzi.
* Podstawowe wiadomości o błyskawicznym wytwarzaniu aplikacji (RAD)
* Metodyki projektowe Rational Unified Process (RUP) oraz Extreme Programming (XP)
* Wielowarstwowe architektury systemów
* Modelowanie systemów za pomocą języka UML
* Automatyczne generowanie kodu
* Stosowanie narzędzi XDoclet i Hibernate
* Komunikacja z bazami danych
* Zasady programowania aspektowego
* Testowanie aplikacji
Wiadomości zawarte w tej książce sprawią, że będziesz w stanie szybciej projektować i tworzyć aplikacje korporacyjne.
Choć Java to język gwarantujący efektywną pracę, to jednak kryje w sobie wiele pułapek, które mogą zniweczyć jej efekty. Książka ta ma za zadanie oszczędzić Twój czas i zapobiec frustracji przeprowadzając Cię bezpiecznie przez skomplikowane zagadnienia. Zespół ekspertów od języka Java pod wodzą guru programowania w osobie Michaela Daconta proponuje Ci zestaw sprawdzonych rozwiązań 50 trudnych problemów pojawiających się w praktyce każdego programisty. Rozwiązania te pozwolą Ci uniknąć problemów wynikających z niedostatków języka Java oraz jego interfejsów programowych, w tym pakietów java.util, java.io, java.awt i javax.swing. Autorzy dzielą się także z Czytelnikiem swoimi sposobami na poprawę wydajności aplikacji pisanych w Javie.
Oto niektóre z omawianych zagadnień:
* Składnia języka: zastosowanie metody equals() zamiast operatora == do porównywania obiektów klasy String
* Funkcjonalność wbudowana w język: rozdział metod a mechanizm refleksji, interfejsy i klasy anonimowe
* Użyteczne klasy i kolekcje: wybór klasy PropertyFile i ResourceBundle
* Wejście i wyjście, w tym subtelności związane z przesyłaniem serializowanych obiektów za pomocą gniazd sieciowych
* Graficzny interfejs użytkownika: sposoby uniknięcia typowej pułapki polegającej na zastosowaniu metody repaint() zamiast metody validate() w celu uzyskania nowego układu komponentów
* Graficzny interfejs użytkownika -- sterowanie: m.in. bardziej funkcjonalna kontrola danych wprowadzanych przez użytkownika
* Wydajność: m.in. zastosowanie odroczonego ładowania, tak by zwiększyć szybkość uruchamiania programów
Programowanie w Prologu różni się zasadniczo od programowania w językach strukturalnych, takich jak Pascal czy C i językach obiektowych jak Java. Dla wielu osób zaczynających przygodę z Prologiem zaskoczeniem jest fakt, że pisanie programu w tym języku nie polega na kodowaniu algorytmu. Programista opisuje obiekty i związki między nimi, a także podaje warunki, jakie powinno spełniać szukane rozwiązanie. System sam przeprowadza obliczenia w oparciu o podane zależności logiczne, zaś programista jedynie częściowo może wpływać na sposób działania programu.
Książka "Prolog. Programowanie" to podręcznik tego niezwykłego języka programowania stosowanego przy rozwiązywaniu problemów z różnych dziedzin: od logiki matematycznej i symbolicznego rozwiązywania równań przez analizę języka naturalnego, aż do zagadnień związanych ze sztuczną inteligencją. Zawiera ona:
* Wprowadzenie do Prologu
* Podstawowe struktury danych
* Nawracanie, sterowanie nawracaniem za pomocą symbolu odcięcia
* Operacje wejścia/wyjścia
* Predykaty
* Składnię reguł gramatycznych i analizę języka naturalnego
* Wiele przykładowych programów
Wszystkim rozdziałom towarzyszą ćwiczenia. Uzupełnieniem tekstu książki są dodatki omawiające m.in. rozwiązania ćwiczeń i różnice między najważniejszymi wersjami Prologu.
"Prolog. Programowanie" to książka dla studentów matematyki i informatyki, a także dla wszystkich zainteresowanych programowaniem opartym na regułach logicznych. Jeśli chcesz podjąć wyzwanie i nauczyć się Prologu, jest książka dla Ciebie.
Przysłowie "kto pyta, nie błądzi" nie zawiera całej prawdy. Nie wystarczy pytać, trzeba jeszcze znajdować odpowiedzi. Książka "Programowanie w języku C. FAQ" to zbiór kilkuset odpowiedzi na najczęściej zadawane pytania na temat tego języka programowania. Z pewnością część z przedstawionych tu pytań już pojawiła się w Twojej praktyce programistycznej (pamiętasz, ile czasu straciłeś poszukując odpowiedzi?). Inne problemy dopiero się pojawią i jeśli na Twojej półce będzie ta książka, szybko znajdziesz w niej zwięzłe, ale wyczerpujące rozwiązanie często wzbogacone przykładem kodu źródłowego.
Chociaż książka żadną miarą nie powinna być traktowana jako podręcznik, z którego można nauczyć się programowania w C, z pewnością przyda się każdej osobie używającej tego języka w codziennej praktyce. Autor porusza wiele przydatnych zagadnień obejmujących szeroki zestaw tematów.
Omówiono między innymi:
* Deklaracje
* Struktury i unie
* Puste wskaźniki
* Wyrażenia
* Makroprocesor
* Alokację pamięci
* Różnice między standardami C
* Standardową bibliotekę wejścia-wyjścia
* Kwestie związane z systemami operacyjnymi
Wzorce projektowe. Analiza kodu sposobem na ich poznanieWydawnictwo Helion
Opanuj zasady stosowania wzorców projektowych na praktycznych przykładach
* Dowiedz się, czym są wzorce projektowe
* Zaimplementuj wzorce we własnych programach
* Poznaj rodzaje wzorców projektowych
Wzorce projektowe to zapisane w sposób formalny sposoby rozwiązywania najczęstszych problemów, z jakimi borykają się twórcy oprogramowania stosujący języki obiektowe. Najczęściej stosowane wzorce zostały skatalogowane i przedstawione w postaci diagramów UML, jednak do poprawnego ich wykorzystywania niezbędna jest wiedza praktyczna. Przystępując do implementacji wzorca projektowego, należy poznać zakres jego zastosowania. Taką wiedzę najlepiej zdobywa się, analizując przykłady kodów źródłowych.
Dzięki książce "Wzorce projektowe. Analiza kodu sposobem na ich poznanie" poznasz wzorce w taki właśnie sposób -- badając programy, w których je zastosowano. Każdy z omawianych w książce wzorców zaprezentowany jest w oparciu o dwie implementacje szczegółowo wyjaśniające zasadę jego działania. Dzięki takim opisom wzorców opanujesz tę technologię znacznie szybciej niż w przypadku nauki teoretycznych podstaw oraz prób ich samodzielnego wdrażania we własnych aplikacjach. Unikniesz typowych błędów i dowiesz się, jak prawidłowo wykorzystywać każdy z wzorców.
* Zastosowanie wzorców projektowych
* Klasyfikacja wzorców
* Podstawowe pojęcia z dziedziny obiektowości
* Interfejsy i wzorce konstrukcyjne
* Implementacja wzorców obserwatora i fasady
* Wykorzystanie wzorców projektowych w aplikacjach bazodanowych
Książka zawiera również zestawienie najczęściej wykorzystywanych wzorców projektowych wraz z opisem ich zastosowań.
Praktyczne rozwiązania dla zaawansowanych programistów
Do tworzenia wydajnych programów nie wystarczy teoretyczna wiedza o algorytmach, strukturach danych i inżynierii oprogramowania. Istnieje pokaźna liczba sztuczek, sprytnych technik i praktycznych rozwiązań, których znajomość jest niezbędna każdemu programiście.
Niniejsza książka zawiera pokaźny zestaw technik, które pomogą zaoszczędzić sporo czasu. Techniki te zostały opracowane przez twórców kodu poszukujących eleganckich i wydajnych sposobów tworzenia lepszego oprogramowania. W "Uczcie programistów" doświadczony programista Hank Warren dzieli się z Czytelnikami znanymi sobie sztuczkami, które zgromadził wraz z imponującym doświadczeniem w dziedzinie programowania aplikacji i systemów operacyjnych. Większość z tych sztuczek jest niezwykle praktyczna, niektóre zostały przedstawione jako ciekawostki lub zaskakujące rozwiązania. Ich zestawienie stanowi niesamowitą kolekcję, która będzie pomocna nawet dla najbardziej doświadczonych programistów w rozszerzeniu ich umiejętności.
W książce opisano następujące zagadnienia:
* Obszerna kolekcja użytecznych sztuczek programistycznych
* Drobne algorytmy rozwiązujące często spotykane problemy
* Algorytmy kontroli przekroczenia ograniczeń
* Zmiana kolejności bitów i bajtów
* Dzielenie całkowite i dzielenie przez stałe
* Elementarne operacje na liczbach całkowitych
* Kod Gray"a
* Krzywa Hilberta
* Formuły wyznaczania liczb pierwszych
Niniejsza książka jest doskonałą pozycją dla wszystkich programistów, którzy mają zamiar tworzyć wydajny kod. "Uczta programistów" nauczy Cię tworzenia aplikacji wysokiej jakości -- wyższej niż wymagana na uczelniach i kursach programowania.
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWydawnictwo Helion
Poznaj skuteczne rozwiązania problemów, jakie napotkasz podczas codziennej pracy programisty
* Prawidłowo zoptymalizuj kod źródłowy
* Zaprojektuj efektywną obsługę wyjątków
* Naucz się odpowiednio korzystać z przestrzeni nazw
Nauka każdego nowego zagadnienia przebiega zdecydowanie szybciej i efektywniej pod kierunkiem osoby znającej temat. Nie inaczej jest w przypadku nauki programowania w języku C++. Programowanie w tym języku wymaga dogłębnego opanowania możliwości biblioteki standardowej, inżynierii oprogramowania i wielu innych tematów. Rozwiązując samodzielnie zagadki, jakie często pojawiają się podczas poznawania języka C++ lepiej zapamiętujemy ich rozwiązania, dzięki czemu łatwiej możemy zastosować je w codziennej pracy.
Książka "Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań" to zbiór zagadnień związanych z niemal wszystkimi aspektami programowania w C++, przedstawionych w formie zagadek z rozwiązaniami. Opisuje zarówno podstawy stosowania szablonów, biblioteki standardowej i projektowanie klas, jak i tematy zaawansowane -- przestrzenie nazw, wyjątki, dziedziczenie i zarządzanie zasobami. Czytając ją, przekonasz się, w jaki sposób można użyć pozornie niezwiązanych ze sobą elementów do opracowania nowych i oryginalnych rozwiązań częstych problemów.
* Poprawne stosowanie predykatów
* Kontenery i wskaźniki
* Korzystanie z szablonów
* Optymalizacja kodu
* Bezpieczna obsługa wyjątków
* Mechanizmy dziedziczenia i polimorfizmu
* Zarządzanie zasobami i pamięcią
* Makrodefinicje
* Przestrzenie nazw
Gdy zrozumiesz zagadnienia opisywane w tej książce, nie będziesz musiał podczas programowania zastanawiać się nad szczegółami -- będziesz mógł skoncentrować się na problemach, które naprawdę chcesz rozwiązać.
O autorze:
Herb Sutter to ekspert od programowania w języku C++. Jest regularnie zapraszany do wygłaszania wykładów na konferencjach dla programistów.
[więcej...]
Wyszukiwanie błędów w kodzie to czynność, którą programiści wykonują niemal równie często, jak pisanie kodu. Narzędzia do wykrywania i poprawiania błędów tylko częściowo rozwiązują problem. W wielu przypadkach błąd nie tkwi w nieprawidłowo sformułowanym poleceniu lub źle zdefiniowanej zmiennej, ale w miejscu, którego nawet najlepsze narzędzie nie znajdzie. Programista musi się nauczyć samemu bronić przed ukrytymi pomyłkami i nieprzyjemnymi niespodziankami. Błędy trzeba znaleźć, zanim one znajdą nas.
Książka "Znajdź błąd. Sztuka analizowania kodu" to zbiór 50 programów napisanych w językach Perl, C, Java, Python i asembler x86. Każdy z nich zawiera jeden, trudny do znalezienia, ale jak najbardziej realistyczny błąd. Wykrycie go wymaga przewidzenia sposobu, w jaki program będzie wykonywany, i prześledzenia krok po kroku jego działania. Każdy przykład opatrzony jest wskazówkami pomocnymi przy wyszukiwaniu błędów. Książka przedstawia sposoby analizowania programów i przewidywania miejsc, w których może wystąpić błąd.
* Klasyfikacja błędów
* Metody analizy kodu
* Błędy w programach w języku C
* Analiza aplikacji napisanych w języku Python
* Wyszukiwanie błędów w programach w języku Java
* Programy w języku Perl i asembler x86
Wykonując zadania zawarte w tej książce, nie tylko nauczysz się odnajdywać błędy, ale także udoskonalisz swoje umiejętności w zakresie pisania aplikacji.
* Obszerny przewodnik po języku Java -- zaktualizowany dla wersji JDK 1.3
* Pełne omówienie środowiska programowania zorientowanego obiektowo oraz klas Swing
* Więcej przykładowch kodów przydatnych profesjonalnym programistom
* CD-ROM zawiera kod źródłowy wszystkich programów, J2SE w wersji 1.3, Forte™ -- Java Community Edition i wiele więcej!
Pięć wydań w USA, pierwsze wydanie w Polsce!
"Java 2. Podstawy” jest najlepszą książką dla programistów. Nie ma sobie równych pod względem ilości przekazanych informacji, a mimo to pozostaje bardzo czytelna. -- K. N. King, Computer Reviews
Programiści znajdą tu wszystko, czego potrzeba, aby wykorzystać potęgę języka Java… -- PC Week
"Java 2. Podstawy" dostarcza wszystkiego, czego potrzebujesz, aby ukończyć nawet najbardziej skomplikowane projekty. Dlatego właśnie ta książka przez pięć lat była międzynarodowym bestsellerem. "Java 2. Podstawy" omawia podstawy platformy Java 2 Standard Edition w wersji 1.3, zawiera pełny opis zorientowanego obiektowo środowiska programistycznego Javy, komponentów interfejsu użytkownika Swing i wiele, wiele więcej.
Piąta wydanie prezentuje wiele nowych, gotowych do zastosowania programów, z których zasłynęły poprzednie edycje tej książki: pojawiły się również nowe programy dotyczące mechanizmu odbicia oraz optymalizacji kodu. Szczegółowo wyjaśniono koncepcję klas wewnętrznych, funkcjonowanie proxy, obsługę wyjątków, techniki usuwania błędów, model zdarzeń Javy, interfejs wejścia/wyjścia oraz zarządzania plikami.
Kompendium dla programistów Javy, a w nim:
* Omówienie języka Java i tworzenia aplikacji w środowisku Forte(tm)
* Tworzenie aplikacji GUI przy pomocy nowych klas Swing
* Sposoby pisania klas proxy i klas wewnętrznych
* Korzystanie z modelu zdarzeń Javy
* Omówienie klas strumieni oraz mechanizmu zarządzania plikami
To idealna książka dla profesjonalnych programistów, którzy chcą nauczyć się Javy i wykorzystać ją w swojej pracy zawodowej. Zawiera CD-ROM z kodem źródłowy wszystkich przykładów, Forte ™ -- Java Community Edition (zintegrowane środowisko programistyczne Javy) oraz wersje testowe wielu innych użytecznych programów.
Podręczna pomoc dla programisty ActionScript
ActionScript to język skryptowy pakietu Macromedia Flash służący do tworzenia praktycznie każdego rodzaju treści -- od graficznego interfejsu użytkownika i gier do sekwencerów dźwięku i animowanych wygaszaczy ekranu. Składniowo jest niemal identyczny z językiem JavaScript, lecz jest dostosowany do obsługi elementów stworzonych w programie Flash. ActionScript pozwala na tworzenie kodu strukturalnego, obiektowego oraz stanowiącego dowolne połączenie tych dwóch rodzajów.
Ta niewielka książeczka będzie Twoją podręczną pomocą, do której będziesz mógł się odwołać, gdy zapomnisz argumentów potrzebnej Ci właśnie funkcji lub gdy będziesz chciał przypomnieć sobie składnię rzadziej używanej konstrukcji ActionScriptu. Znajdziesz w niej krótkie, zwięzłe i zrozumiałe opisy wszystkich elementów składających się na ten język programowania. Jest to niezbędna pozycja dla wszystkich programistów Flasha.
Teoria i praktyka prowadzenia projektów programistycznych
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do przekazania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia oprogramowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
"eXtreme programming" przedstawia nową metodologię i praktykę programowania w przystępny, a jednocześnie kompleksowy sposób. Autorzy omawiają podstawowe pojęcia programowania ekstremalnego: planowanie edycji, programowanie w parach, wczesne testowanie, "zręczne modelowanie" i refaktoryzację. Zostały one zaprezentowane na przykładzie konkretnego projektu, którego realizację omówiono w książce.
Kto powinien przeczytać tę książkę? Będzie ona niewątpliwie pożyteczną lekturą dla każdego, kto choć częściowo związał swe życie z tworzeniem oprogramowania -- programisty, menedżera czy koordynatora projektu. I nawet gdyby miało skończyć się tylko na czytaniu -- bez praktycznego zastosowania w najbliższym projekcie poznanych reguł, wiedza o programowaniu ekstremalnym okaże się bez wątpienia pożyteczna.
* Naucz się zasad programowania ekstremalnego i zastosuj je w praktyce
* Od konceptualizacji do oddania działającego systemu -- poznaj najlepsze sposoby pracy na każdym etapie tworzenia programowania
* Poznaj znaczenie wszystkich uczestników procesu tworzenia oprogramowania: programistów, menedżerów i klientów
* Dowiedz się, jak rozwiązać najczęstsze problemy powstające przy wdrażaniu metodologii programowania ekstemalnego
Przegląd funkcji i możliwości .NET Framework 2.0
oraz środowiska CLR 2.0 dla zaawansowanych
* Jakie możliwości oferuje platforma .NET Framework 2.0 i środowisko CLR 2.0?
* Jak szybko i łatwo pisać aplikacje dla systemu Windows?
* Jak zwiększyć swą produktywność?
Wraz z coraz bardziej rozbudowaną funkcjonalnością .NET Framework rośnie także jej popularność. Możliwość błyskawicznego tworzenia zaawansowanych aplikacji dla systemu Windows na bazie tej platformy oraz wspólnego środowiska uruchomieniowego CLR sprawia, że coraz większa rzesza programistów pragnie poznać te technologie i wykorzystać je do zwiększenia swej produktywności. Wersja 2.0 .NET Framework udostępnia większą liczbę wbudowanych kontrolek, nowe funkcje obsługi baz danych za pomocą ADO.NET, rozbudowane narzędzia do tworzenia witryn internetowych przy użyciu ASP.NET i wiele innych usprawnień znacznie ułatwiających programowanie.
".NET Framework 2.0. Zaawansowane programowanie" to podręcznik dla programistów, którzy chcą szybko rozpocząć pracę z tą platformą. Dzięki tej książce poznasz mechanizmy działania .NET Framework i środowiska CLR, a także funkcje licznych bibliotek, zarówno tych podstawowych, jak i bardziej wyspecjalizowanych. Dowiesz się, jak przy użyciu tych technologii łatwo zapewniać bezpieczeństwo kodu, debugować oprogramowanie, obsługiwać transakcje, zapewniać współdziałanie aplikacji z kodem niezarządzanym i wykonywać wiele innych potrzebnych operacji.
* Funkcjonowanie środowiska CLR
* Struktura i mechanizmy wspólnego systemu typów (CTS)
* Działanie języka pośredniego (IL) i kompilacji JIT
* Obsługa operacji wejścia-wyjścia
* Tworzenie aplikacji międzynarodowych
* Zapewnianie bezpieczeństwa kodu
* Programowanie współbieżne przy użyciu wątków, domen i procesów
* Umożliwianie współdziałania z kodem niezarządzanym
* Debugowanie oprogramowania
* Stosowanie wyrażeń regularnych
* Programowanie dynamiczne z zastosowaniem metadanych i refleksji
* Obsługa transakcji
Zacznij korzystać z możliwości .NET Framework 2.0
i już dziś zwiększ swą produktywność.
Poznaj ogromne możliwości języka ActionScript 2.0
ActionScript to obiektowy język programowania zaimplementowany w jednym z najpopularniejszych narzędzi do tworzenia interaktywnych witryn WWW, czyli w programie Macromedia Flash. Korzystanie z ActionScriptu pozwala wydobyć z Flasha możliwości niedostępne z poziomu jego narzędzi graficznych i animacyjnych. ActionScript daje projektantowi niemal nieograniczoną swobodę twórczą. Za pomocą odpowiednio skonstruowanych skryptów można tworzyć zarówno proste przyciski i animacje, jak i złożone mechanizmy pobierania danych z zewnętrznych źródeł, dynamicznego generowania grafiki i dokumentów oraz sterowania animacją w zależności od działań użytkownika.
Książka "Macromedia Flash 8 ActionScript. Oficjalny podręcznik", przygotowana we współpracy z producentem Flasha -- firmą Macromedia, umożliwi Ci odkrycie niesamowitych możliwości języka ActionScript. Wykonując przedstawione w niej ćwiczenia i projekty, poznasz składnię tego języka i zasady programowania obiektowego. Dowiesz się, jak za pomocą skryptów kontrolować odtwarzanie animacji i zachowanie obiektów na scenie oraz nauczysz się korzystać w animacjach z elementów pobieranych z plików i baz danych. Przeczytasz o przetwarzaniu plików XML, weryfikowaniu danych wprowadzanych przez użytkownika oraz odtwarzaniu plików multimedialnych za pomocą Flasha.
* Elementy panelu Actions
* Składnia języka ActionScript
* Funkcje i instrukcje warunkowe
* Klasy obiektów
* Obsługa zdarzeń
* Korzystanie z plików graficznych i cyfrowego wideo
* Tworzenie komponentów
* Odczyt danych z plików zewnętrznych
* Drukowanie z poziomu prezentacji
* Optymalizacja plików SWF
"J2ME. Almanach" to niezastąpione, podręczne kompendium wiedzy dla programistów korzystających z Java 2 Micro Edition (J2ME). J2ME to nowa rodzina specyfikacji powstałych w firmie SUN, opisujących uproszczoną, skondensowaną wersję platformy Java 2, która może być używana do tworzenia aplikacji działających na urządzeniach o bardzo ograniczonych zasobach, takich jak telefony komórkowe, palmtopy czy dwukierunkowe pagery.
W książce znajdziesz:
* Wprowadzenie do platformy J2ME i środowisk programistycznych, takich jak Java Wireless Toolkit
* Szczegółowy opis możliwości i wymagań CLDC, MIDP i MIDletów
* Dogłębne omówienie interfejsu użytkownika stosowanego w MIDletach oraz wiele praktycznych wskazówek dotyczących wykorzystania MIDP UI API
* Prezentację sposobów w jaki używać Generic Connection Framework API w celu korzystania z bezprzewodowego Internetu, a także API dla przechowywania danych
* Wprowadzenie do Connected Device Configuration (CDC) i profili CDC
W książce zawarto znany z innych pozycji serii Almanach wydawnictwa O"Reilly obszerny alfabetyczny spis elementów języka, obejmujący klasy z wielu pakietów J2ME, w tym java.lang, java.io, java.util, java.microediton.io, java.microediton.lcdui, java.microediton.midlet i java.microediton.rms. Gdy zaczniesz pracować z J2ME, "J2ME. Almanach" na stałe zagości na Twoim biurku i będzie podręcznym źródłem informacji.
Tysiące osób codziennie kupują nowe urządzenia wyposażone w możliwość uruchamiania aplikacji Javy. Jeśli chcesz, by były to także Twoje aplikacje, ta książka dostarczy Ci całej wiedzy potrzebnej do ich stworzenia.
Wzorce projektowe to opisy poprawnych rozwiązań problemów, na które napotkali programiści w swojej pracy. Pozwalają uniknąć pracy nad rozwiązaniem zagadnienia, które już dawno zostało rozwiązane. Jednak nawet największy zestaw wzorców projektowych jest nieprzydatny, jeśli nie wiadomo, jak zastosować je w określonym zadaniu. Wiedza o tym, że wzorzec istnieje bez umiejętności zaimplementowania go jest bezużyteczna.
Książka "J2EE. Stosowanie wzorców projektowych” zawiera nie tylko opisy wzorców, ale również sposoby ich implementacji w aplikacjach J2EE. Czytelnik znajdzie tu omówienie wzorców dotyczących wydajności, skalowalności i elastyczności aplikacji oraz wzorców ściśle związanych z tworzeniem aplikacji biznesowych. Książka przedstawia również nowe wzorce dla mechanizmów dystrybucji komunikatów i trwałości.
W książce omówiono:
* Podstawowe zasady tworzenia aplikacji biznesowych w Javie.
* Język UML jako uniwersalne narzędzie do modelowania aplikacji.
* Wzorce dla warstwy prezentacji.
* Wzorce dla warstwy logiki biznesowej.
* Wzorce komunikacji pomiędzy warstwami.
* Wzorce dystrybucji komunikatów.
* Przykłady błędnych wzorców.
Największą zaletą książki jest to, że przedstawia zastosowanie wzorców projektowych do tworzenia aplikacji biznesowych. Jeśli zajmujesz się tworzeniem aplikacji J2EE, to ta książka jest dla Ciebie lekturą obowiązkową.
Poznaj tajniki najpopularniejszego języka programowania
w erze Internetu
Chyba wszyscy użytkownicy internetu spotkali się z Javą, często nawet o tym nie wiedząc. W ciągu ostatnich 10 lat zyskała ona ogromną popularność, szczególnie wśród programistów aplikacji sieciowych. Jednakże kojarzenie jej z językiem przeznaczonym wyłącznie do tworzenia takich programów jest dużym błędem. Java to w pełni funkcjonalny i doskonale dopracowany język programowania, nadający się do tworzenia różnych aplikacji, a nie tylko apletów działających na stronach internetowych.
W Javie pisane są gry sieciowe, systemy bankowości elektronicznej, pakiety wspomagające sprzedaż i obsługę klienta, a nawet aplikacje działające w telefonach komórkowych i komputerach przenośnych. Podstawową zaletą języka Java jest przenośność kodu -- raz napisany program można uruchomić na każdym urządzeniu, na którym zainstalowane jest odpowiednie środowisko uruchomieniowe, zwane JRE.
Książka "Praktyczny kurs Java" przeznaczona jest dla osób rozpoczynających swoją przygodę z programowaniem w tym języku. Opisuje podstawy języka, zasady programowania obiektowego i tworzenia własnych apletów i aplikacji. Czytając kolejne rozdziały, dowiesz się:
* Jakie typy danych wykorzystywane są w Javie
* Jak deklarować zmienne i wyprowadzać ich wartości na ekran
* W jaki sposób sterować przebiegiem wykonywania programu
* Jakie zasady rządzą programowaniem obiektowym
* Czym są klasy, obiekty, argumenty i metody
* Co to są wyjątki i jak je obsługiwać w programie
* Jak wykorzystać zaawansowane techniki programowania obiektowego w swoich aplikacjach
* W jaki sposób uzyskiwać dostęp do systemu plików z poziomu swojej aplikacji
* Jak tworzyć aplety i samodzielne aplikacje
Zapoznaj się z podstawami programowania w Javie i naucz się zasad programowania obiektowego, a także dowiedz się, czym są wyjątki w Javie i stwórz własne aplety i aplikacje.
Twórz bezpieczne i wydajne aplikacje wielowątkowe
Chcesz podnieść wydajność swoich aplikacji? Planujesz stworzenie systemu, który będzie uruchamiany na maszynach wyposażonych w procesory wielordzeniowe? A może próbowałeś już tworzyć aplikacje wielowątkowe, ale zniechęciłeś się po wielogodzinnych poszukiwaniach przyczyn błędów, które pojawiają się przy wysokich obciążeniach? Java niemal od początku swego istnienia jest wyposażona w mechanizmy umożliwiające tworzenie aplikacji wielowątkowych, lecz dopiero wersja 5. wniosła zupełnie nową jakość, dzięki wielu poprawkom zwiększającym wydajność maszyny wirtualnej oraz dodatkowym klasom ułatwiającym osiąganie lepszej współbieżności.
W książce "Java. Współbieżność dla praktyków" znajdziesz wyczerpujący opis metod projektowania i tworzenia aplikacji wielowątkowych. Przeczytasz nie tylko o klasach, ich działaniu i sposobach wykorzystania, ale również poznasz wzorce projektowe, praktyki programistyczne i modele, dzięki którym programowanie współbieżne jest łatwiejsze. Znajdziesz tu praktyczne aspekty oraz przykłady tworzenia pewnych, skalowalnych i łatwych w konserwacji aplikacji współbieżnych. Dowiesz się także, w jaki sposób testować aplikacje wielowątkowe, wynajdywać w nich błędy i usuwać je.
Dzięki książce poznasz:
* Możliwości wykorzystania wątków
* Podstawy stosowania wątków
* Współdzielenie obiektów
* Struktura aplikacji wielowątkowych
* Zarządzanie wątkami i zadaniami
* Zastosowania pul wątków
* Optymalizowanie wydajności
* Skalowalność aplikacji wielowątkowych
* Testowanie aplikacji współbieżnych
* Model pamięci Javy
* Tworzenie własnych synchronizatorów
Opanuj język programowania, który zmienił oblicze sieci
* Jakie elementy tworzą język Java?
* Jak wykorzystać pełnię możliwości programowania obiektowego?
* Jak tworzyć własne aplety i aplikacje?
Interesuje Cię język programowania, który zyskuje coraz większą popularność wśród twórców rozwiązań korporacyjnych? A może zamierzasz tworzyć aplikacje dla urządzeń mobilnych? Najwyższa pora poznać tajniki Javy. Ten język już dawno przestał być narzędziem do tworzenia prostych programików osadzanych na stronach WWW. Współczesna Java to potężny obiektowy język programowania wykorzystywany w aplikacjach bankowych i finansowych, portalach internetowych i wielu innych systemach. Jedna z jego wersji służy także do pisania oprogramowania dla telefonów komórkowych, terminali BlackBerry i komputerów przenośnych. Warto więc poznać Javę.
"Praktyczny kurs Java. Wydanie II" to kolejna edycja podręcznika, dzięki któremu poznasz tajniki tego niezwykłego języka programowania. Znajdziesz tu omówienie elementów najnowszej wersji Javy, słów kluczowych tego języka, konstrukcji sterujących i zasad programowania. Dowiesz się, na czym polega projektowanie i programowanie obiektowe. Nauczysz się korzystać z mechanizmów obsługi wyjątków, implementować w programach operacje wejścia i wyjścia oraz budować własne aplikacje i aplety.
* Instalacja Javy w Windows i Linuksie
* Instrukcje Javy
* Operacje na tablicach
* Podstawy programowania obiektowego
* Obsługa wyjątków
* Zaawansowane zagadnienia programowania obiektowego
* Operacje wejścia i wyjścia
* Obsługa myszy i klawiatury
* Tworzenie interfejsów użytkownika
* Korzystanie z komponentów
Zostań profesjonalnym programistą Javy.
Poznaj nowoczesne technologie, aby perfekcyjnie tworzyć sprawne oprogramowanie!
* Jak tworzyć aplikacje JSF w środowisku Eclipse?
* Jak korzystać z frameworku JBoss Seam?
* Jak implementować niestandardowe komponenty, konwertery i mechanizmy weryfikujące?
JavaServer Faces (JSF) jest obecnie najpopularniejszą technologią, która pozwala na projektowanie interfejsu użytkownika poprzez umieszczenie na formularzu komponentów i powiązanie ich z obiektami Javy bez konieczności mieszania kodu źródłowego ze znacznikami. Mocną stroną JSF jest rozszerzalny model komponentowy, a także możliwość współpracy z środowiskami do budowy graficznych interfejsów użytkownika metodą przeciągnij-i-upuść. To nowoczesne narzędzie oferuje także mechanizmy rozwiązujące najtrudniejsze problemy w zakresie nawigacji, zarządzania połączeniami z usługami zewnętrznymi i konfiguracjami oraz izolowania prezentacji od logiki biznesowej.
Książka „JavaServer Faces. Wydanie II” prezentuje gruntownie zaktualizowaną wiedzę dotyczącą JSF oraz wyczerpujące omówienia najnowszych udoskonaleń mechanizmów wiążących tę technologię z platformą Java EE 5, a także analizę rozszerzeń interfejsów API. Zawiera praktyczne porady i wskazówki, dzięki którym szybko nauczysz się technik sterowania przechodzeniem pomiędzy stronami z wykorzystaniem frameworku Shale; poznasz sposoby zastępowania znaczników JSP znacznikami XHTML za pomocą technologii Facelets; do perfekcji opanujesz sztukę rozbudowy tej technologii o własne biblioteki. „Core JavaServer Faces” to doskonały, usystematyzowany zbiór najlepszych praktyk budowy oprogramowania, minimalizowania trwale kodowanych elementów i maksymalizacji produktywności.
* Komponenty zarządzane
* Zaawansowane techniki nawigacji
* Znaczniki i formularze
* Konwersja i weryfikacja poprawności danych
* Implementacja klas niestandardowych mechanizmów weryfikacji
* Powidoki i pakiet Apache Tiles
* Niestandardowe komponenty, konwertery i mechanizmy weryfikujące
* Eliminowanie wycieków połączeń
* Uzyskiwanie dostępu do informacji składowych w katalogach LDAP
* Implementacja mechanizmu weryfikacji w czasie rzeczywistym z wykorzystaniem frameworku Ajax4jsf
Zastosuj nowoczesne technologie JSP, aby w prosty sposób budować zaawansowane i sprawne aplikacje.
Przyspiesz tworzenie aplikacji w Javie
* Uprość określanie zależności pomiędzy klasami
* Zastosuj narzędzie Hibernate do usprawnienia komunikacji z bazami danych
* Wykorzystaj możliwości programowania aspektowego
Technologia J2EE miała w założeniu być prosta i szybka w użytkowaniu. Praktyka jednak okazała się daleka od teorii. Mozolne tworzenie aplikacji wykorzystujących dziesiątki interfejsów połączonych wzajemnymi zależnościami, setki deskryptorów wdrożenia oraz plików pomocniczych spowodowało, że zaczęto poszukiwać rozwiązań alternatywnych. Jednym z nich okazał się framework Spring, zyskujący coraz większą popularność wśród programistów Javy. Spring jest znacznie dużo prostszy od wielu alternatywnych rozwiązań J2EE, znacznie ułatwia testowanie aplikacji, i pozwala na usuwanie zależności z kodu oraz oddzielanie ich od serwera aplikacji. Spring umożliwia również wykorzystanie programowania aspektowego.
Książka "Spring. Zapiski programisty" to praktyczny przewodnik po możliwościach tego środowiska. Jeśli wolisz poznawać nowe zagadnienia w sposób praktyczny, a nie wertując setki stron zapełnionych teoretycznymi wywodami, to ta książka jest właśnie dla Ciebie. Znajdziesz w niej omówienie zagadnień związanych z samym Springiem, współpracującymi z nim narzędziami i sposobami wykorzystania ich w procesie tworzenia aplikacji J2EE -- począwszy do graficznego interfejsu użytkownika i interfejsu sieciowego, a skończywszy na dostępie do relacyjnych baz danych.
* Tworzenie klas z zastosowaniem zależności
* Budowanie interfejsu użytkownika
* Integrowanie JSF z frameworkiem Spring
* Dostęp do baz danych za pomocą JDBC
* Odwzorowanie baz danych na obiekty za pomocą Hibernaete
* Obsługa i zabezpieczanie transakcji
* Wysyłanie i odbieranie wiadomości e-mail
Jeśli poszukujesz wydajniejszych metod tworzenia aplikacji J2EE, wykorzystaj możliwości frameworka Spring. Dzięki tej książce poznasz je wszystkie.
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Wydawnictwo Helion
Przy tworzeniu systemów informatycznych najważniejsze zadania wykonuje się, zanim powstanie pierwszy fragment kodu źródłowego. Wymogi stawiane współczesnym aplikacjom powodują, że inżynieria oprogramowania staje się kwestią kluczową. Opracowanie odpowiedniego projektu oraz właściwy dobór technologii i metodologii zapewniają szybką i efektywną pracę nad systemem. Niezwykle ważne jest poznanie dostępnych w języku Java struktur danych i umiejętność ich wykorzystania. Prawidłowo dobrana struktura danych znacznie przyspiesza nie tylko implementację aplikacji, ale również działanie gotowego systemu.
Książka "Struktury danych i techniki obiektowe na przykładzie Javy 5.0" przedstawia podstawowe struktury danych i sposoby ich wykorzystania podczas programowania obiektowego. Wszystkie wiadomości zostały zaprezentowane z uwzględnieniem reguł nowoczesnej inżynierii oprogramowania. Czytając kolejne rozdziały książki, poznasz najlepsze zastosowania różnych struktur danych oraz wady i zalety ich implementacji. Przede wszystkim jednak zrozumiesz potrzebę stosowania tak wielu struktur danych.
* Cykl życia oprogramowania
* Zastosowanie języka UML w projektowaniu systemów
* Obsługa błędów i wyjątków
* Testowanie oprogramowania
* Dziedziczenie i hierarchia klas
* Listy jedno- i dwukierunkowe
* Interfejs Collection
* Stosy i kolejki
* Algorytmy rekurencyjne
* Sortowanie danych
* Drzewa wyszukiwania
* Grafy
Po przeczytaniu tej książki zrozumiesz zasadę:
"Pomyśl, a dopiero potem pisz kod".
Wejdź w świat programowania w języku asemblera
* Dowiedz się, kiedy użycie asemblera jest niezbędne
* Poznaj zasady programowania w asemblerze
* Napisz szybkie i wydajne programy dla DOS-a i Windows
* Zdobądź wiedzę o zasadach działania procesora i pamięci
Uważasz, że możliwości języków programowania wysokiego poziomu nie pozwalają na napisanie programu, którego potrzebujesz? Chcesz stworzyć sterownik, program rezydentny, demo lub... wirusa? Interesuje Cię, co dzieje się w komputerze podczas wykonywania programu?
Wykorzystaj potencjał asemblera!
Programowanie w języku niskiego poziomu daje niemal nieograniczoną kontrolę nad sprzętem i działaniem aplikacji. Programy napisane w języku asemblera działają szybko, są niewielkie i zajmują mało pamięci. Są bardzo wydajne i otwierają dostęp do takich obszarów komputera, do których dostęp z poziomu C++ czy Visual Basica jest niemożliwy.
Książka "Praktyczny kurs asemblera" wprowadzi Cię w świat programowania w tym języku. Dowiesz się, jak działa procesor, w jaki sposób komunikuje się z pamięcią i pozostałymi elementami komputera. Poznasz typy rozkazów procesora, tryby adresowania i zasady tworzenia programów w asemblerze. Lepiej poznasz swój komputer i dowiesz się, w jaki sposób zapamiętuje i przetwarza dane. Komputer przestanie być dla Ciebie "czarną skrzynką" wykonującą w czarodziejski sposób Twoje polecenia.
* Podstawowe wiadomości o architekturze procesorów Intel
* Organizacja pamięci i tryby adresowania
* Omówienie listy rozkazów procesora
* Narzędzia do tworzenia programów w języku asemblera
* Struktura programu w asemblerze
* Definiowanie zmiennych
* Tworzenie podprogramów i makrorozkazów
* Wykorzystanie funkcji BIOS-a oraz MS-DOS
* Programy w asemblerze uruchamiane w systemie Windows
* Optymalizacja kodu
* Tworzenie modułów dla innych języków programowania
Po przeczytaniu tej książki przestaniesz postrzegać asemblera jako zbiór magicznych zaklęć, zrozumiałych jedynie dla brodatych guru pamiętających jeszcze czasy komputerów zajmujących powierzchnię sali gimnastycznej. Napiszesz programy, których uruchomienie nie będzie wymagało od użytkownika posiadania superkomputera. Poznasz wszystkie, nawet najgłębiej ukryte, możliwości komputera.
Kompendium wiedzy dla każdego programisty, projektanta i kierownika projektu
* Nowoczesne metodyki wytwarzania oprogramowania
* Narzędzia do modelowania aplikacji i automatycznego generowania kodu
* Koncepcja architektury sterowanej modelami
* Sposoby zapewnienia jakości aplikacji
Tworzenie aplikacji korporacyjnych to wyścig z czasem. Organizacje zmieniają się podobnie jak otoczenie biznesowe, w którym działają. Zbyt długi okres przygotowania aplikacji może sprawić, że po wdrożeniu okaże się ona bezużyteczna. Z drugiej jednak strony, zbyt duży pośpiech przy tworzeniu aplikacji powoduje, że pomija się fazę modelowania i testowania, pisząc kod źródłowy bez jakiejkolwiek koncepcji i planu. Efektem takiego pośpiechu są aplikacje niedostosowane do wymagań użytkowników i pracujące niestabilnie. Sposobem na stworzenie odpowiedniego systemu informatycznego dla korporacji jest wykorzystywanie odpowiednich metodyk projektowych i nowoczesnych narzędzi ułatwiających zarówno pisanie, jak i testowanie aplikacji.
Książka "J2EE. Podstawy programowania aplikacji korporacyjnych" przedstawia najlepsze praktyki projektowe stosowane przy tworzeniu systemów informatycznych z wykorzystaniem platformy J2EE. Opisano w niej kolejne etapy projektu oraz narzędzia i metodyki, dzięki którym przeprowadzenie każdego z nich będzie szybsze i efektywniejsze. Czytając ją, poznasz metodyki RUP i XP, typy architektur systemów oraz sposoby modelowania aplikacji i narzędzia do automatycznego generowania szkieletu kodu źródłowego. Dowiesz się, jak optymalnie skonfigurować środowiska programistyczne i jak testować kolejne moduły aplikacji. Nauczysz się korzystać z nowoczesnych metodyk i narzędzi.
* Podstawowe wiadomości o błyskawicznym wytwarzaniu aplikacji (RAD)
* Metodyki projektowe Rational Unified Process (RUP) oraz Extreme Programming (XP)
* Wielowarstwowe architektury systemów
* Modelowanie systemów za pomocą języka UML
* Automatyczne generowanie kodu
* Stosowanie narzędzi XDoclet i Hibernate
* Komunikacja z bazami danych
* Zasady programowania aspektowego
* Testowanie aplikacji
Wiadomości zawarte w tej książce sprawią, że będziesz w stanie szybciej projektować i tworzyć aplikacje korporacyjne.
Choć Java to język gwarantujący efektywną pracę, to jednak kryje w sobie wiele pułapek, które mogą zniweczyć jej efekty. Książka ta ma za zadanie oszczędzić Twój czas i zapobiec frustracji przeprowadzając Cię bezpiecznie przez skomplikowane zagadnienia. Zespół ekspertów od języka Java pod wodzą guru programowania w osobie Michaela Daconta proponuje Ci zestaw sprawdzonych rozwiązań 50 trudnych problemów pojawiających się w praktyce każdego programisty. Rozwiązania te pozwolą Ci uniknąć problemów wynikających z niedostatków języka Java oraz jego interfejsów programowych, w tym pakietów java.util, java.io, java.awt i javax.swing. Autorzy dzielą się także z Czytelnikiem swoimi sposobami na poprawę wydajności aplikacji pisanych w Javie.
Oto niektóre z omawianych zagadnień:
* Składnia języka: zastosowanie metody equals() zamiast operatora == do porównywania obiektów klasy String
* Funkcjonalność wbudowana w język: rozdział metod a mechanizm refleksji, interfejsy i klasy anonimowe
* Użyteczne klasy i kolekcje: wybór klasy PropertyFile i ResourceBundle
* Wejście i wyjście, w tym subtelności związane z przesyłaniem serializowanych obiektów za pomocą gniazd sieciowych
* Graficzny interfejs użytkownika: sposoby uniknięcia typowej pułapki polegającej na zastosowaniu metody repaint() zamiast metody validate() w celu uzyskania nowego układu komponentów
* Graficzny interfejs użytkownika -- sterowanie: m.in. bardziej funkcjonalna kontrola danych wprowadzanych przez użytkownika
* Wydajność: m.in. zastosowanie odroczonego ładowania, tak by zwiększyć szybkość uruchamiania programów
Programowanie w Prologu różni się zasadniczo od programowania w językach strukturalnych, takich jak Pascal czy C i językach obiektowych jak Java. Dla wielu osób zaczynających przygodę z Prologiem zaskoczeniem jest fakt, że pisanie programu w tym języku nie polega na kodowaniu algorytmu. Programista opisuje obiekty i związki między nimi, a także podaje warunki, jakie powinno spełniać szukane rozwiązanie. System sam przeprowadza obliczenia w oparciu o podane zależności logiczne, zaś programista jedynie częściowo może wpływać na sposób działania programu.
Książka "Prolog. Programowanie" to podręcznik tego niezwykłego języka programowania stosowanego przy rozwiązywaniu problemów z różnych dziedzin: od logiki matematycznej i symbolicznego rozwiązywania równań przez analizę języka naturalnego, aż do zagadnień związanych ze sztuczną inteligencją. Zawiera ona:
* Wprowadzenie do Prologu
* Podstawowe struktury danych
* Nawracanie, sterowanie nawracaniem za pomocą symbolu odcięcia
* Operacje wejścia/wyjścia
* Predykaty
* Składnię reguł gramatycznych i analizę języka naturalnego
* Wiele przykładowych programów
Wszystkim rozdziałom towarzyszą ćwiczenia. Uzupełnieniem tekstu książki są dodatki omawiające m.in. rozwiązania ćwiczeń i różnice między najważniejszymi wersjami Prologu.
"Prolog. Programowanie" to książka dla studentów matematyki i informatyki, a także dla wszystkich zainteresowanych programowaniem opartym na regułach logicznych. Jeśli chcesz podjąć wyzwanie i nauczyć się Prologu, jest książka dla Ciebie.
Przysłowie "kto pyta, nie błądzi" nie zawiera całej prawdy. Nie wystarczy pytać, trzeba jeszcze znajdować odpowiedzi. Książka "Programowanie w języku C. FAQ" to zbiór kilkuset odpowiedzi na najczęściej zadawane pytania na temat tego języka programowania. Z pewnością część z przedstawionych tu pytań już pojawiła się w Twojej praktyce programistycznej (pamiętasz, ile czasu straciłeś poszukując odpowiedzi?). Inne problemy dopiero się pojawią i jeśli na Twojej półce będzie ta książka, szybko znajdziesz w niej zwięzłe, ale wyczerpujące rozwiązanie często wzbogacone przykładem kodu źródłowego.
Chociaż książka żadną miarą nie powinna być traktowana jako podręcznik, z którego można nauczyć się programowania w C, z pewnością przyda się każdej osobie używającej tego języka w codziennej praktyce. Autor porusza wiele przydatnych zagadnień obejmujących szeroki zestaw tematów.
Omówiono między innymi:
* Deklaracje
* Struktury i unie
* Puste wskaźniki
* Wyrażenia
* Makroprocesor
* Alokację pamięci
* Różnice między standardami C
* Standardową bibliotekę wejścia-wyjścia
* Kwestie związane z systemami operacyjnymi
Wzorce projektowe. Analiza kodu sposobem na ich poznanieWydawnictwo Helion
Opanuj zasady stosowania wzorców projektowych na praktycznych przykładach
* Dowiedz się, czym są wzorce projektowe
* Zaimplementuj wzorce we własnych programach
* Poznaj rodzaje wzorców projektowych
Wzorce projektowe to zapisane w sposób formalny sposoby rozwiązywania najczęstszych problemów, z jakimi borykają się twórcy oprogramowania stosujący języki obiektowe. Najczęściej stosowane wzorce zostały skatalogowane i przedstawione w postaci diagramów UML, jednak do poprawnego ich wykorzystywania niezbędna jest wiedza praktyczna. Przystępując do implementacji wzorca projektowego, należy poznać zakres jego zastosowania. Taką wiedzę najlepiej zdobywa się, analizując przykłady kodów źródłowych.
Dzięki książce "Wzorce projektowe. Analiza kodu sposobem na ich poznanie" poznasz wzorce w taki właśnie sposób -- badając programy, w których je zastosowano. Każdy z omawianych w książce wzorców zaprezentowany jest w oparciu o dwie implementacje szczegółowo wyjaśniające zasadę jego działania. Dzięki takim opisom wzorców opanujesz tę technologię znacznie szybciej niż w przypadku nauki teoretycznych podstaw oraz prób ich samodzielnego wdrażania we własnych aplikacjach. Unikniesz typowych błędów i dowiesz się, jak prawidłowo wykorzystywać każdy z wzorców.
* Zastosowanie wzorców projektowych
* Klasyfikacja wzorców
* Podstawowe pojęcia z dziedziny obiektowości
* Interfejsy i wzorce konstrukcyjne
* Implementacja wzorców obserwatora i fasady
* Wykorzystanie wzorców projektowych w aplikacjach bazodanowych
Książka zawiera również zestawienie najczęściej wykorzystywanych wzorców projektowych wraz z opisem ich zastosowań.
Praktyczne rozwiązania dla zaawansowanych programistów
Do tworzenia wydajnych programów nie wystarczy teoretyczna wiedza o algorytmach, strukturach danych i inżynierii oprogramowania. Istnieje pokaźna liczba sztuczek, sprytnych technik i praktycznych rozwiązań, których znajomość jest niezbędna każdemu programiście.
Niniejsza książka zawiera pokaźny zestaw technik, które pomogą zaoszczędzić sporo czasu. Techniki te zostały opracowane przez twórców kodu poszukujących eleganckich i wydajnych sposobów tworzenia lepszego oprogramowania. W "Uczcie programistów" doświadczony programista Hank Warren dzieli się z Czytelnikami znanymi sobie sztuczkami, które zgromadził wraz z imponującym doświadczeniem w dziedzinie programowania aplikacji i systemów operacyjnych. Większość z tych sztuczek jest niezwykle praktyczna, niektóre zostały przedstawione jako ciekawostki lub zaskakujące rozwiązania. Ich zestawienie stanowi niesamowitą kolekcję, która będzie pomocna nawet dla najbardziej doświadczonych programistów w rozszerzeniu ich umiejętności.
W książce opisano następujące zagadnienia:
* Obszerna kolekcja użytecznych sztuczek programistycznych
* Drobne algorytmy rozwiązujące często spotykane problemy
* Algorytmy kontroli przekroczenia ograniczeń
* Zmiana kolejności bitów i bajtów
* Dzielenie całkowite i dzielenie przez stałe
* Elementarne operacje na liczbach całkowitych
* Kod Gray"a
* Krzywa Hilberta
* Formuły wyznaczania liczb pierwszych
Niniejsza książka jest doskonałą pozycją dla wszystkich programistów, którzy mają zamiar tworzyć wydajny kod. "Uczta programistów" nauczy Cię tworzenia aplikacji wysokiej jakości -- wyższej niż wymagana na uczelniach i kursach programowania.
Aplikacje biznesowe dotyczą danych -- niezależnie od tego, czy są to dane o produkcie, szczegóły dotyczące kart kredytowych użytkowników czy preferowanego koloru kupowanych samochodów. Wraz ze wzrostem znaczenia informacji wzrosła także złożoność dostępu do nich. Programiści Javy mogą wybierać teraz spośród różnego rodzaju interfejsów API i technologii -- EJB, JDO, JDBC, SQL, RDBMS, OODBMS i innych. Do tej pory byli oni zdani na siebie przy podejmowaniu decyzji o tym, który model najlepiej pasuje do ich aplikacji i jak w najlepszy sposób korzystać z wybranego API.
Książka "Java. Aplikacje bazodanowe. Najlepsze rozwiązania" przychodzi z pomocą programistom. Teraz nie muszą już oni przeszukiwać kilku książek na temat różnych API, aby zdecydować o odpowiedniej metodzie. Ten obszerny przewodnik omawia podstawy wszystkich wiodących interfejsów API (Enterprise JavaBeans, Java Data Objects, JDBC, a także innych, mniej znanych opcji), objaśnia metodologię i komponenty projektowe wykorzystujące wspomniane interfejsy oraz prezentuje rozwiązania najbardziej dostosowane do różnych typów aplikacji.
Książka omawia także zagadnienia dotyczące projektowania baz danych, począwszy od architektury tabel, skończywszy na normalizacji. Autor przedstawia najlepsze rozwiązania rozmaitych problemów. Nauczysz się w jaki sposób przeprowadzać różne rodzaje normalizacji, a także dowiesz się, kiedy warto przeprowadzić denormalizację. Uzyskasz także szczegółowe instrukcje dotyczące optymalizacji zapytań SQL w celu najlepszego wykorzystania struktury bazy danych. Zaprezentowano także praktyczne zastosowania omawianych technik dostarczając informacje, które Czytelnik może zastosować natychmiast we własnych projektach aplikacji biznesowych.
Przystępny kurs programowania dla wszystkich
* Poznaj najpopularniejsze języki programowania
* Zorganizuj sobie pracę przy tworzeniu aplikacji
* Napisz własny program
* Przetestuj aplikacje i usuń błędy
Mimo dynamicznego rozwoju informatyki wśród większości użytkowników komputerów nadal istnieje przekonanie, że programowanie jest zajęciem dla wybrańców posiadających ogromną i niemal tajemną wiedzę. Tymczasem pisanie programów to umiejętność, którą może opanować każdy. Oczywiście nauka programowania wymaga poznania wielu zagadnień teoretycznych i praktycznych, ale nie wymaga od osoby uczącej się żadnych niezwykłych umiejętności. Każdy może poznać zasady pisania programów, zarówno dla celów hobbystycznych, jak i zawodowych.
Książka "Programowanie. Od podstaw" to podręcznik programowania przeznaczony dla osób, które dopiero rozpoczynają swoją komputerową przygodę. Zawiera uniwersalne wiadomości przydatne każdemu programiście niezależnie od tego, co i w jakim języku będzie tworzyć. Czytając ją, poznasz wady i zalety różnych języków programowania, sposoby realizacji typowych zadań programistycznych i metody testowania aplikacji. Dowiesz się, jak komputery przechowują informacje, jakie systemy liczbowe wykorzystuje się w programowaniu i jakie narzędzia będą Ci potrzebne podczas pracy. Zdobędziesz solidne podstawy, które pozwolą Ci na dalsze rozwijanie swoich umiejętności.
* Sposób interpretacji kodu źródłowego przez komputer
* System binarny i szesnastkowy
* Warsztat pracy programisty
* Komentarze w kodach programów
* Definiowanie zmiennych
* Instrukcje warunkowe
* Testowanie i usuwanie błędów
* Projektowanie interfejsów użytkownika
* Operacje na plikach
* Wykorzystywanie rejestru Windows
* Zarządzanie wersjami kodu
* Kompilacja
Przekonaj się, że programowanie nie jest trudne.
Core Java Servlets i JavaServer Pages. Tom II. Wydanie IIWydawnictwo Helion
Kompletny przewodnik po zaawansowanych mechanizmach oraz funkcjach serwletów i JSP.
* Jak kontrolować działanie aplikacji za pośrednictwem pliku deskryptora?
* Jakie są możliwości rozbudowy systemu zabezpieczeń?
* Jak można wykorzystać obsługę zdarzeń?
Platforma Java 2 jest najczęściej wykorzystywaną technologią do budowy komercyjnych aplikacji internetowych, dynamicznych witryn WWW oraz aplikacji i usług sieciowych. Jej podstawą są serwlety i strony JSP, które są obsługiwane — przy użyciu komponentów wbudowanych lub dodatkowych — na praktycznie wszystkich serwerach WWW, a jednocześnie stanowią połączenie między klientami internetowymi i aplikacjami działającymi na serwerze.
Tom II prezentuje zaawansowane narzędzia i techniki służące do tworzenia rozbudowanych i wysoko wydajnych aplikacji. Opisano w nim mechanizmy kontroli działania aplikacji za pomocą pliku web.xml, możliwości rozszerzenia systemu zabezpieczeń metodami deklaratywnymi i programistycznymi, a także sposoby używania filtrów serwletów i JSP. Przedstawiono tu także opis funkcji rzadziej używanych, lecz niezwykle przydatnych podczas tworzenia złożonych programów.
Książka „Core Servlets i Java Server Pages. Tom II. Technologie zaawansowane. Wydanie drugie” to wyczerpujący podręcznik dla programistów znających już podstawy technologiczne serwletów i stron JSP, którzy chcą poznać i wykorzystać ich zaawansowane możliwości.
Tom I zawiera szczegółowy opis serwletów i stron JSP, w tym nagłówki HTTP, pliki cookie, mechanizm śledzenia sesji, elementy skryptowe JSP, dołączanie plików, architekturę Model-Widok-Kontroler (MVC) i język wyrażeń JSP. Znajdziesz tam także opis formularzy HTML, JDBC oraz najlepsze praktyki projektowania i implementowania aplikacji.
Wykorzystaj wszystkie możliwości serwletów i stron JSP, aby tworzyć profesjonalne aplikacje!
* Deskryptor wdrożenia
* Zabezpieczenia programistyczne i deklaratywne
* Filtry serwletów i stron JSP
* Model i obsługa zdarzeń
* Własne biblioteki znaczników
* Platforma Apache Struts
PHP to język umożliwiający tworzenie aplikacji sieciowych uruchamianych po stronie serwera. Jego najnowsza wersja, oznaczona numerem 5, to w pełni obiektowy język, za pomocą którego można budować nawet najbardziej złożone systemy portalowe, intranetowe i ekstranetowe. Dzięki nowym funkcjom wprowadzonym w PHP 5 możliwe jest korzystanie z plików XML i protokołu SOAP, wydajna komunikacja z bazą danych i stosowanie technik obiektowych znacznie ułatwiających i przyspieszających tworzenie rozbudowanych aplikacji.
"PHP5. Zaawansowane programowanie" to książka przedstawiająca potężne możliwości i elastyczność najnowszej wersji tej popularnej platformy programistycznej. Opisuje podstawowe zasady programowania obiektowego i prowadzenia rozbudowanych projektów informatycznych. Zawiera informacje o modelowaniu aplikacji w języku UML, stosowaniu wzorców projektowych i tworzeniu narzędzi, które będzie można wykorzystać w każdym projekcie. Przedstawia również analizę prawdziwego przypadku -- systemu automatyzującego pracę działu sprzedaży w przedsiębiorstwie handlowym.
* Programowanie obiektowe
* Język UML i modelowanie systemów
* Wzorce projektowe
* Tworzenie prostych narzędzi obiektowych
* Połączenia z bazami danych
* Model MVC
* Stosowanie protokołu SOAP
* Komunikacja z użytkownikiem i mechanizmy sesji
* Testowanie aplikacji
* Studium przypadku – automatyzacja pracy działu sprzedaży
Jeśli chcesz poznać zaawansowane możliwości PHP 5, sięgnij po tę książkę.
Przejdź na wyższy poziom programowania dzięki dwóm "guru" Javy: Herbowi Schildtowi i Jamesowi Holmesowi. Połączenie ich wiedzy pozwoli Ci poznać wiele sekretów i sztuczek wykorzystywanych przez profesjonalistów. W książce autorzy przedstawiają przykłady użytecznych aplikacji oraz towarzyszące im opisy użytych technologii. Prezentowane przykłady możesz wykorzystać w swojej codziennej pracy. Począwszy od interpreterów języka, agentów internetowych i podsystemów e-mail, skończywszy na analizatorach wyrażeń, narzędziach statystycznych i apletach finansowych -- wszystkie aplikacje są gotowe do użycia. Można je też dowolnie modyfikować i rozszerzać.
W książce znajdziesz:
* Omówienie zalet języka Java,
* Tworzenie analizatora wyrażeń numerycznych,
* Tworzenie agenta przeszukującego internet,
* Projektowanie i implementacja interpretera języka programowania,
* Wykonanie funkcjonalnego systemu pocztowego,
* Konstruowanie programu do pobierania danych z internetu z możliwością pobierania fragmentów stron,
* Wykonanie narzędzi statystycznych obliczających średnia, medianę, modalną, odchylenie standardowe, itp.
* Wykonanie apletów i serwletów finansowych obliczających równe raty pożyczki, przyszłą wartość inwestycji, kwotę emerytury, itp.
* Prześledzenie różnych technik wyszukiwania bazujących na sztucznej inteligencji,
* Zapoznanie się z możliwością przeglądania stron HTML-a w Javie.
O autorach:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows.
[więcej...]
James Holmes jest konsultantem do spraw tworzenia programowania oraz aplikacji serwerowych w środowiskach biznesowych.
[więcej...]
Jeżeli poznałeś już podstawy Javy, to czas na następny krok.
* Uwolnij siłę drzemiącą w Javie i w jej bibliotekach.
* Niezwykle różnorodne przykłady praktycznych aplikacji.
* Cenny kod źródłowy do wykorzystania we własnych projektach.
Tajniki tworzenia programów dla systemu Windows w asemblerze
* Poznaj narzędzia programistyczne
* Napisz programy wykorzystujące Windows API
* Wykryj i usuń błędy z programów asemblerowych
Pisanie programów w asemblerze przez długi czas kojarzyło się z systemem MS-DOS. Teraz asembler powoli odzyskuje straconą pozycję języka programowania dla systemu Windows. Wśród wielu zalet asemblera można wymienić: bezpośredni dostęp do procesora, zwarty i niewielki kod wynikowy oraz możliwości trudne do uzyskania za pomocą języków wysokiego poziomu. Asembler jest niezbędny przy tworzeniu sterowników dla urządzeń zewnętrznych, a korzystanie z niego uczy myślenia algorytmicznego, od którego języki obiektowe stopniowo odzwyczajają programistów.
Książka "Asembler. Podręcznik programisty" to kompendium wiedzy dotyczącej pisania programów dla systemu Windows w języku asemblera. Znajdziesz w niej opisy narzędzi programistycznych i sposoby korzystania z procedur Windows API. Nauczysz się tworzyć programy dla Windows -- od najprostszych, wykorzystujących konsolę, aż do skomplikowanych aplikacji z interfejsem graficznym. Dowiesz się, jak korzystać z narzędzi do wykrywania i usuwania błędów, a także poznasz zasady stosowania asemblera w połączeniu z językami wysokiego poziomu.
* Narzędzia programistyczne dla systemu Windows
* Wywoływanie funkcji Windows API
* Programy działające w trybie tekstowym
* Tworzenie i wykorzystywanie zasobów
* Praca z systemem plików
* Tworzenie bibliotek DLL
* Programowanie sieciowe
* Wykorzystywanie asemblera w językach wysokiego poziomu
* Turbo Debugger
* Tworzenie sterowników
Odkryj nieznane obszary programowania -- poznaj język asemblera
Odkryj nowe możliwości platformy .NET 2005
Visual C# 2005 to najnowsza wersja języka programowania uważanego przez wielu programistów za najlepszy język służący do tworzenia aplikacji dla platformy .NET. W połączeniu z nową biblioteką klas .NET i nowymi możliwościami środowiska Visual Studio 2005 druga edycja języka C# stała się jeszcze doskonalsza. Pisanie programów wymaga znacznie mniejszych nakładów pracy, a nowe elementy umożliwiają realizację większej ilości zadań programistycznych.
Aby poznać nowe możliwości języka C#, sięgnij po książkę "Visual C# 2005. Zapiski programisty". W tej wzorowanej na zeszytach laboratoryjnych publikacji znajdziesz notatki programistów, którzy jako pierwsi zetknęli się z tą technologią. Nie ma w niej teoretycznych wywodów, diagramów i niepotrzebnych informacji. Wykonując 50 ćwiczeń demonstrujących poszczególne aspekty tworzenia aplikacji, poznasz prostotę stosowania nowych elementów i mechanizmów i przekonasz się, jak wiele udogodnień wnosi do pracy programisty Visual C# 2005.
* Stosowanie klas generycznych
* Korzystanie z metod anonimowych
* Refaktoryzacja kodu źródłowego
* Tworzenie interfejsów użytkownika i formularzy
* Mechanizmy szybkiej instalacji aplikacji
* Zabezpieczanie aplikacji WWW
* Personalizacja stron WWW z użyciem motywów i szablonów
* Połączenia z bazą danych
Similar to Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu (20)
Windows Movie Maker dołączany do systemu Windows XP to doskonałe narzędzie do domowego montażu cyfrowych filmów wideo. Jest prosty w obsłudze, posiada spore możliwości, a montaż filmów za jego pomocą jest przyjemną zabawą. Movie Maker pozwala na przeniesienie klipów z kamery cyfrowej, zaimportowanie materiałów z dysku, rozmieszczenie ujęć i połączenie ich przejściami, a także udźwiękowienie i dodanie efektów specjalnych. Gotowy film można wysłać pocztą elektroniczną, zapisać na dysku lub płycie CD albo opublikować w internecie.
Książka "Tworzenie filmów w Windows XP. Projekty" przedstawia proces tworzenia filmu wideo. Opisuje kolejne kroki prowadzące do zmontowania cyfrowego filmu wideo z przechwyconych ujęć i zaimportowanych materiałów. Nie znajdziesz w niej jednak długich opisów i dziesiątek parametrów. Każde zagadnienie jest przedstawione za pomocą zrzutów ekranu i krótkich instrukcji. Dzięki temu w ciągu kilku godzin zrealizujesz swój pierwszy projekt w Movie Makerze.
* Elementy interfejsu użytkownika
* Przechwytywanie klipów z kamery wideo
* Import materiałów źródłowych
* Tworzenie wstępnego montażu
* Dodawanie przejść i efektów specjalnych
* Nakładanie plansz tytułowych i napisów
* Udźwiękowienie filmu
* Korzystanie z funkcji Autofilm
* Eksport zmontowanego filmu
Przekonaj się, jak proste może być tworzenie własnych filmów wideo.
Przedstaw się światu!
* Jak zbudować elegancką stronę z blogiem?
* Jak tworzyć wyspecjalizowane przeglądarki bloga?
* Jak dodawać do własnego serwisu blogowego kanał RSS?
Prowadzenie bloga to nowy sposób na zwiększenie aktywności społecznej - szansa na zaistnienie w rzeczywistości wirtualnej, mająca swoje odbicie w tak zwanym „prawdziwym życiu”. Dlatego blogi piszą dziś niemal wszyscy: politycy, marketingowcy, celebryci, biznesmeni. Forma publicznie dostępnego pamiętnika pozwala na szeroką prezentację własnych poglądów, przekonań czy wartości. Z tego powodu blogi wykorzystywane są też jako wortale poświęcone określonej tematyce, promujące idee lub produkty. Ich użytkownicy stworzyli nawet własną społeczność, która 31 sierpnia obchodzi swoje święto - Dzień Bloga. Już dziś możesz do nich dołączyć!
„Blog, więcej niż internetowy pamiętnik” to książka, która pokaże Ci, jak założyć i prowadzić własny blog, a także aktywnie korzystać z innych blogów. Dowiesz się z niej, jak skorzystać z oprogramowania obsługującego serwisy blogowe, jak zintegrować języki PHP, HTML, CSS i SQL, aby stworzyć elegancką stronę prezentującą Twój blog. Nauczysz się budować własną bazę danych, przeznaczoną do przechowywania wpisów, a także zabezpieczać ją przed niepowołanymi modyfikacjami. I wreszcie poznasz sposób na dodanie do własnego serwisu kanału RSS, aby czytelnicy na bieżąco mogli obserwować pojawianie się nowych wpisów. Znajdziesz tu wszystko, czego potrzebujesz, aby zaprezentować światu swój blog!
* Obsługa okna tworzenia bloga
* Modyfikowanie wyglądu bloga
* Publikowanie w określonym terminie
* Rozbudowa bloga
* Instalacja czytnika RSS
* Subskrybowanie blogów za pomocą RSS
* Instalacja oprogramowania własnego serwera
* Baza danych i modyfikacja danych
* Projektowanie struktury bloga
* Zakładanie konta użytkownika
* Zakładanie bazy danych i tabeli danych
* Nadawanie uprawnień do korzystania z tabeli
* Przygotowanie szablonu i tworzenie strony www
* Automatyzowanie, blokowanie i trwałe usuwanie wpisu
* Tworzenie formularza wyszukiwania
* Tworzenie kanału RSS i wypełnianie go treścią
* Pobieranie programu Weber
Blog to prosty i fascynujący sposób, aby świat dowiedział się o Twoim istnieniu!
Pakiet biurowy MS Office jest jednym z podstawowych narzędzi wykorzystywanych we współczesnych firmach. Zawarty w nim system zarządzania bazami danych Access to wygodna w obsłudze aplikacja służąca do operowania na zbiorach danych. Dzięki prostocie obsługi, sporym możliwościom i wizualnym narzędziom stanowi doskonałe rozwiązanie dla przedsiębiorstw, w których duże znaczenie ma czas poświęcany na opanowanie nowych programów. Kreatory i rozbudowany system pomocy oferowane przez Accessa niezwykle upraszczają proces tworzenia bazy oraz aplikacji przeznaczonych do obsługi zgromadzonych w niej danych.
W książce "Access w biurze i nie tylko" znajdziesz omówienie podstawowych możliwości tego systemu. Nauczysz się tworzyć i otwierać istniejące bazy danych oraz tworzyć nowe. Dowiesz się, w jaki sposób projektować tabele i jak dobierać typy danych dla poszczególnych kolumn tabeli. Przeczytasz o relacjach, poznasz sposoby wybierania i wstawiania danych, a także manipulowania nimi za pomocą kwerend. W kolejnych rozdziałach znajdziesz informacje o tworzeniu formularzy i raportów oraz wyświetlaniu wykresów na podstawie danych zgromadzonych w bazie. Nauczysz się także pisać własne makra i poznasz podstawy języka Visual Basic for Applications.
* Otwieranie istniejących baz danych
* Tworzenie tabel
* Typy danych
* Tworzenie i modyfikowanie relacji
* Manipulowanie danymi za pomocą kwerend
* Konstruowanie formularzy
* Budowanie raportów
* Automatyzacja pracy za pomocą makropoleceń
* Tworzenie i wyświetlanie wykresów
Dane to dziś najcenniejszy towar. Naucz się nim zarządzać.
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
Zapewnij swojej witrynie miejsce w pierwszej dziesiątce!
* Jak działają wyszukiwarki?
* Jaki wpływ na pozycję serwisu mają linki przychodzące i wychodzące?
* Czy istnieją zagrożenia związane z niewłaściwym pozycjonowaniem?
Stworzenie serwisu WWW to dopiero połowa sukcesu w Internecie. Druga połowa to zapewnienie witrynie odpowiedniej popularności. A tę popularność może zagwarantować przede wszystkim wysokie miejsce w wynikach wyszukiwarek. Jak to osiągnąć? Od czego zacząć i jak monitorować skuteczność prowadzonych działań? Wszystkie odpowiedzi znajdziesz właśnie w tej książce!
Poprzez liczne przykłady i ćwiczenia autorzy zapoznają Cię ze sposobem działania wyszukiwarki Google i zasadami doboru właściwych słów kluczowych. Pokażą, jak najlepiej rozmieścić je na stronie. Ponadto dowiesz się, jaki wpływ na pozycję strony mają linki wychodzące oraz przychodzące, jak przebiega proces indeksowania strony, jak działają systemy wymiany linków oraz jak wykorzystać statystyki do obserwacji ruchu na stronie. Przeczytasz także o tym, jakie zagrożenia niesie ze sobą niewłaściwa procedura pozycjonowania.
* Sposób działania Google oraz innych wyszukiwarek
* Definiowanie fraz i słów kluczowych
* Wpływ linków przychodzących i wychodzących na pozycję strony
* Korzystanie z systemów wymiany linków
* Proces indeksacji witryny
* Zagrożenia związane z niewłaściwym pozycjonowaniem
* Wykorzystanie statystyk do śledzenia ruchu na stronie
* Sposoby reklamowania serwisu
Zwiększ oglądalność swojej witryny WWW!
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
Lustereczko, powiedz przecie,
kto jest najwspanialszy w necie?
* Tworzenie i wykorzystywanie odpowiedniego wizerunku oraz zarabianie na nim
* Budowanie pożądanych marek bez wielkich nakładów finansowych
* Interaktywne relacje z klientami
* Wykorzystanie Internetu do rozwoju biznesu
* Narzędzia kreowania wizerunku w sieci
Jak Cię widzą (w sieci), tak Cię piszą
Internet jest nie tylko rewolucyjnym medium, pierwszym o naprawdę masowym zasięgu działania. Stanowi on przede wszystkim fascynujący alternatywny świat. Działa jak magnes, co roku przyciągając nowych użytkowników. Niczym używka, wciąż odnotowuje wydłużenie czasu kontaktu z odbiorcą. I last but not least — Internet to niekończący się pasaż handlowy, wymarzone miejsce spotkań podaży i popytu.
Poznaj specyfikę światowej sieci WWW i znajdź w niej właściwe miejsce dla Twojej marki. E-marketing rządzi się własnymi prawami — z jednej strony bezustannie stawia firmy przed nowymi wyzwaniami, z drugiej zaś stale kreuje nowe narzędzia dotarcia do klienta. A są one naprawdę fascynujące: możliwość dowolnej personalizacji przekazu, olbrzymia ilość kanałów, a przede wszystkim atrakcyjne społeczności — ludzie młodzi, aktywni, hobbyści, biznesmeni oraz entuzjaści nowinek. Mogą oni zostać ambasadorami Twojej marki, ale mogą też ją zniszczyć. Dlatego musisz poznać zasady rządzące Internetem i jego społecznościami, a następnie zacząć budować instrumenty wywierania wpływu i wykorzystać je dla dobra Twojego produktu.
Internet ma przyszłość!
* Czym jest e-wizerunek i jak wpływa na sukces firm, produktów i ludzi?
* Narzędzia budowania image’u — strona WWW, fora internetowe, newslettery i inne.
* Sześć zasad skutecznego kreowania e-wizerunku.
* Grzechy główne działań internetowych.
* Marka jako efekt przemyślanej strategii wizerunkowej.
* Case studies
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
Rozpocznij przygodę z Visual C++!
* Jakie prawa rządzą programowaniem obiektowym?
* Jak tworzyć usługi systemowe?
* Jak dokumentować tworzony kod?
Microsoft Visual C++ jest zintegrowanym środowiskiem, pozwalającym na tworzenie aplikacji przy użyciu języków C, C++ lub C++/CLI. Zawiera ono wyspecjalizowane narzędzia, pomagające w wydajnym tworzeniu rozwiązań opartych o te języki. Pierwsza wersja Visual C++ została wydana w 1992 roku, a środowisko to jest bezustannie ulepszane. Najnowsze wydanie, z datą 2008, zostało opublikowane w listopadzie 2007 roku i wprowadziło wiele nowości — jak chociażby wsparcie dla technologii .NET 3.5. Niewątpliwie narzędzie firmowane przez giganta z Redmond jest jednym z najpopularniejszych, a używają go programiści z całego świata.
Dzięki tej książce również Ty możesz dołączyć do tego wybitnego grona. Po jej przeczytaniu będziesz miał wiedzę na temat środowiska programistycznego i platformy .NET. Poznasz podstawy programowania obiektowego, nauczysz się uzyskiwać dostęp do informacji zgromadzonych w bazach danych oraz korzystać z możliwości Internetu bezpośrednio w Twoich programach. Kolejne rozdziały przedstawiają interesujące tematy dotyczące obsługi wyjątków, programów wielowątkowych oraz sposobów tworzenia usług systemowych. Ostatni rozdział poświęcony został tak istotnej kwestii, jak dokumentowanie kodu — to czynność, o której wielu programistów zapomina. Jeżeli chcesz rozpocząć przygodę z Microsoft Visual C++, ta książka jest idealną lekturą dla Ciebie!
* Praca w zintegrowanym środowisku programistycznym
* Pojęcia związane z programowaniem obiektowym
* Uzyskiwanie dostępu do informacji zgromadzonych w bazach danych
* Wykorzystanie transakcji w pracy z danymi
* Sposoby integracji z siecią Internet
* Obsługa wyjątków
* Programowanie wielowątkowe
* Tworzenie grafiki oraz wykorzystanie multimediów
* Drukowanie w systemie Windows
* Tworzenie usług systemowych
* Dokumentowanie kodu programu
Wykorzystaj możliwości Microsoft Visual C++ 2008!
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
Poznaj możliwości iPhone’a!
* Jak rozpocząć pracę z iPhone’em?
* Jak wykorzystać możliwości przeglądarki Safari?
* Jak używać map?
Pojawienie się iPhone’a firmy Apple można bez wahania nazwać Rewolucją! Rewolucją przez duże "R". Nigdy wcześniej żaden nowy telefon nie wzbudził takich emocji. Nigdy wcześniej nie ustawiały się na wiele dni przed premierą kolejki pod salonami. Co sprawia, że ludzie szaleją za tym małym cudem techniki? Wielodotykowy (ang. multitouch) ekran, dostęp do tysięcy aplikacji, stabilny system operacyjny oraz elegancki, przykuwający uwagę wygląd to tylko niektóre z jego zalet.
Właśnie dzięki tej książce dowiesz się, co tak naprawdę potrafi Twój iPhone. Autor — niezawodny Scott Kelby — bez zbędnego zagłębiania się w szczegóły techniczne opowie Ci o możliwościach tego rewolucyjnego urządzenia. Zaprezentuje Ci m.in. sposoby wykonywania różnych operacji przy użyciu tego telefonu. Poznasz tajniki jego konfiguracji i synchronizacji z komputerem oraz metodę sprawdzania poziomu naładowania baterii. Nauczysz się wykorzystywać wszystkie możliwości przeglądarki Safari, czytnika poczty oraz terminarza. Dowiesz się również, jak odtwarzać klipy z YouTube, słuchać muzyki czy oglądać filmy. Książka ta jest zatem świetną pozycją zarówno dla początkującego użytkownika telefonu iPhone, jak również dla zaawansowanego — ten ostatni znajdzie tu informacje, które go zaskoczą i zachwycą! W końcu iPhone to zdolna i piękna bestia…
* Włączanie, usypianie, wyłączanie iPhone’a
* Wykorzystanie wbudowanego głośnika
* Obsługa ekranu
* Importowanie kontaktów
* Dodawanie numerów
* Połączenia konferencyjne
* Wyciszanie dzwonka
* Odbieranie i wysyłanie wiadomości e-mail
* Obsługa przeglądarki Safari
* Wykorzystanie kalendarza
* Odtwarzanie klipów z YouTube
* Używanie mapy
* Sprawdzanie prognozy pogody
* Importowanie i odtwarzanie muzyki
* Wykonywanie zdjęć
* Rozwiązywanie typowych problemów
Sprawdź, co potrafi Twój iPhone!
Uwiecznij świat, jakiego nie znałeś!
* Jaki sprzęt jest potrzebny do makrofotografii?
* Jak uzyskać duże powiększenia?
* Jak komponować efektowne zdjęcia?
Wiele osób nie zwraca uwagi na niepozorne, małe elementy otaczającego nas świata. Czyż nie warto pokazać im, co tracą? Wykonanie dobrego zdjęcia w skali makro to wyzwanie, ale zachwyt na twarzach oglądających jest wart wszelkich poświęceń. Właśnie dzięki makrofotografii można ujrzeć cudowny świat, niezauważalny na co dzień. Magiczny świat szczegółów!
Autor książki "Makrofotografia. Magia szczegółu " przedstawia ten temat w sposób przejrzysty i systematyczny. Dzięki tej publikacji zdobędziesz informacje dotyczące sprzętu potrzebnego do wykonania makrofotografii oraz sposobu kompozycji zdjęcia. Poznasz zagadnienia związane z właściwym doborem ostrości, a także takie pojęcia, jak głębia ostrości, długość ogniskowej, jasność obiektywu i wiele innych. Pozwolą Ci one na swobodne poruszanie się po świecie makrofotografii. Ponadto poszerzysz swoją wiedzę odnośnie doboru właściwego oświetlenia oraz programów odpowiednich do obróbki wykonanych zdjęć. Niewątpliwym atutem tej książki są pytania i zadania kontrolne, które pozwolą Ci zweryfikować zdobyte umiejętności. Jeżeli chcesz uwiecznić otoczenie w makrofotografii, ta pozycja będzie dla Ciebie nieocenionym źródłem informacji, a może nawet twórczej inspiracji!
* Sprzęt konieczny do wykonania makrofotografii
* Sposoby na uzyskanie dużych powiększeń
* Komponowanie zdjęć
* Zasady doboru kadru
* Uzyskiwanie właściwej ostrości
* Ograniczenia ostrości
* Dobór właściwego oświetlenia
* Metody pomiaru światła
* Doświetlanie zdjęć
* Narzędzia do edycji zdjęć
Odsłoń na fotografiach całe piękno szczegółu!
Naucz się korzystać z nowoczesnych narzędzi PowerShella
i usprawniaj żmudne zadania administracyjne!
* Jak skonfigurować środowisko PowerShella?
* Jak tworzyć aplety poleceń i jak ich używać?
* Jak korzystać z potoku danych?
Windows PowerShell to innowacyjne narzędzie do zarządzania systemem i przetwarzania skryptów dla serwerów oraz klientów pod kontrolą Windows. Charakterystyczną cechą tego interpretera poleceń jest obiektowa logika, która sprawia, że wynikiem każdego polecenia jest obiekt określonego typu. Dodatkowo wszystkie funkcje dostępne przez API systemu są możliwe do wywołania z poziomu PowerShella. Dzięki swojej uniwersalności oraz nowoczesnym narzędziom interpreter ten zapewnia spójny oraz jasny mechanizm zarządzania, oparty na wierszu poleceń i niewymagający od użytkownika dużej wiedzy programistycznej.
Książka "Windows PowerShell. Podstawy" zawiera dokładny opis innowacyjnej architektury PowerShella, zasad pisania skryptów oraz możliwości korzystania z podstawowych interfejsów systemowych: COM, WMI, ADSI i ADO.NET, a także obszerny zbiór opisów rozwiązań konkretnych zadań administracyjnych. Korzystając z tego przewodnika, poznasz funkcje i narzędzia PowerShella. Nauczysz się również korzystać z obiektowego potoku danych i zarządzać procesami, dziennikami zdarzeń oraz wpisami rejestru. Dzięki zawartej tu wiedzy z pewnością usprawnisz i zautomatyzujesz wszelkie czasochłonne zadania administracyjne, by móc swobodnie stosować PowerShell jako podstawową konsolę do codziennej pracy.
* Aplety poleceń
* Przetwarzanie potokowe
* Potoki danych
* Uniwersalny model nawigacji
* Definiowanie dysków
* Język skryptów PowerShella
* Tablice asocjacyjne
* Praca ze skryptami
* Różnicowanie reakcji na błędy
* Biblioteki klas
* Narzędzia PowerShella
* Zarządzanie użytkownikami i grupami w Active Directory
* Bazy danych
* Zaawansowane operacje dostępu do danych
PowerShell skróci czas Twojej pracy!
Poznaj specyfikę języka Java i zostań mistrzem programowania
* Jak korzystać z bibliotek języka Java?
* Jak pisać funkcjonalny i klarowny kod?
* Jak stworzyć profesjonalny i efektowny program?
Język Java jest językiem obiektowym z dziedziczeniem jednobazowym. Wewnątrz każdej metody korzysta on ze zorientowanego na instrukcje stylu kodowania. Aby dobrze poznać jakikolwiek język, należy nauczyć się posługiwać jego regułami, zasadami i składnią — podobnie jest z językiem programowania. Jeśli chcesz zyskać możliwość efektywnego programowania w języku Java, powinieneś poznać struktury danych, operacje i udogodnienia, oferowane przez biblioteki standardowe, a także często stosowane i efektywne sposoby tworzenia kodu. Całą potrzebną Ci wiedzę znajdziesz właśnie w tym podręczniku.
W książce „Java. Efektywne programowanie” w sposób zrozumiały i klarowny przedstawiono zasady opisujące mechanizmy używane w najlepszych technikach programowania. Ten podręcznik podpowie Ci, jak najbardziej racjonalnie korzystać z języka Java oraz jego podstawowych bibliotek. Dowiesz się, jak stosować wyjątki przechwytywalne i wyjątki czasu wykonania, poznasz także zalety stosowania statycznych klas składowych. Opanujesz metody sprawdzania poprawności parametrów i projektowania sygnatur oraz wszelkie instrukcje, które pozwolą Ci na wydajne i profesjonalne programowanie.
* Tworzenie i usuwanie obiektów
* Klasy i interfejsy
* Zapewnianie niezmienności obiektu
* Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
* Zalety stosowania statycznych klas składowych
* Typy ogólne
* Typy wyliczeniowe i adnotacje
* Metody
* Programowanie
* Wykorzystanie ogólnie przyjętych konwencji nazewnictwa
* Wyjątki
* Współbieżność i serializacja
* Dokumentowanie bezpieczeństwa dla wątków
Nie wystarczy samo poznanie języka Java. Trzeba wiedzieć, jak z niego efektywnie korzystać!
Rozpocznij swoją przygodę z JavaScript!
* Jak rozpocząć przygodę z JavaScript?
* Jakie obiekty dostarcza JavaScript?
* Jak reagować na błędy?
Język JavaScript, choć ma już blisko dwanaście lat, swoimi możliwościami wciąż potrafi zafascynować niejednego projektanta stron internetowych. Ma już za sobą gorsze dni, jednak aktualnie dzięki technologii AJAX znów jest na topie. Wykorzystując go w odpowiedni sposób, sprawisz, że twój serwis WWW stanie się bardziej interaktywny i dynamiczny.
Ta książka pozwoli Ci wyjść zwycięsko z pierwszego starcia z tym językiem! Dowiesz się z niej, jak używać zmiennych, operatorów oraz funkcji. Nauczysz się reagować na zdarzenia oraz wykorzystywać okna dialogowe. Ponadto zdobędziesz wiedzę na temat pracy z obiektami DOM HTML oraz na temat sposobów reagowania na błędy w skryptach. Autor przedstawia tu także dostępne obiekty JavaScript oraz pokazuje, jak wykonywać operacje związane z czasem. Ogromnym atutem tej książki jest przejrzystość i usystematyzowany sposób prezentowania informacji. Dzięki temu również Ty szybko i bezboleśnie poznasz JavaScript!
* Typowe konstrukcje języka JavaScript
* Wykorzystanie zmiennych
* Zastosowanie funkcji
* Reagowanie na zdarzenia
* Sposoby użycia okien dialogowych
* Wykonywanie operacji związanych z czasem
* Dostępne obiekty JavaScript
* Obiekty DOM HTML
* Przygotowanie własnych obiektów
* Dziedziczenie w JavaScript
* Obsługa błędów
Przejdź bezboleśnie pierwsze starcie z JavaScript!
Naucz się łączyć największe zalety języków oraz technik programowania
i twórz interaktywne strony internetowe
* Jak unikać typowych błędów i sprawnie rozwiązywać problemy programistyczne?
* Jak połączyć zalety HTML, XML i PHP dla uzyskania pożądanych efektów?
* Jak tworzyć aplikacje wyposażone w aktywny interfejs użytkownika?
Statyczne strony WWW to dziś już przeszłość. Powszechnie dostępne narzędzia dają programistom prawie nieograniczone możliwości w zakresie tworzenia interaktywnych witryn internetowych, wzbogaconych o najróżniejsze efekty wizualne, animacje oraz wbudowane narzędzia pomocnicze. Największą popularność zdobyły sobie narzędzia z kategorii open source — z powodu ich minimalnego kosztu oraz niezwykle dużych zasobów, dostępnych za pośrednictwem Internetu. Z tej książki dowiesz się, jak tworzyć bogate i interaktywne strony WWW, łącząc rozmaite techniki i korzystając z różnych języków.
Książka "Ajax, JavaScript i PHP. Intensywny trening" poprowadzi Cię krok po kroku po podstawowych zasadach programowania w językach JavaScript, PHP i HTML oraz technologiach programowania. Dzięki temu podręcznikowi dowiesz się m.in., jak wykorzystywać dostępne biblioteki ajaksowe do implementowania i ulepszania podstawowych mechanizmów aplikacji. Szybko nauczysz się tworzyć interaktywne strony WWW, zarówno za pomocą technologii serwerowych, jak i technik oraz narzędzi umiejscowionych po stronie klienckiej, a także ich kombinacji.
* Tworzenie stron WWW w języku HTML
* Stylizacja stron za pomocą arkuszy CSS
* Tworzenie skryptów w języku JavaScript
* Wbudowanie skryptu w stronę WWW
* Obiektowy model dokumentu (DOM)
* Obiekty String
* Instrukcje warunkowe i pętle
* Funkcje wbudowane i biblioteki
* Konstruowanie aplikacji ajaksowych
* Zmienne w języku PHP
* Funkcje liczbowe, łańcuchy i tabele
* Kontrola przepływu sterowania
* Usługi webowe oraz protokoły REST i SOAP
Łącz, kompiluj, dobieraj — niech Twoje strony WWW zrobią wrażenie!
Poznaj narzędzia programu PowerPoint i twórz wyjątkowe prezentacje!
* Jak stworzyć profesjonalną prezentację na każdą okazję?
* Jak modyfikować grafikę SmartArt?
* Jak korzystać z programu Clip Organizer i biblioteki slajdów?
Z pewnością wiesz, do czego służy program PowerPoint, lecz jeśli jeszcze nie potrafisz z niego korzystać, a musisz szybko przygotować profesjonalną prezentację, ta książka jest właśnie dla Ciebie! Znajdziesz tu opis ostatniej wersji programu — PowerPoint 2007. Umożliwia ona stworzenie zaawansowanej i bogatej prezentacji, wyposażonej w dźwięk, fotografie i animacje filmowe. Nowy PowerPoint pozwala także na bezpieczne udostępnianie Twojej prezentacji wszystkim zainteresowanym.
Książka "PowerPoint 2007 PL. Seria praktyk" to bogato ilustrowany, a przy tym prawdziwie intuicyjny podręcznik, dzięki któremu każdy nauczy się sprawnie korzystać z tej aplikacji. Kolor i zrzuty ekranowe ilustrujące kolejne informacje, jak również klarowne i zrozumiałe instrukcje sprawiają, że nauka staje się niezwykle prosta. Dzięki tej książce poznasz wszystkie niezbędne narzędzia PowerPointa i ciekawe funkcje tego programu. Dowiesz się, jak zastosować w swojej prezentacji grafiki SmartArt oraz zaawansowane układy slajdów, a także w jaki sposób korzystać z galerii stylów czy biblioteki slajdów.
* Tworzenie prezentacji
* Praca z tekstem
* Grafika i linie
* Konwersja na grafikę SmartArt
* Tabele i wykresy
* Używanie Excela 2007 — kopiowanie i wstawianie tabel
* Wzbogacanie prezentacji — animacje
* Multimedia
* Dodawanie filmów i dźwięku
* Tworzenie albumów
* Pokaz slajdów
* Nagrywanie narracji
* Udostępnianie prezentacji
* Bezpieczeństwo
PowerPoint jest dla każdego!
Poznaj narzędzia oraz funkcje Excela i z łatwością wykorzystuj tę wiedzę w pracy
* Jak tworzyć skoroszyty i wykresy?
* Jak zarządzać danymi w arkuszach?
* Jak szacować formuły?
Na samo brzmienie słowa "Excel" reagujesz paniką? Uważasz, że to bardzo skomplikowany i trudny w obsłudze program? Świetnie! Ta książka została napisana właśnie z myślą o Tobie! Podręcznik, który trzymasz w rękach, stanowi namacalny dowód na to, że Excel 2007 może być prosty, a nauka jego obsługi bardzo przyjemna! Choć trudno Ci w tej chwili w to uwierzyć, aplikacja ta oferuje cale spektrum nowoczesnych, a przy tym przyjaznych i intuicyjnych narzędzi oraz funkcji, dzięki którym znacznie usprawnisz i przyspieszysz swoją pracę. Naprawdę warto je poznać!
Książkę "Excel 2007 PL. Seria praktyk" przygotowano w taki sposób, aby każdy mógł nauczyć się korzystać z narzędzi Excela, tworzyć odpowiednie arkusze oraz wykonywać na nich praktyczne operacje. Wszystkie porady i instrukcje napisane zostały prostym, zrozumiałym językiem. Dzięki temu szybko opanujesz sposoby zarządzania danymi czy szacowania formuł w tym programie. Wszystkie omawiane zagadnienia zilustrowane są ułatwiającymi zrozumienie zrzutami ekranowymi, a kolorowy druk znacznie uprzyjemni Ci korzystanie z książki. Wystarczy ją przeczytać, a poznasz Excela w stopniu pozwalającym Ci na swobodną pracę w tym programie. Na co zatem czekasz? Przed Tobą nauka takich zagadnień, jak:
* Tworzenie skoroszytu
* Wprowadzanie danych do arkusza i zarządzanie nimi
* Formuły i funkcje
* Tabele i wykresy
* Konwersja tabeli do postaci zakresu
* Zaawansowane funkcje
* Szacowanie formuł
* Zarządzanie Excelem
* Makra
* Szablony i scenariusze
* Łącza i odwołania
* Stosowanie aktualizacji
Najprostszy i najprzyjemniejszy sposób na poznanie Excela!
Poznaj praktyczne możliwości programu Access 2007!
* Jak właściwie zaprojektować bazę danych?
* Jak korzystać z szablonów?
* Jak tworzyć tabele i definiować relacje między nimi?
Wbrew pozorom nie trzeba być specjalistą, żeby korzystać z Accessa! Jest to program wyjątkowo przyjazny dla użytkownika, umożliwiający tworzenie baz danych i zarządzanie nimi bez potrzeby dogłębnego poznawania języka SQL oraz skomplikowanych środowisk serwerowych. Aplikacja pozwala na zapisywanie danych z wykorzystaniem formularzy, kierowanie zapytań do bazy, a także dzielenie danych ze współpracownikami za pośrednictwem sieci komputerowej.
Książka "Access 2007 PL. Seria praktyk" zawiera zwięzły i czytelny opis wszystkich najważniejszych funkcji tego programu, a także konkretne przykłady i jasne instrukcje zastosowania narzędzi Accessa. Kolorowe strony pozwalają na szybkie odnalezienie interesujących Cię zagadnień. Dzięki temu podręcznikowi poznasz podstawowe zasady tworzenia dobrego projektu bazy danych oraz jej zaawansowane możliwości. Nauczysz się tworzyć tabele, formularze i raporty, a także korzystać z kluczy podstawowych i obcych. Bez problemu zbudujesz taką bazę danych, która pozwoli Ci sprawnie zarządzać informacjami.
* Personalizacja Accessa 2007
* Projektowanie baz danych
* Relacyjne bazy danych
* Klucze podstawowe i obce
* Tworzenie tabel
* Korzystanie z typów danych
* Definiowanie relacji
* Kwerendy
* Korzystanie z SQL
* Tworzenie i dostrajanie formularzy
* Tworzenie raportów
* Współdzielenie Accessa
Naucz się korzystać z Accessa — zachwycą Cię jego możliwości!
Odkryj bogactwo funkcji Worda!
Jak poprawnie formatować i uatrakcyjniać dokumenty?
Chcesz zacząć sprawnie tworzyć w programie Word dokumenty o profesjonalnym wyglądzie? A może tak dobrze go już znasz, że wątpisz, by skrywał przed Tobą jeszcze jakiekolwiek tajemnice? Tak czy inaczej warto opanować wszystkie potężne możliwości najpopularniejszego edytora tekstów, różne sposoby pracy z nim i metody tworzenia dokumentów tekstowych. Uzbrojony w taką wiedzę, z pewnością będziesz pracował szybciej i sprawniej.
Książka "Word 2007 PL. Seria praktyk" jest graficznym przewodnikiem po najnowszej wersji Worda i zawiera dokładny opis jego funkcji podstawowych oraz zaawansowanych — począwszy od tworzenia i formatowania tekstów, a na złożonych makrach skończywszy. Wszystko to przedstawione zostało za pomocą przejrzystych, kolorowych i szczegółowych instrukcji oraz praktycznych przykładów. Dzięki temu podręcznikowi poznasz całe spektrum narzędzi Worda i udoskonalisz swoją pracę z tym programem.
* Narzędzia główne
* Formatowanie tekstu
* Szybkie style
* Praca z dokumentem
* Drukowanie i publikowanie
* Konwersja do formatu PDF
* Biblioteka ClipArt i SmartArt
* Hiperłącza i zakładki
* Równania
* Zaawansowane funkcje — podpis cyfrowy
* Makra
Opanuj wszystkie narzędzia Worda i ciesz się swobodą tworzenia dokumentów!
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
Dołącz do kreatorów nowych trendów! Stwórz własny serwis społecznościowy!
* Pierwsze kroki w roli twórcy serwisu — rodzaje stron, prawo i reklama
* Skrypty, instalacja i administracja — PHPizabi, Elgg, Dolphin, Joomla!
* ABC moderatora i użytkownika — regulamin, trolle, zakres ingerencji
Serwisy społecznościowe są bodaj najszybciej rozwijającą się dziś częścią internetu. Nie sposób przecenić ich roli społecznej i opiniotwórczej. Liczba użytkowników i ich poczucie wspólnoty decydują o sile i prężności tych serwisów. W każdej chwili możesz przyłączyć się do któregoś z nich. Jednak znacznie więcej radości sprawiłoby Ci na pewno prowadzenie własnego serwisu, wokół którego skupiałaby się cała społeczność osób o zainteresowaniach podobnych do Twoich.
W książce "Serwisy społecznościowe. Budowa, administracja i moderacja" znajdziesz wszelkie informacje dotyczące tworzenia i obsługi serwisu społecznościowego. Opisano w niej początki tego zjawiska społecznego, podstawy jego działania, rozmaite odmiany serwisów, wszelkie kwestie prawne i techniczne. Niezależnie od tego, czy szukasz inspiracji odnośnie treści umieszczanych w serwisie, czy chciałbyś dowiedzieć się, jak rozwiązać konkretne problemy z konfiguracją, rejestracją, wyborem mechanizmu działania czy wyglądu Twojego serwisu, autorzy służą Ci rzetelną wiedzą, wskazówkami i podpowiedziami. Oprócz tego wprowadzą Cię w kwestie związane z bezpieczeństwem w sieci, rolą moderatora i rozwiązywaniem problemów z użytkownikami.
* Społeczności internetowe
* Serwisy społecznościowe (historia, rodzaje, reklama)
* Regulacje prawne
* Wybór domeny i hostingu
* Niezbędne narzędzia (klient FTP, edytory CSS i tekstowe)
* Serwis społecznościowy a forum dyskusyjne
* Bezpieczeństwo serwisu
* Skrypty (PHPizabi, Elgg, Dolphin, Joomla!, BuddyPress, Joovili, SocialEngine i wiele innych)
* Online-Community-Building
* Skrypty do budowy serwisu wideo (ClipBucket Lite, Clipshare, ClipHouse i wiele innych)
* Rola moderatora
* Social shopping
Sprawdź, jak wiele satysfakcji daje własny serwis społecznościowy!
AutoCAD to program do komputerowego wspomagania projektowania, który od lat wyznacza standardy na rynku takich aplikacji. Z jego możliwości korzystają projektanci różnych branż, a ogromna liczba bibliotek, modułów i nakładek sprawia, że realizacja nawet najbardziej złożonych projektów przebiega szybko i sprawnie. Każda kolejna wersja AutoCAD-a jest bardziej rozbudowana. W wersji 2008 autorzy aplikacji zadbali o optymalizację znanych już użytkownikom narzędzi i zwiększenie produktywności pracy. Zmodernizowany interfejs użytkownika oraz nowe możliwości docenią nie tylko profesjonaliści, ale również ci, którzy stawiają pierwsze kroki w świecie komputerowego wspomagania projektowania.
Książka "AutoCAD 2008 i 2008 PL" to wyczerpujące omówienie najnowszej edycji tej aplikacji. Każdy użytkownik AutoCAD-a, niezależnie od stopnia zaawansowania, znajdzie w niej interesujące informacje. Czytając tę książkę, nauczysz się tworzyć i modyfikować rysunki, wymiarować je, korzystać z warstw, bloków i stylów oraz drukować projekty. Poznasz zasady modelowania bryłowego, tworzenia szablonów oraz rysowania w trybie aksonometrycznym. Każde z narzędzi dostępnych w aplikacji jest dokładnie omówione, a ilustrowane przykłady ułatwiają poznanie ich w praktyce.
* Interfejs użytkownika, menu i paski narzędzi
* Praca z dokumentami
* Układy współrzędnych
* Tworzenie podstawowych obiektów i definiowanie ich właściwości
* Napisy i tabelki
* Rysowanie precyzyjne
* Rysunek aksonometryczny
* Kreskowanie
* Naprawianie uszkodzonych rysunków
* Techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Modelowanie 3D i bryły ACIS
Poznaj najnowszą wersję narzędzia, które zrewolucjonizowało pracę projektantów na całym świecie.
Zobacz, jakie to proste — naucz się tworzyć bazy danych!
* Jak tworzyć formularze i raporty?
* Jak modyfikować strukturę tabel?
* Jak stosować mechanizmy wymiany danych?
Współczesny świat wymusza na przedsiębiorstwach gromadzenie oraz przetwarzanie ogromnej ilości informacji. To sprawia, że muszą one dysponować wydajnymi i sprawnymi bazami danych. Aby zbudować taki system zarządzania danymi, niezbędne są odpowiednie narzędzia — jednym z nich jest program MS Access. Ta aplikacja przede wszystkim pozwala na łatwą kontrolę poprawności tworzonych projektów oraz zapewnia integrację narzędzi służących do tworzenia struktury relacyjnej. Dba także o zgodność tych narzędzi ze standardem języka zapytań SQL, wykorzystywanym do tworzenia i modyfikowania baz danych oraz operowania na zgromadzonych w nich informacjach.
Książka „Bazy danych. Pierwsze starcie” stanowi doskonałe wprowadzenie w tematykę tworzenia baz danych. Zawiera wszystkie potrzebne informacje, podane w prosty i przejrzysty sposób. Ten podręcznik przyda się zarówno studentom kierunków informatycznych, jak i wszystkim tym, którzy chcą zdobyć wiedzę o nowoczesnych metodach budowania takich baz. Stąd dowiesz się m.in., jak wykorzystywać język zapytań SQL, w jaki sposób tworzyć tabele, formularze i raporty oraz stosować mechanizmy wymiany danych, a także na czym polega filtrowanie i sortowanie w zapytaniach. Zdobędziesz wiedzę i umiejętności wystarczające do samodzielnego zbudowania wydajnej bazy danych i sprawnego nią zarządzania.
* Projektowanie bazy danych — narzędzia wizualne
* Tworzenie formularzy i raportów
* Strukturalny język zapytań SQL w wersji MS JetSQL
* Składnia podstawowa
* Unia — koniunkcja zbiorów
* Grupowanie i funkcje agregujące
* Zastosowanie języka SQL z poziomu formularzy
* Mechanizmy wymiany danych
* Obiekty: DAO, RDO, ADO
* Zastosowanie mechanizmów wymiany danych przy tworzeniu aplikacji
Stwórz własną, niezawodną bazę danych!
Wkrocz w świat projektowania 3D
* Jak definiować parametry projektu?
* W jaki sposób korzystać z narzędzi projektowych?
* Jak generować dokumentację techniczną?
Inventor, opracowany i sprzedawany przez firmę Autodesk, to program typu CAD, pozwalający na zamodelowanie projektowanego urządzenia lub elementu w postaci bryły trójwymiarowej. W oparciu o tak zamodelowaną bryłę Inventor umożliwia wygenerowanie pełnej dokumentacji projektowej — rysunków wykonawczych i złożeniowych, wykazu części i innych. Aplikacja pozwala także na przeprowadzenie symulacji i analizy działania projektowanego urządzenia.
"Inventor. Pierwsze kroki " to podręcznik dla wszystkich osób, które chcą poznać możliwości tej aplikacji i wykorzystać je w swojej pracy. Książka opisuje proces instalacji i konfiguracji programu oraz definiowania parametrów projektu. Pokazuje także kolejne kroki jego realizacji. Przeczytasz w niej o tworzeniu szkiców, definiowaniu wiązań, generowaniu modeli bryłowych i tworzeniu zespołów. Dowiesz się także, w jaki sposób wygenerować dokumentację techniczną w oparciu o gotowy model oraz jak zaprezentować elementy projektu w postaci animacji trójwymiarowej.
* Instalacja Inventora
* Konfiguracja interfejsu użytkownika
* Praca z oknami dialogowymi
* Tworzenie szkiców i wiązań
* Edycja obiektów graficznych
* Tworzenie brył trójwymiarowych
* Łączenie elementów w zespoły
* Tworzenie dokumentacji technicznej
* Prezentacja zespołów
Zrealizuj swoje wizje za pomocą Inventora!
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
1. IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI Java. Obs³uga wyj¹tków,
usuwanie b³êdów
KATALOG KSI¥¯EK i testowanie kodu
KATALOG ONLINE Autor: Stephen Stelting
T³umaczenie: Adam Bochenek
ZAMÓW DRUKOWANY KATALOG ISBN: 83-7361-796-5
Tytu³ orygina³u: Robust Java
Format: B5, stron: 376
TWÓJ KOSZYK
W ka¿dej aplikacji mog¹ wyst¹piæ b³êdy.
DODAJ DO KOSZYKA Przygotuj siê na to pisz¹c odpowiedni¹ obs³ugê wyj¹tków
• Poznaj techniki programowania, dziêki którym Twoje aplikacje
stan¹ siê odporne na b³êdy
CENNIK I INFORMACJE • Naucz siê przewidywaæ b³êdy i zapobiegaæ ich wystêpowaniu
• Zabezpiecz aplikacje przez skutkami wyst¹pienia b³êdów stosuj¹c
ZAMÓW INFORMACJE odpowiednie wzorce projektowe
O NOWO CIACH
¯aden kod nie jest idealny — nawet najbardziej do wiadczony programista pope³nia
b³êdy. Tym, co w takich przypadkach wyró¿nia do wiadczonego programistê jest fakt,
ZAMÓW CENNIK
¿e jego aplikacje posiadaj¹ mechanizmy pozwalaj¹ce na obs³ugê tych b³êdów.
Dziêki nim program nie zawiesi siê ani nie „pogubi” ¿adnych danych. Oczywi cie, aby
CZYTELNIA napisaæ odpowiedni¹ obs³ugê wyj¹tków, nale¿y poznaæ ich typy oraz mechanizmy ich
powstawania. Niezbêdna jest równie¿ znajomo æ wzorców projektowych oraz narzêdzi
FRAGMENTY KSI¥¯EK ONLINE do testowania kodu.
W ksi¹¿ce „Java. Obs³uga wyj¹tków, usuwanie b³êdów i testowanie kodu” znajdziesz
wszystkie te informacje. Dowiesz siê, jak zaimplementowaæ obs³ugê wyj¹tków
i poprawiæ jako æ kodu ród³owego. Poznasz modele wyj¹tków i nauczysz siê zarz¹dzaæ
mechanizmami ich obs³ugi na poziomie aplikacji i pojedynczych modu³ów. Przeczytasz
tu tak¿e o wzorach projektowych zapewniaj¹cych prawid³ow¹ obs³ugê wyj¹tków.
• Koncepcje obs³ugi wyj¹tków
• Obs³uga wyj¹tków w aplikacjach wielow¹tkowych
• Przyczyny wystêpowania wyj¹tków w ró¿nych elementach jêzyka Java
• Programowanie rozproszone w Javie
• Wyj¹tki w aplikacjach J2EE
• Wzorce projektowe
Wydawnictwo Helion
ul. Chopina 6 • Testowanie kodu i usuwanie b³êdów
44-100 Gliwice Po przeczytaniu tej ksi¹¿ki Twoja wiedza pozwoli Ci na podejmowanie odpowiednich
tel. (32)230-98-63 decyzje dotycz¹ce architektury aplikacji i odpowiadaj¹cego jej modelu wyj¹tków.
e-mail: helion@helion.pl
2. Spis treści
Wstęp ......................................................................................................................................................... 11
Część I Podstawy obsługi wyjątków 17
Rozdział 1. Obsługa wyjątków. Wprowadzenie....................................................................................... 19
Wstęp ........................................................................................................................ 19
Pojęcie wyjątku ........................................................................................................... 22
Hierarchia klas reprezentujących wyjątki ........................................................................ 24
Opcje związane z przechwytywaniem oraz deklaracją wyjątków.......................................... 25
Przechwytywanie i obsługa wyjątków: bloki try, catch i finally ....................................... 26
Reguły dotyczące stosowania bloków try-catch-finally.................................................. 27
Deklarowanie metod zgłaszających wyjątki ................................................................ 28
Reguły dotyczące deklarowania metod zgłaszających wyjątki ....................................... 28
Wyjątki kontrolowane i niekontrolowane ......................................................................... 28
Podstawowe własności każdego wyjątku ........................................................................ 29
Podsumowanie ........................................................................................................... 31
Rozdział 2. Obsługa wyjątków. Techniki i praktyka...............................................................................33
Wstęp ........................................................................................................................ 33
Kiedy przechwytywać wyjątki, a kiedy je deklarować? ....................................................... 34
Typowe sposoby obsługi wyjątków ................................................................................. 35
1. Zapis błędu lub związanej z nim informacji do dziennika ......................................... 36
2. Zwrócenie się do użytkownika z prośbą o podjęcie odpowiedniej decyzji ........................ 38
3. Użycie wartości domyślnych lub alternatywnych ..................................................... 39
4. Przekazanie sterowania do innej części aplikacji .................................................... 40
5. Konwersja wyjątku do innej postaci ...................................................................... 40
6. Zignorowanie problemu....................................................................................... 41
7. Powtórzenie operacji........................................................................................... 41
8. Wywołanie operacji alternatywnej ......................................................................... 42
9. Przygotowanie aplikacji do zamknięcia .................................................................. 42
Co należy, a czego nie wolno robić w ramach obsługi wyjątków? ....................................... 43
Dobre praktyki ............................................................................................................ 43
1. Obsługuj wyjątki zawsze, gdy jest to możliwe ......................................................... 43
2. Obsługa wyjątku powinna ściśle zależeć od jego typu ............................................. 43
3. 6 Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
3. Zapisuj do dziennika te wyjątki, które mogą mieć wpływ na działanie aplikacji ........... 44
4. Dokonuj konwersji wyjątków, jeśli tylko dojdziesz do wniosku,
że lepiej reprezentują one istotę problemu............................................................ 44
Czego robić nie należy?................................................................................................ 44
1. Nie ignoruj wyjątków, chyba że masz absolutną pewność,
iż jest to niegroźne dla działania aplikacji ............................................................. 44
2. Nie dopuszczaj do zbyt ogólnego traktowania wyjątków........................................... 45
3. Nie dokonuj konwersji wyjątku polegającej na zmianie typu szczegółowego
na ogólny (chyba że przechowasz kontekst zdarzenia w inny sposób) ....................... 46
4. Wyjątków lepiej unikać, niż je obsługiwać .............................................................. 47
Rozdział 3. Zaawansowane koncepcje obsługi wyjątków .....................................................................49
Wstęp ........................................................................................................................ 49
Tworzenie własnych wyjątków ....................................................................................... 50
1. Definicja klasy wyjątku........................................................................................ 51
2. Deklaracja wyjątku przez metody, które mogą być potencjalnym źródłem błędu ......... 52
3. Znalezienie tych miejsc, które są bezpośrednią przyczyną wystąpienia błędu,
wygenerowanie w nich wyjątków i wyrzucenie ich za pomocą instrukcji throw............. 52
Łańcuchy wyjątków ...................................................................................................... 54
Lokalizacja wyjątków.................................................................................................... 55
1. Stworzenie klasy dziedziczącej po ResourceBundle, która będzie przechowywała
opis wyjątku ...................................................................................................... 56
2. Zdefiniowanie klasy odpowiadającej danemu językowi ............................................ 57
3. Definicja klasy wyjątku, w której pokrywamy metodę getLocalizedMessage ............... 57
Wyjątki a pokrywanie metod ......................................................................................... 59
Deklaracja wyjątków w interfejsach i klasach abstrakcyjnych ............................................ 60
Stos wywołań wyjątku .................................................................................................. 61
Wyjątki z perspektywy kodu pośredniego ........................................................................ 64
Rozdział 4. Obsługa wyjątków w aplikacjach wielowątkowych............................................................69
Wstęp ........................................................................................................................ 69
Kiedy należy dzielić program na wątki? ..................................................................... 70
Wyjątki w systemach wielowątkowych ............................................................................ 71
Wyjątki w synchronizowanych blokach kodu .................................................................... 72
Praca wielowątkowa a ryzyko wystąpienia wyjątku ........................................................... 74
Wyjątki związane z komunikowaniem się wątków............................................................. 75
Zakleszczenie ............................................................................................................. 78
ThreadDeath............................................................................................................... 79
Rozdział 5. Zapis do dziennika i asercje.................................................................................................. 81
Wstęp ........................................................................................................................ 81
Wprowadzenie do Logging API....................................................................................... 81
Kiedy stosować Logging API?........................................................................................ 82
Struktura Logging API .................................................................................................. 82
Szczegóły dotyczące używania biblioteki......................................................................... 83
Konfigurowanie dziennika............................................................................................. 88
Przykład pierwszy: Proste użycie domyślnego obiektu Logger....................................... 88
Przykład drugi: Użycie i konfiguracja kilku obiektów typu Logger................................... 89
Przykład trzeci: Dziennik rozproszony ........................................................................ 90
Asercje ...................................................................................................................... 91
Używanie asercji .................................................................................................... 92
Jak i kiedy korzystać z asercji? ................................................................................ 92
4. Spis treści 7
Część II Planowanie obsługi wyjątków 95
Rozdział 6. Planowanie obsługi wyjątków ..............................................................................................97
Wstęp ........................................................................................................................ 97
Zasady dobrego projektowania obiektowego ................................................................... 98
Projektowanie z uwzględnieniem błędów ................................................................. 103
Etap 1. Identyfikacja przypadku użycia .................................................................... 104
Etap 2. Precyzyjny opis procesu i poszczególnych jego składników............................. 105
Etap 3. Identyfikacja potencjalnych błędów i ocena ich ryzyka ................................... 106
Etap 4. Wskazywanie miejsc wystąpienia potencjalnych błędów w ramach operacji...... 110
Etap 5. Przygotowanie strategii obsługi błędów........................................................ 111
Projektowanie z myślą o łatwiejszym zarządzaniu — korzyści i wady........................... 113
Identyfikacja błędów ............................................................................................. 114
Podsumowanie ......................................................................................................... 115
Rozdział 7. Wyjątki a podstawowe elementy języka Java....................................................................117
Wstęp ...................................................................................................................... 117
Typy podstawowe ...................................................................................................... 118
Wprowadzenie ..................................................................................................... 118
Stosowanie ......................................................................................................... 118
Potencjalne problemy ........................................................................................... 119
Ogólne zalecenia.................................................................................................. 121
Klasa Object i obiekty tego typu .................................................................................. 122
Wprowadzenie ..................................................................................................... 122
Potencjalne problemy ........................................................................................... 122
Tablice..................................................................................................................... 128
1. Indeksowanie .................................................................................................. 129
2. Wielkość tablicy ............................................................................................... 129
3. Typ elementów tablicy....................................................................................... 129
Interfejsy pakietu java.lang......................................................................................... 130
Klasy String i StringBuffer .......................................................................................... 131
Klasa String ........................................................................................................ 132
Klasa StringBuffer................................................................................................ 132
Klasy BigDecimal i BigInteger ..................................................................................... 132
Klasy opakowujące.................................................................................................... 133
Rozdział 8. Kolekcje i operacje wejścia-wyjścia.................................................................................. 135
Wstęp ...................................................................................................................... 135
Biblioteka obsługi kolekcji .......................................................................................... 135
Wprowadzenie ..................................................................................................... 135
Korzystanie z kolekcji ........................................................................................... 136
Problemy i wyjątki typowe dla kolekcji..................................................................... 141
System wejścia-wyjścia .............................................................................................. 144
Problemy typowe dla operacji wejścia-wyjścia .......................................................... 146
Błędy i wyjątki w klasach wejścia-wyjścia...................................................................... 148
Problemy ogólne .................................................................................................. 148
Problemy dotyczące strumieni określonego typu ...................................................... 149
Biblioteka New I/O (NIO) ............................................................................................ 156
Wyjątki w New I/O API................................................................................................ 158
Bufory................................................................................................................. 158
Zestawy znaków................................................................................................... 159
Kanały ................................................................................................................ 160
Przełączniki ......................................................................................................... 164
5. 8 Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Rozdział 9. Programowanie rozproszone w Javie .............................................................................. 167
Wstęp ...................................................................................................................... 167
Podstawy komunikacji między aplikacjami .................................................................... 168
Modele komunikacji w Javie .................................................................................. 170
Dodatkowe zagadnienia związane z pracą rozproszoną ............................................. 170
Model obsługi wyjątków ........................................................................................ 172
Typowe problemy ................................................................................................. 173
RMI — zdalne wywoływanie metod .............................................................................. 174
Model komunikacyjny RMI ..................................................................................... 174
Typowe zagadnienia związane z używaniem RMI ...................................................... 175
Model wyjątków RMI............................................................................................. 178
Java Naming and Directory Interface, JNDI ................................................................... 184
Typowe zagadnienia związane z JNDI ...................................................................... 185
Model wyjątków JNDI ............................................................................................ 186
Java Database Connectivity, JDBC .............................................................................. 189
Wyjątki w JDBC .................................................................................................... 189
Ogólne zagadnienia dotyczące obsługi baz danych ................................................... 191
Cykl życia aplikacji korzystającej z JDBC.................................................................. 193
Podsumowanie ......................................................................................................... 198
Rozdział 10. J2EE..................................................................................................................................... 199
Wstęp ...................................................................................................................... 199
Podstawowy model aplikacji J2EE ............................................................................... 200
Model aplikacji J2EE ............................................................................................ 202
Wyjątki w J2EE..................................................................................................... 203
Warstwa klienta ........................................................................................................ 204
Warstwa aplikacji sieciowej ........................................................................................ 206
Deklaratywna obsługa błędów................................................................................ 207
Komponenty aplikacji sieciowej.............................................................................. 208
Serwlety i filtry: obsługa wyjątków na poziomie programu.......................................... 209
Model wyjątków serwletów i filtrów ......................................................................... 210
Typowe zagadnienia i ryzyko związane z używaniem serwletów................................... 211
Model wyjątków JSP ............................................................................................. 215
Bezpośrednie przekierowanie błędów w JSP ............................................................ 215
Sposób obsługi wyjątków w JSP ............................................................................. 216
Błędy związane z translacją i uruchamianiem stron JSP ............................................ 217
Biblioteki własnych znaczników.............................................................................. 217
Warstwa komponentów EJB........................................................................................ 218
Standardowe metody EJB...................................................................................... 219
Ogólne kwestie związane z obsługą EJB.................................................................. 221
Zagadnienia związane z typem komponentu ............................................................ 223
Model wyjątków EJB ............................................................................................. 225
Zarządzanie cyklem życia komponentów. Metody wywoływane przez klienta ................ 227
Metody komponentu wywoływane przez kontener ..................................................... 230
Wyjątki z punktu widzenia kontenera ...................................................................... 231
Obsługa transakcji..................................................................................................... 232
J2EE i obsługa wyjątków — kwestie ogólne .................................................................. 236
Czynniki, które należy rozważyć podczas obsługi wyjątków w J2EE................................... 237
Obsługa dziennika................................................................................................ 237
Koszty związane ze zgłaszaniem wyjątków............................................................... 238
Obciążenie sieci................................................................................................... 239
Inne zalecenia dotyczące systemów J2EE ............................................................... 239
6. Spis treści 9
Część III Skuteczne posługiwanie się wyjątkami i ich obsługa 241
Rozdział 11. Architektura i projekt modelu obsługi wyjątków............................................................ 243
Wstęp ...................................................................................................................... 243
Dlaczego architekt powinien interesować się obsługą błędów? ....................................... 244
Koszt awarii......................................................................................................... 245
Cena sukcesu...................................................................................................... 246
Architektura, projekt i rozwój....................................................................................... 246
Role architekta i projektanta: cienka linia na piasku................................................. 247
Programista: na linii frontu .................................................................................... 247
Kluczowe decyzje architektoniczne dotyczące modelu wyjątków ...................................... 248
Priorytety i cechy architektury ................................................................................ 249
Cechy modelu wyjątków ............................................................................................. 250
Strategia obsługi i propagacji wyjątków................................................................... 250
Model klas reprezentujących wyjątki i błędy............................................................. 253
Usługi uniwersalne ............................................................................................... 256
Podsumowanie ......................................................................................................... 257
Kilka słów na temat kolejnych rozdziałów ................................................................ 258
Rozdział 12. Wzorce............................................................................................................................... 259
Wstęp ...................................................................................................................... 259
Wzorce architektoniczne (oparta na wzorcach architektura oprogramowania, POSA-ASOP)..... 260
1. Wzorzec warstw ............................................................................................... 261
2. Model-widok-kontroler (MVC) ............................................................................. 262
Wzorce projektowe „Bandy czworga” ........................................................................... 264
Wzorce konstrukcyjne ................................................................................................ 264
1. Builder (budowniczy)......................................................................................... 264
2. Singleton ........................................................................................................ 266
Wzorce strukturalne................................................................................................... 267
1. Adapter........................................................................................................... 267
2. Composite ...................................................................................................... 268
3. Facade (fasada) ............................................................................................... 270
4. Proxy (pośrednik) ............................................................................................. 271
Wzorce czynnościowe ................................................................................................ 272
1. Chain of Responsibility (łańcuch odpowiedzialności)............................................. 272
2. Command (polecenie)....................................................................................... 273
3. Observer (obserwator) ...................................................................................... 274
4. State (stan) ..................................................................................................... 275
5. Strategy (strategia)........................................................................................... 276
Wzorce projektowe J2EE ............................................................................................ 277
Warstwa integracyjna................................................................................................. 278
1. Data Access Object, DAO (obiekt dostępu do danych) .......................................... 278
Warstwa prezentacyjna .............................................................................................. 280
1. Front Controller (sterownik frontalny) .................................................................. 280
2. Intercepting Filter (wzorzec przechwytujący) ......................................................... 281
Warstwa biznesowa ................................................................................................... 282
1. Service Locator (lokalizator usług)...................................................................... 282
2. Session Facade (fasada sesji)........................................................................... 283
Podsumowanie ......................................................................................................... 283
7. 10 Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Rozdział 13. Testowanie......................................................................................................................... 285
Jaki jest cel testowania i dlaczego jest ono tak ważne? ................................................. 285
Nieprawdziwe opinie na temat testowania.................................................................... 286
Mit pierwszy: „Nie ma potrzeby, by programiści testowali swój kod”........................... 287
Mit drugi: „Programiści w pełni odpowiadają za poprawność kodu” ............................ 287
Mit trzeci: „Do zweryfikowania aplikacji wystarczy «jeden test»” ................................. 288
Mit czwarty: „Istnieje możliwość kompletnego przetestowania aplikacji”..................... 288
Warianty testowania, czyli na zewnątrz i wewnątrz skrzynki............................................. 289
Co znajduje się w skrzynce? (Typy testów) .............................................................. 289
Podział ról i odpowiedzialności w procesie testowania.............................................. 291
„Gdyby to było takie łatwe…”, czyli problemy z testowaniem w Javie............................... 293
Testowanie w praktyce............................................................................................... 294
W jaki sposób zinstytucjonalizować testowanie? ...................................................... 294
Organizacja struktury testów.................................................................................. 298
Taktyka i technologia, czyli jak zarządzać testami i jak je przeprowadzać ......................... 303
Gotowe narzędzia obsługi testów ........................................................................... 304
Zintegrowane środowiska programistyczne.............................................................. 305
Miara jakości aplikacji .......................................................................................... 306
Kiedy testy należy uznać za zakończone? ..................................................................... 306
Ogólna miara testowania ...................................................................................... 306
Miara testowania stosowana przez programistów .................................................... 307
Rozdział 14. Usuwanie błędów .............................................................................................................. 309
Wstęp ...................................................................................................................... 309
Zaczarowane słowo: błąd… ........................................................................................ 310
Zasady i praktyka debugowania .................................................................................. 311
Strategie usuwania błędów......................................................................................... 313
Widoczne wyniki oraz sposoby usuwania błędów ........................................................... 318
Techniki testowania — poziom niski....................................................................... 320
Techniki testowania — poziom średni .................................................................... 322
Techniki testowania — poziom wysoki.................................................................... 323
Dodatkowe kwestie związane z usuwaniem błędów ....................................................... 325
Debugowanie innych technologii ............................................................................ 325
Wyjątki zgłaszane na poziomie infrastruktury ........................................................... 326
Dodatki 327
Dodatek A Wpływ obsługi i deklarowania wyjątków na szybkość działania aplikacji...................... 329
Dodatek B Krótkie i łatwe wprowadzenie do JUnit ............................................................................. 335
Dodatek C MyBuggyServlet — kwestie poprawności komponentu .................................................. 347
Słownik u ywanych w ksią ce terminów technicznych .................................................................... 349
Bibliografia............................................................................................................................................. 353
Skorowidz.............................................................................................................................................. 357
8. 6
Planowanie obsługi wyjątków
Wstęp
W poprzedniej części skoncentrowałem się przede wszystkim na czysto programistycznych
aspektach posługiwania się wyjątkami. Są to umiejętności podstawowe, niezbędne ka demu,
kto chce w swych aplikacjach obsługiwać sygnalizowane w ten sposób problemy. Jednak
sama znajomość pewnych technik programistycznych nie jest jedynym czynnikiem mającym
wpływ na skuteczne wykorzystanie mo liwości, jakie daje nam mechanizm zgłaszania i obsługi
wyjątków. Oprócz wiedzy technicznej, musimy znać bardziej ogólne zasady i wiedzieć, jak
i kiedy je stosować.
Inaczej mówiąc, bycie doskonałym koderem nie gwarantuje wcale, e pisane przez nas aplikacje
będą świetne. Dlatego w niniejszym rozdziale, podobnie jak w całej drugiej części ksią ki,
przeniesiemy nasze zainteresowania na nieco wy szy poziom abstrakcji. Zajmiemy się prawi-
dłową strukturą obsługi wyjątków wewnątrz metod, pomiędzy metodami a tak e na poziomie
współpracujących ze sobą komponentów aplikacji. Moim zamiarem jest prezentacja sposobów
pozwalających dotychczas zdobyte umiejętności zamienić na dobrze zorganizowane i łatwe
w utrzymaniu konstrukcje kodu. W tej części ksią ki z programistów zmienimy się w pro-
jektantów aplikacji.
Ogromny błąd wielu twórców aplikacji polega na tym, e obsługę wyjątków traktują oni jak
zło konieczne, przypominając sobie o tym jedynie wtedy, gdy zmuszą ich do tego sygnali-
zowane przez kompilator błędy. Tworzenie oprogramowania bez wcześniejszego, starannego
rozwa enia potencjalnych błędów, które mogą podczas jego eksploatacji wystąpić, przypomi-
na konstruowanie samolotu (lub budynku mieszkalnego) bez sporządzenia odpowiednich
planów i stosowania powszechnie znanych reguł sztuki. Zakładamy naiwnie, e powinno
się udać, choć oczywiście rezultatu takiego zagwarantować nie sposób.
Gwoli sprawiedliwości nadmienić jednak nale y, e słabość procesów tworzenia software’u
polega między innymi na tym, i wiele tradycyjnych metodyk lekcewa y problem obsługi błę-
dów. Czy nale y się więc dziwić, e aplikacje projektowane przy ich u yciu wykazują w tej
dziedzinie braki?
9. 98 Część II n Planowanie obsługi wyjątków
Wiele metodologii koncentruje się przede wszystkim na próbie stworzenia wydajnego,
uniwersalnego i obiektowego modelu rozwiązania danego problemu. Nie zrozum mnie źle
— nie jest to z mej strony aden zarzut, tak właśnie powinno się podchodzić do projektowa-
nia. Jednak pominięcie czynności mających na celu identyfikację potencjalnych zagro eń
występujących podczas pracy systemu czyni ten proces niekompletnym. Ka dy dobrze skon-
struowany projekt powinien zawierać analizę ryzyka.
W niniejszym rozdziale mam nadzieję pokazać Ci, w jaki sposób składniki dobrze zorgani-
zowanego projektu aplikacji uzupełnić mo na o element odpowiadający za poprawną obsługę
wyjątków, zaplanowany po analizie potencjalnych problemów. Nie wią e się to z jakimś
ogromnym, dodatkowym nakładem pracy, a w zamian otrzymujemy znacznie bezpieczniejszy,
i dzięki temu łatwiejszy w utrzymaniu, kod.
Zasady dobrego projektowania obiektowego
Często słyszy się, e rozpoczynając dane przedsięwzięcie dobrze jest mieć wizję jego zakoń-
czenia. Zastosujmy tę regułę w dziedzinie projektowania aplikacji obiektowych: jakie są
główne cele i reguły ich tworzenia? Czym charakteryzuje się dobrze zaprojektowany i napisany,
obiektowy kod? Najbardziej podstawowym kryterium, które kod musi spełnić, jest zapewnie-
nie zało onej funkcjonalności przy dającej się zaakceptować wydajności. Powinien on te
być przejrzysty i elastyczny, dając dzięki temu mo liwości wykorzystania go w innych
projektach. O idealnej sytuacji mo na mówić, gdy pisząc aplikację, stworzymy zbiór uniwer-
salnych modułów, które tworzyć będą funkcjonalne i gotowe do ponownego u ycia kompo-
nenty o jasno zdefiniowanych funkcjach1.
Brzmi wspaniale. Zało enia te wydają się rozsądne i nawet mo liwe do realizacji. Szczególnie
na etapie ich formułowania. Łatwo się o nich mówi, znacznie trudniej wprowadzić je w ycie.
Nie zwa ajmy jednak na trudności, zasad tych powinniśmy się trzymać podczas tworzenia
ka dej klasy, komponentu, systemu czy biblioteki2. Istnieje kilka ogólnych reguł, które cha-
rakteryzują dobrze zaprojektowaną aplikację obiektową. Nasza dyskusja będzie łatwiejsza,
gdy podczas ich prezentacji zało ymy, e odnoszą się one do pojedynczej klasy. Pamiętaj
jednak, e stosujemy je tak e przy konstruowaniu bardziej zło onych komponentów. A zatem:
projektując klasę, nie wolno nam zapomnieć o następujących zasadach, których istotę stanowi:
Abstrakcja: klasa jest modelem określonego pojęcia lub danych. Zasadę tę przenosimy na ka dy
obiekt danej klasy, dotyczy ona jego stanu i funkcjonowania.
n Pole: ka de z pól reprezentuje pewien wewnętrzny stan obiektu, spełniając w ten
sposób zadania stawiane przed modelem odpowiadającym pewnemu pojęciu
i jego cechom.
1
Dodatkowo kod powinien być kompletnie udokumentowany oraz dostarczony na czas i w ramach zało onego
bud etu. Co więcej, jasne sprecyzowanie wymagań u ytkownika nie powinno zachwiać naszej
równowagi psychicznej.
2
Posługując się podczas dyskusji pojęciem komponent, mam na myśli zbiór klas zaprojektowany w taki
sposób, by mogły one współpracować ze sobą i tworzyć moduł. Dobrze zaprojektowany komponent,
system czy biblioteka posiadać musi te same cechy co dobrze skonstruowana klasa.
10. Rozdział 6. n Planowanie obsługi wyjątków 99
n Metoda: ka da metoda reprezentuje operację, którą mo na na danym obiekcie
przeprowadzić. Prowadzić ona mo e do zmiany stanu obiektu bądź te
wykonywać zadanie związane z jego cyklem ycia.
Enkapsulacja (hermetyzacja): pola i metody, które wspólnie tworzą klasę, podzielić mo emy na
dwie podstawowe kategorie.
n Implementacja: w jej skład wchodzą pola zawarte w klasie i metody zarządzające
tymi danymi, mające wpływ na stan obiektu. Implementacja odpowiada
za prywatną, niedostępną z zewnątrz część obiektu.
n Interfejs: metody stanowiące usługi udostępnione na zewnątrz, do których dostęp
mają inne obiekty. Interfejs reprezentuje sposób, w jaki obiekt widziany jest przez
pozostałą część aplikacji. Niektóre modele dokonują dalej idącego podziału,
wyró niając interfejs wewnętrzny, odpowiedzialny za sterowanie oraz
zewnętrzny, związany z prezentacją.
Spójność: klasa ma jasno sprecyzowany cel i charakter. Odpowiada pojedynczemu pojęciu,
którego dotyczą wszystkie zdefiniowane w niej operacje.
Niezale ność: klasa powinna w jak najmniejszym stopniu zale eć od innych klas. Jeśli takich
związków łączących klasy jest wiele, mo e pojawić się wątpliwość co do jakości projektu3.
Konsekwentne stosowanie powy szych reguł doprowadzić powinno do powstania dobrze zdefi-
niowanych klas, z których powstaną następnie komponenty, podsystemy, a na końcu kompletne
aplikacje.
Patrząc z bardziej odległej perspektywy, aplikacja obiektowa postrzegana mo e być jako
zbiór współpracujących za sobą obiektów, którym przyświeca pewien wspólny cel. A współ-
praca ta to komunikacja realizowana za pomocą wywoływania metod, co czynione jest we-
dług odpowiednich zasad i w określonej kolejności. Połączenie tej koncepcji z praktyką do-
starczania przez klasy metod o jasno sprecyzowanych funkcjach w konsekwencji daje nam
posiadające określoną hierarchię łańcuchy wywołań. Metody ni szego poziomu wywoływane
są przez metody wy szego poziomu, które to z kolei są u ywane przez jeszcze inną warstwę
aplikacji itd. Struktura ta pozwala łączyć pojedyncze, w miarę proste operacje w czynności
bardziej zło one, co ostatecznie doprowadzi nas do kompletnych procesów biznesowych
i przypadków u ycia, stanowiących podstawowe zadania aplikacji4.
adna z przedstawionych dotychczas zasad nie dotyczy jednak bezpośrednio zagadnienia
obsługi wyjątków. Jaki jest związek tego tematu z dziedziną projektowania aplikacji?
3
Próba zdefiniowania po ądanych cech, które spełniać powinien dobrze zaprojektowany system
obiektowy spowodowała powstanie zbioru zasad. W rezultacie temat ten jest wyczerpująco opisany,
a du a część tej dokumentacji znajduje się w sieci. Polecam następujące adresy: http://c2.com./cgi/
wiki?PrinciplesOfObjectOrientedDesign (Wiki Web) oraz http://ootips.org/ood-principles.html
(OOTips).
4
W programowaniu strukturalnym proces dzielenia zło onej funkcjonalności na mniejsze operacje
nazywany jest dekompozycją funkcjonalną. Podobnie jest w programowaniu obiektowym, ale tutaj
odpowiedzialność za poszczególne operacje przypisywana jest klasom, co prowadzi do powstania
modułów bardziej elastycznych i gotowych do ponownego u ycia.
11. 100 Część II n Planowanie obsługi wyjątków
W realnych warunkach są z tym niemałe problemy. Wiele zespołów programistycznych (a tak-
e, niestety, metodyk przez nie stosowanych) do obsługi błędów podchodzi w sposób nie dość
powa ny. O konieczności obsługi błędów myślimy dopiero w momencie, gdy zaczynają nam
one rzeczywiście przeszkadzać, a dzieje się tak podczas końcowych etapów realizacji przedsię-
wzięcia. Struktura systemu jest ju wtedy ustabilizowana i niełatwo wprowadzić do niej zmiany
lub rozszerzenia. Większość członków zespołu odczuwa w tym okresie niemałe zmęczenie,
które potęgowane jest przez wyjątkowo szybko mno ące się problemy związane z pojawiają-
cymi się w wielu miejscach aplikacji błędami. Jak w takiej sytuacji nale y się zachować? Mogę
zaproponować trzy mo liwe rozwiązania polegające na próbie dołączenia obsługi błędów
do aplikacji w końcowej fazie jej powstawania:
1. Przechwytywanie i lokalna obsługa wyjątków w tych metodach, w których się one
pojawią. Rozwiązanie to nie wpływa na istniejącą ju , dotychczasową strukturę
aplikacji. Często jednak pociąga za sobą pewien nieład, brak konsekwencji
i kojarzy się z cichą obsługą wyjątków, którą porównałem do zamiatania śmieci
pod dywan. Inne części aplikacji nie zostaną przez to poinformowane o powa nych
zagro eniach, których zasięg nie musi mieć zawsze jedynie lokalnego charakteru.
2. Zmiana projektu dokonana w ograniczonym zakresie, uwzględniająca modyfikacje
konieczne do tego, by zarządzanie problemami przenieść na poziom komponentu.
To rodzaj kompromisu, który zwykle nie burzy nam dotychczasowej, ogólnej
struktury aplikacji. Podejście to jednak ma dwie wady. Po pierwsze, istnieje
niebezpieczeństwo, e zbyt wiele modyfikacji na poziomie komponentu mo e odbić
się niekorzystnie na jego jakości. Po drugie, ciągle istnieje ryzyko, e wyjątki
obsługiwane na poziomie pojedynczego komponentu nie poinformują o wa nym
zdarzeniu pozostałych elementów całej aplikacji.
3. Reorganizacja całej aplikacji. Decyzja taka pociąga za sobą tak wiele koniecznych
zmian, e tak naprawdę cofamy się do jednego z pierwszych etapów powstawania
aplikacji. Co więcej, istnieje ryzyko, e nigdy fazy tej nie ukończymy, jeśli zmiana
projektu uwzględniać ma pojawiające się na bie ąco błędy.
Nietrudno dojść do wniosku, e aden z przedstawionych powy ej wariantów nie jest zachę-
cający. Fakt ten stanowi najlepszy dowód na to, e zagadnień związanych z obsługą błędów
nie powinno się ignorować i czekać z tym do ostatniej fazy cyklu projektowego. W takim ję-
zyku jak Java, błędy wią ą się z obsługującą je na poziomie aplikacji infrastrukturą, która swą
konstrukcją nie odbiega od innych klas reprezentujących np. procesy biznesowe. Model za-
rządzający przesyłaniem komunikatów o błędach mo e więc być dobrze zaprojektowany,
oferując tym samym skuteczny sposób ich raportowania i obsługi. Równie dobrze mo e te
być bezładną, losową i zupełnie nieprzejrzystą zbieraniną bloków VT[ECVEJ, a to na pewno
nie pomo e nam w procesie testowania, debugowania i późniejszego zarządzania kodem.
W poprawnym planowaniu obsługi wyjątków pomo e nam wiedza wynikająca z dotychcza-
sowej praktyki, zebrana jak zwykle w zbiór pewnych zasad. Tych reguł jest w sumie dzie-
więć. Mam nadzieję, e pozwolą co najmniej na uniknięcie podstawowych błędów popełnia-
nych na etapie projektowania aplikacji:
1. Ka da sekwencja stanowiąca pewien sposób u ycia aplikacji (przypadek u ycia,
ang. use case) powinna być przeanalizowana i opisana tak e z punktu widzenia
potencjalnych błędów, jakie mogą się tam pojawić. Scenariusze błędów mogą
tworzyć hierarchię, w której uwzględnimy zarówno prawdopodobieństwo
danego zdarzenia, jak te jego konsekwencje.
12. Rozdział 6. n Planowanie obsługi wyjątków 101
2. Skuteczne projektowanie metod powinno zakładać, e oprócz podstawowych
operacji przez nie realizowanych pojawi się dobrze zdefiniowany zbiór punktów
wskazujących na potencjalne problemy. Gdy z metod tych budować będziemy
proces lub przypadek u ycia, listę potencjalnych błędów tej zło onej operacji
określimy na podstawie wchodzących w jej skład metod.
3. Istnieją dwa podstawowe podejścia określające sposób, w jaki zajmować się będziemy
potencjalnymi błędami. Pierwszy z nich zakłada napisanie takiego kodu, który
do sytuacji nie dopuści. Drugi to odpowiednio zaplanowana obsługa błędu.
Mo e to być zdefiniowany lokalnie zbiór czynności neutralizujących problem
lub przesłanie informacji o zdarzeniu na zewnątrz metody, do zawierającego
ją komponentu, podsystemu bądź całej aplikacji.
4. Nie nale y próbować za wszelką cenę obsługiwać wszystkich mo liwych błędów,
zwiększy to bowiem znacznie czas potrzebny na napisanie kodu i zmniejszy
mo liwość jego późniejszym zarządzaniem. Du o lepiej jest skoncentrować się
na scenariuszach prawdopodobnych i trudnych w wielu przypadkach do uniknięcia,
a tak e błędach mogących mieć powa ny wpływ na działanie całej aplikacji5.
5. Metoda powinna przekazywać na zewnątrz jedynie te wyjątki, które zasługują
na szczególną uwagę innych elementów aplikacji bądź te takie, których obsługa
wewnątrz metody ze względu na brak znajomości kontekstu zdarzenia, nie jest
wskazana.
6. Metoda powinna zgłaszać wyjątki w formie mo liwie zrozumiałej dla ich
konsumenta6, biorąc pod uwagę rolę i zadania odbiorcy.
7. Metoda mo e zgłaszać wiele wyjątków tylko w sytuacjach, gdy:
a. wzajemnie się one wykluczają (posiadają ró ne przyczyny),
b. mają inne znaczenie dla odbiorców,
c. nie dadzą się połączyć w pojedynczy wyjątek, poniewa odpowiadają zupełnie
ró nym scenariuszom błędów.
8. Problemy powinny być obsługiwane lub raportowane jak najszybciej od momentu
pojawienia się ich w kodzie. Najlepiej, gdy będzie to w tej samej metodzie, w której
zostały zgłoszone. Zwlekanie z ich obsługą mo e być ryzykowne. W przypadkach,
gdy takie odroczenie wydaje się niezbędne z powodu określonych wymogów
stawianych przez klasę bądź bibliotekę, nale y stworzyć metodę, która pozwoli
nam uzyskać dostęp do oczekującego wyjątku.
9. Wyjątki dotyczące ka dej jednostki stanowiącej część projektu (klasy, komponentu,
modułu czy biblioteki) powinny w sposób jasny i formalny określać warunki,
na jakich odbywa się ich współpraca ze światem zewnętrznym.
5
Unikajmy natomiast błędów, których naprawdę da się uniknąć. Pozostałe problemy postarajmy się
zapisać do dziennika.
6
Pod pojęciem „konsument” kryje się ka dy odbiorca komunikatu, jakim jest zdarzenie. Mo e być to
zarówno kolejna warstwa aplikacji, jak te u ytkownik czytający komunikat wyświetlany na ekranie.
Dlatego te nadanie mu zrozumiałej formy jest tak samo wa ne w przypadku człowieka, jak innego
podsystemu aplikacji.
13. 102 Część II n Planowanie obsługi wyjątków
Oczywiście klasy nie są jedyną strukturą w ramach pisanych przez nas aplikacji, na poziomie
której nale y rozwa ać i planować obsługę wyjątków. Java pozwala nam tak e korzystać z in-
terfejsów i opisywać za ich pomocą pewne ogólne cechy i zachowania7. Zalecenia dotyczące
definiowania wyjątków w ramach interfejsów są nieskomplikowane, chocia wymagają jeszcze
większych zdolności przewidywania ni te, jakimi musimy wykazać się tworząc zwykłe meto-
dy. Jeśli interfejs ma uczestniczyć w obsłudze wyjątków, nale y dość starannie rozwa yć jego
u ycie w ramach budowanego zestawu klas. Bazując na wymaganiach tworzonej konstrukcji
i prawdopodobnych sposobach implementacji interfejsu, jego twórca mo e przewidzieć i za-
deklarować pewne wyjątki zgłaszane przez wchodzące w skład interfejsu metody. Popraw-
ne dodawanie deklaracji wyjątków w ramach interfejsów powinno być zgodne z dwiema
następującymi regułami:
1. Dobrze zaplanowany interfejs zwykle zgłasza tylko jeden rodzaj wyjątku, chyba
e istnieje jakaś wyjątkowa przyczyna uzasadniająca większą ich liczbę. Typowy
interfejs reprezentuje określony model bądź ściśle zdefiniowany zestaw zachowań.
Dlatego dobrze jest przypisać mu jeden rodzaj wyjątku.
2. Wyjątki zgłaszane przez metody interfejsu powinny bezpośrednio dotyczyć zadań,
do jakich interfejs został przewidziany — ich znaczenie musi odpowiadać kontekstowi
sytuacji, w której mogą się potencjalnie pojawić. Dlatego te definiowanie
interfejsów idzie często w parze z tworzeniem własnych wyjątków.
Naturalną cechą interfejsów jest to, e nie definiują one dokładnego zachowania. Ich projektant
nie posiada kontroli nad tym, jak dokładnie zostaną one w przyszłości zaimplementowane
oraz w jaki sposób u yte zostaną zadeklarowane w metodach interfejsu wyjątki. Osoby wyko-
rzystujące w swych aplikacjach biblioteki, w których implementowane są te interfejsy, są w lep-
szej sytuacji, mają bowiem wpływ i na generowanie wyjątków, i na ich obsługę. Trudno na-
tomiast zazdrościć tym programistom, którzy nie mają wpływu ani na sam interfejs, ani na
jego implementację8.
Twórcy interfejsu naprawdę trudno dobrać odpowiedni poziom ogólności wyjątków genero-
wanych przez metody interfejsu, dlatego te błędy mogą być reprezentowane w sposób bardziej
elastyczny. Trafiając na problem tego typu, mo emy skorzystać z jednego z takich rozwiązań:
1. Tworzymy interfejs ze stałą listą specyficznych dla niego wyjątków i wymuszamy
niejako na osobach odpowiedzialnych za implementację wyrzucanie tylko tych
wyjątków (bądź ich podzbioru), które zostały przez nas przewidziane. Jest to zwykle
najlepsza opcja, gdy zakładamy narzucenie pewnego standardu posługiwania się
interfejsem. Dotyczy to zwykle wyjątków związanych z błędami o średnim oraz
wysokim priorytecie.
2. Definiujemy interfejs, który nie deklaruje adnych wyjątków. Ich obsługa musi
więc zostać zawarta wewnątrz implementacji metod. Jest to opcja polecana szczególnie
w sytuacjach, gdy zadania interfejsu sprecyzowane są w sposób bardzo ogólny i nie
7
Interfejs jest czasami porównywany w innych językach programowania do koncepcji „kontraktu”.
Interfejsy zwiększają mo liwości Javy, pozwalają na reprezentowanie pewnych współdzielonych pojęć
i zachowań bez uciekania się do mechanizmu dziedziczenia.
8
Dobrym przykładem problemów tego typu jest biblioteka dostępu do baz danych, czyli JDBC. Twórcy
interfejsu nie mieli adnej kontroli ani nad ich implementacją (tworzone niezale nie sterowniki JDBC),
ani nad kodem aplikacji (pisanym przez programistów u ywających JDBC).
14. Rozdział 6. n Planowanie obsługi wyjątków 103
sposób na tym etapie przewidzieć dalszych szczegółów. Dobrym przykładem jest
interfejs 4WPPCDNG, który mówi wyłącznie o tym, e jakieś zadanie będzie
uruchomione w odrębnym wątku.
Miejmy tak e na uwadze, e implementując interfejs, zawsze mo emy wyrzucić wyjątek wy-
wodzący się z klasy 4WPVKOG'ZEGRVKQP lub 'TTQT (mo e się to zdarzyć w sposób zamierzony
bądź przypadkowy). Wymienione wyjątki niekontrolowane stanowią pewien problem przy
posługiwaniu się interfejsami. Nie wiemy bowiem, które z nich są celowo generowane przez
implementację interfejsu, i kiedy mo emy się ich spodziewać. Z tego te powodu dobrym po-
mysłem jest obsługa równie takich wyjątków, na równi z wyjątkami jawnie zadeklarowanymi.
Wskazane jest to szczególnie wtedy, gdy chcemy zagwarantować maksimum bezpieczeń-
stwa podczas u ywania implementacji, których zachowania nie da się w pełni przewidzieć.
Projektowanie z uwzględnieniem błędów
Przestrzeganie zasad dotyczących skutecznej obsługi wyjątków ju na etapie projektowania
aplikacji pomo e stworzyć program du o bardziej niezawodny. Oczywiście mo liwe jest
bezpośrednie włączenie tych zasad w normalny cykl rozwoju aplikacji. Jeśli na dodatek reguły
dotyczące projektowania obiektowego połączymy z zaprezentowanymi wcześniej dobrymi
praktykami obsługi wyjątków w pisanym przez nas kodzie, otrzymamy w rezultacie technikę,
którą nazwać mo emy „projektowaniem z uwzględnieniem błędów”9. Praktyka ta nie jest
niczym rewolucyjnym — u jej podstaw le y solidne projektowanie obiektowe, przewidujące
jednak i uwzględniające ju na tym etapie potencjalne problemy, które mogą wystąpić pod-
czas działania aplikacji. Dołączenie wyjątków ju podczas projektowania kodu mo e napraw-
dę w znaczący sposób przyczynić się do lepszego zarządzania i łatwiejszego utrzymania
aplikacji w przyszłości.
Powy sze reguły mo emy stosować niezale nie od szczegółów preferowanej przez nas meto-
dyki rozwoju oprogramowania. Punktem wyjścia jest analiza modelowanych przez nas proce-
sów biznesowych. Model ten definiujemy obecnie najczęściej za pomocą przypadków u ycia,
ale równie dobrze mo emy skorzystać z metod strukturalnych i dekompozycji funkcjonal-
nej. Schemat tego procesu, wraz z uwzględnieniem sytuacji wyjątkowych, przedstawiony
jest na rysunku 6.110.
Oczywiście najlepszym sposobem, by poznać daną technikę i docenić jej walory jest de-
monstracja, w jaki sposób jej u ywać. Dlatego ka dą fazę schematu zamierzam zilustrować
przykładem. Scenariusz całego rozwiązania zakłada sytuację, w której klient chce za pomo-
cą aplikacji sieciowej zło yć zamówienie — zadanie typowe dla wielu współczesnych apli-
kacji. Problem będzie bardziej interesujący, jeśli zało ymy, e zamówienie będzie się mo-
gło składać z wielu pozycji, a ka da z nich określa dowolną ilość danego towaru. Omówię
dokładnie ka dy z kroków, opisując czynności z nim związane.
9
Koncepcja „projektowania z uwzględnieniem błędów” w sposób naturalny zawiera w sobie wszystkie
zasady projektowania obiektowego. Nale y myśleć o niej jako o połączeniu dotychczas stosowanych
praktyk i strategii zakładających uwzględnienie kwestii dotyczących przewidywania i obsługi
potencjalnych błędów aplikacji.
10
Doświadczeni twórcy aplikacji często w instynktowny sposób wykonują taką właśnie sekwencję czynności,
uwzględniając potencjalne błędy i planując strategię ich obsługi. Jednak do rzadkości nale y oficjalne
i konsekwentne stosowanie podobnych praktyk w zespołach programistycznych.
15. 104 Część II n Planowanie obsługi wyjątków
Rysunek 6.1.
Proces tworzenia
aplikacji
uwzględniający
obsługę wyjątków
Etap 1. Identyfikacja przypadku u ycia
Na początku zidentyfikujemy przypadek u ycia, który opisuje cały proces. Będą nim operacje,
które rozpoczną działanie w chwili, gdy u ytkownik zdecyduje się przesłać zamówienie,
korzystając z odpowiedniego polecenia przeglądarki internetowej. Oczywiście, zakładamy
w tym momencie, e u ytkownik doprowadzając do takiego stanu, musiał wcześniej wykonać
pewną liczbę czynności (przeglądanie i wybór zamawianych artykułów, określenie sposobu
płatności itp.). W modelu UML operacje te traktowane są jako warunki wstępne przypadku
u ycia (często stanowiące inny przypadek u ycia). Diagram przypadku u ycia reprezentujący
typowe wypełnienie zamówienia widzimy na rysunku 6.2.
Rysunek 6.2.
Diagram
przypadków
użycia związanych
z systemem
realizacji
zamówień
16. Rozdział 6. n Planowanie obsługi wyjątków 105
Etap 2. Precyzyjny opis procesu i poszczególnych jego składników
Podczas tego etapu definiujemy poszczególne akcje związane z naszym przypadkiem u ycia.
Krok ten polega przede wszystkim na zrozumieniu, jakie dokładnie operacje nale y wykonać
i jakiej technologii do tego u yć. Oczywiście, im więcej znamy szczegółów, tym lepiej — po-
siadając informacje na temat ka dej wykonywanej czynności, jesteśmy w stanie przewidzieć
ewentualne błędy. Proces biznesowy zwykle powinien być opisany z uwzględnieniem trzech
aspektów:
n zadań wykonywanych w ramach aplikacji,
n zadań wykonywanych pomiędzy aplikacjami,
n stosowanych technologii i bibliotek.
Wynik tej pracy warto zapisać za pomocą notacji UML: diagramy sekwencji i diagramy ak-
tywności wydają się do tego najodpowiedniejsze.
Na początku wystarczy przypadek u ycia o nazwie „zło enie zamówienia” podzielić na skła-
dające się na niego operacje, tak jak to widać poni ej:
Proces: Zło enie zamówienia11.
Weryfikacja zamówienia:
1. Sprawdzenie, czy kompletne są wszystkie informacje stanowiące zamówienie.
2. Sprawdzenie danych dotyczących dostawy.
3. Sprawdzenie danych dotyczących płatności.
Realizacja zamówienia:
1. Tworzenie zamówienia i rezerwacja towaru.
Obliczenie ceny końcowej.
Sfinalizowanie zamówienia.
Patrząc na nasz model biznesowy z innej perspektywy, mo emy wskazać te miejsca, które
odpowiadają za współpracę z systemami zewnętrznymi:
n baza danych towarów (krok 4,, rezerwacja towaru);
n baza danych zamówień (krok 4., akceptacja zamówienia);
n usługa obsługująca płatność (kroki 3. i 6., operacje finansowe);
n usługa związana z dostarczeniem towaru (krok 6., finalizowanie zamówienia).
11
W przykładzie zakładamy, e pewna wstępna weryfikacja zamówienia ma miejsce jeszcze przed jego
zło eniem. Za tą „wczesną walidację” odpowiadać mo e któraś z wcześniejszych faz procesu, mo e się
to odbywać jeszcze po stronie przeglądarki. My w ka dym razie planujemy wykonanie jedynie
„później walidacji”.
17. 106 Część II n Planowanie obsługi wyjątków
Wiedza na temat tych systemów pozwala zidentyfikować technologie i protokoły komunika-
cyjne, które najprawdopodobniej będą u ywane w aplikacji. To z kolei znowu przybli a nas do
wskazania mo liwych problemów w ramach realizacji przypadku u ycia. W naszym przy-
kładzie do obsługi baz danych wykorzystamy najprawdopodobniej bibliotekę JDBC. Wybór
API, za pomocą którego będziemy się komunikowali z pozostałymi systemami zale y od
sposobu, w jaki oferują one swoje usługi. W przypadku przesyłania komunikatów będzie to
najprawdopodobniej JMS, usługi sieciowe to JAXM lub JAX-RPC.
Rysunek 6.3 prezentuje diagram aktywności zawierający sześć zdefiniowanych przed chwilą
zadań. Mo emy traktować go jako model procesu widziany na średnim poziomie szczegółowości.
Rysunek 6.3.
Diagram
aktywności dla
przypadku użycia
„złożenie
zamówienia”
Zauwa , e dwie pierwsze fazy procesu odpowiadają czynnościom, które ka dy zespół pro-
jektowy musi przeprowadzić. I to niezale nie od tego, czy traktowane są one jako ściśle prze-
strzegane fazy zdefiniowane w którejś z metodyk, czy te jako intuicyjny i naturalny etap nie-
zbędny podczas tworzenia działającego systemu. Kolejna, trzecia faza korzysta z wyników
fazy pierwszej i drugiej. Pozwala nam ona zdobytą wiedzę wykorzystać w celu lepszego zi-
dentyfikowania potencjalnych błędów, które mogą pojawić się w czasie eksploatacji aplikacji.
Etap 3. Identyfikacja potencjalnych błędów i ocena ich ryzyka
Gdy proces biznesowy zaczyna przybierać realny i stabilny kształt, mo emy rozpocząć wy-
szukiwanie podstawowych błędów, które mogą zagrozić całej operacji. Jak ju wspominałem,
problemy dotyczące przypadku u ycia w naturalny sposób związane będą z samym procesem,
stosowanymi technologiami i współpracującymi systemami. Zrozumienie poszczególnych
18. Rozdział 6. n Planowanie obsługi wyjątków 107
zadań składających się na proces znacznie pomaga nam uświadomić sobie, jakie ryzyko
niesie ka de z nich. A znając to ryzyko, mo emy przypisać mu priorytet i zastanowić się
nad strategią obrony.
Znajomość określonych technologii lub API u ywanych podczas realizacji pozwala jeszcze
dokładniej sprecyzować prawdopodobne błędy. Java jest pod tym względem doskonałym
językiem, poniewa miejsca zgłoszenia du ej części błędów definiowane są jawnie w nagłów-
kach wywoływanych metod. Znajomość u ywanego API wią e się z precyzyjną identyfikacją
potencjalnych problemów. Co więcej, umiemy przyporządkować je określonym metodom.
Wróćmy teraz do sześciu zadań opisanych ju w punkcie 2., starając się tym razem przewidzieć
i wyszukać potencjalne źródła błędów:
1. Sprawdzenie, czy kompletne są wszystkie informacje stanowiące zamówienie
Operacje: Wewnętrzna weryfikacja w ramach obiektów aplikacji
Czynniki ryzyka: Uszkodzenie danych systemu
Ocena ryzyka: Niskie
Operacja weryfikuje kompletność danych stanowiących zamówienie — sprawdzane są da-
ne klienta, lista zamówionych towarów, sposób dostawy i szczegóły dotyczące płatności.
Do wykonania tych czynności nie jest konieczne adne zło one API i odwoływanie do ze-
wnętrznych systemów, dlatego jest to operacja o niewielkim stopniu ryzyka. Podstawowe
niebezpieczeństwo wią e się ze zniszczeniem danych. Ten typ ryzyka wskazuje na potrzebę
upewnienia się, e reguły biznesowe są poprawnie stosowane, co wymaga wykonania okre-
ślonych testów w czasie cyklu projektowego.
2. Sprawdzenie danych dotyczących dostawy
Operacje: Wewnętrzna reguła biznesowa
Czynniki ryzyka: Uszkodzenie danych, nieprawidłowy przepływ sterowania
Ocena ryzyka: Niskie
Kolejna operacja wykonywana wewnętrznie. Chocia reguła sprawdzająca poprawność
mo e być bardziej zło ona od poprzedniej (sprawdzenie sposobu dostawy i weryfikacja da-
nych adresowych), czynność ta nie wią e się z powa nym ryzykiem utraty integralności
danych. Oczywiście pewność taką uzyskamy dopiero po wykonaniu odpowiedniej liczby
szczegółowych testów.
3. Sprawdzenie danych dotyczących płatności
Operacje: Wewnętrzna reguła biznesowa, zewnętrzna weryfikacja
Czynniki ryzyka: Komunikacja w środowisku rozproszonym, uszkodzenie danych, nieprawi-
dłowy przepływ sterowania
Ocena ryzyka: Średnie
19. 108 Część II n Planowanie obsługi wyjątków
Operacja obarczona jest większym ryzykiem ni dwie poprzednie. Weryfikacja informacji
dotyczących płatności realizowana jest na zewnątrz systemu, dlatego istnieje prawdopodo-
bieństwo awarii związanej z komunikacją pomiędzy systemami. Co więcej, błąd pojawiający
się na tym etapie mo e później odbić się niekorzystnie na całym procesie zamawiania. Jednak
ewentualny problem nie stanowi zagro enia dla danych systemu i dotyczy wyłącznie poje-
dynczego zamówienia. Dlatego te ryzyko operacji oceniamy na średnie.
4. Tworzenie zamówienia, rezerwacja towaru
Operacje: Proces biznesowy, współpraca z bazą danych
Czynniki ryzyka: Komunikacja w środowisku rozproszonym, obsługa transakcji, integral-
ność danych zamówienia i stanu towarów
Ocena ryzyka: Wysokie
To jedna z najbardziej newralgicznych operacji omawianego przypadku u ycia. Korzysta z bazy
danych i otwiera transakcję, na którą składać się mo e wiele wysyłanych do niej poleceń.
Co więcej, istnieje mo liwość, e w tym samym czasie wielu u ytkowników będzie chciało
odwoływać się do tych samych danych, co mo e być przyczyną konfliktów. Problemy, któ-
re się pojawią na tym etapie mogą mieć powa ne konsekwencje dla aplikacji klienta oraz
systemu jako całości.
5. Obliczenie ceny końcowej
Operacje: Wewnętrzna kalkulacja
Czynniki ryzyka: Powstanie nieprawidłowych danych
Ocena ryzyka: Niskie
Na podstawie informacji zdobytych podczas realizacji poprzednich etapów generowana jest
ostateczna cena zamówienia. Jest to czynność wykonywana wewnętrznie i obarczona niskim
ryzykiem. Podobnie jak w poprzednich przypadkach, wa ne jest przygotowanie właściwej
strategii testowania — tym bardziej, e proces dotyczy operacji na kwotach.
6. Finalizacja zamówienia
Operacje: Proces biznesowy, uzgodnienia na styku dwóch systemów
Czynniki ryzyka: Komunikacja w środowisku rozproszonym, obsługa transakcji, zgodność
pomiędzy towarem zamówionym i wysłanym
Ocena ryzyka: Wysokie
Ostatnia operacja przypadku u ycia obarczona jest du ym ryzykiem. Wymagana jest do-
kładna koordynacja pomiędzy ró nymi systemami, która gwarantuje nam, e przyjęte zamó-
wienie będzie zrealizowane. Prawdopodobnie trzeba będzie wykonać rozproszoną transakcję,
zapewniającą spójność między dwoma systemami. Zapewnienie integralności podczas re-
alizacji tego etapu i minimalizacja ryzyka wydaje się być zadaniem niezwykle istotnym.
20. Rozdział 6. n Planowanie obsługi wyjątków 109
Jak widać, dokładne zdefiniowanie kolejnych etapów procesu pomogło nam w precyzyjnym
wskazaniu natury i zakresu potencjalnych problemów, jakie mogą się podczas realizacji
pojawić. Prawdopodobnym błędom warto nadać priorytet, w ten sposób zdamy sobie sprawę,
które z nich są najgroźniejsze. W naszym przykładzie operacjami o największym stopniu
ryzyka są te zadania, w których odwołujemy się do zewnętrznych systemów i baz danych.
W przykładzie skorzystaliśmy z dwóch technik słu ących do identyfikacji potencjalnych błę-
dów. Mo emy dokładnie wskazać obszary ryzyka podczas dzielenia całego przypadku u y-
cia na składające się na niego, poszczególne operacje, a znajomość technologii, za pomocą któ-
rych aplikacja będzie realizowana, pozwoli nam zakres ten dodatkowo ograniczyć. Stosując
obie metody, uzyskamy wyraźny obraz problemów, które nale y wziąć pod uwagę, a tak e
stopień, w jakim nam zagra ają12. Tabela 6.1 zawiera informacje będące podsumowaniem
wymienionych metod.
Tabela 6.1. Działania przydatne podczas lokalizacji potencjalnych błędów
Technika/Obszar zastosowań Wynik/Korzyść
Wyodrębnienie szczegółowych operacji Zlokalizowanie potencjalnego problemu
w ramach przypadku u ycia
Wskazanie u ywanych technologii bądź API Dostarczenie większej liczby szczegółów na temat
ewentualnego błędu
Zdefiniowanie roli systemów zewnętrznych Podkreślenie kluczowych punktów, w których zachodzi
współpraca między systemami
W języku Java miejsca wystąpienia potencjalnych błędów definiowane są jawnie przez wy-
jątki, które dane API lub biblioteka mo e zgłosić. Znając API, z którego usług zamierzamy
korzystać, posiadamy niemałą wiedzę na temat tego, co i dlaczego mo e się wydarzyć. Co
więcej, pewne operacje są z natury obarczone wysokim ryzykiem. Dowolna forma komuni-
kacji pomiędzy dwoma systemami wią e się z du ym prawdopodobieństwem wystąpienia
większej bądź mniejszej awarii. Podobnie jest w przypadku współdzielenia danych czy ob-
sługi transakcji.
Scenariusze błędów i ryzyko ich wystąpienia opiszemy tym dokładniej, im lepiej zdefiniu-
jemy operacje, które zachodzą w trakcie wykonywania procesu. Ogólne spojrzenie na pro-
ces biznesowy i potencjalne błędy z nim związane stanowią jedynie pewien zarys sytuacji,
które mogą mieć miejsce. Wchodząc coraz głębiej w jego szczegóły będziemy w stanie
dość dokładnie opisać te miejsca, które trzeba uwzględnić przy planowaniu obsługi błędów.
12
Nie napisałem zbyt wiele na temat identyfikacji źródeł błędów oprócz tych, które wynikają
ze znajomości określonego API. Istnieją sposoby wykrywania potencjalnych błędów w ramach
określonego zadania bądź metody opierającej się na tworzeniu scenariuszy „co-jeśli”. Bierzemy
wtedy pod uwagę parametry bądź warunki wstępne zadania.
21. 110 Część II n Planowanie obsługi wyjątków
Etap 4. Wskazywanie miejsc wystąpienia potencjalnych błędów
w ramach operacji
Etap ten polega na dokładnym identyfikowaniu problemów i wskazywaniu miejsca, w którym
mogą się one pojawić. Miejscem tym jest określona metoda. Czynność składa się z dwóch
kroków: najpierw staramy się dla ogólnie znanego błędu zdefiniować mo liwie szczegółowe
warunki jego wystąpienia, następnie całe zdarzenie sytuujemy wewnątrz określonej metody.
Istnieją dwa sposoby identyfikacji miejsca, w którym mo e pojawić się błąd. Albo zgodnie
z zasadami projektowania obiektowego dzielimy cały proces na metody i wskazujemy te, któ-
rych wywołanie mo e się nie powieść. Alternatywę stanowi podejście, w którym metody
definiujemy opierając się ju na scenariuszu błędów. W ten sposób poszczególne operacje
przypisujemy określonym metodom, uwzględniając tak e granice wyznaczane przez obszary
ryzyka. Oba warianty są prawidłowe i mogą być na takich samych prawach stosowane pod-
czas pisania kodu aplikacji.
Zademonstruję teraz, w jaki sposób identyfikujemy miejsca potencjalnych błędów podczas
projektowania aplikacji. Przykładem będzie operacja „tworzenie zamówienia i rezerwacja
towaru”, wchodząca w skład przypadku u ycia „zło enie zamówienia”. Jest to kluczowy etap
naszego procesu biznesowego. Na rysunku 6.4 widzimy szczegółowy diagram sekwencji, opi-
sujący kolejne kroki zadania.
Rysunek 6.4. Diagram sekwencji procesu „tworzenie zamówienia i rezerwacja towaru”
Jeśli zestawisz ryzyko zidentyfikowane w poprzednim punkcie z zaprezentowanym diagramem,
mo emy przyporządkować zdefiniowane tam błędy poszczególnym obiektom i związanym
z nimi akcjom.
22. Rozdział 6. n Planowanie obsługi wyjątków 111
Lista potencjalnych zagro eń operacji „tworzenie zamówienia i rezerwacja towaru”.
1. Czynności związane z obsługą bazy danych towarów:
n zarządzanie połączeniem z bazą (metody ETGCVG i FGUVTQ[);
n operacje na bazie danych (TGUGTXG+VGO).
Uzyskanie połączenia z bazą za pomocą usługi katalogowej:
n przeszukiwanie puli dostępnych połączeń;
n obsługa połączenia (metody IGV%QPPGEVKQP i TGNGCUG).
Konflikty związane z dostępem do zasobów w obiektach 1TFGT2TQEGUKPI5GTXKEG
i +PXGPVQT[5GTXKEG:
n unikanie problemów związanych z pracą wielowątkową (metody ETGCVG1TFGT
K TGUGTXG+VGOU
Kontrola transakcji w obiekcie 1TFGT2TQEGUUKPI5GTXKEG:
n obsługa transakcji w metodzie ETGCVG1TFGT.
Etap drugi (czyli precyzyjny opis składników procesu), trzeci (identyfikacja potencjalnych
błędów) i prezentowany właśnie etap czwarty (wskazywanie miejsc wystąpienia tych błędów)
wykonywane mogą być wielokrotnie, za ka dym razem zbli ając nas do momentu, w którym
cały proces będzie naprawdę dobrze przemyślany i zweryfikowany. Wtedy z czystym sumie-
niem przystąpić mo emy do jego realizacji.
Etap 5. Przygotowanie strategii obsługi błędów
Faza finałowa procesu polega na zaplanowaniu strategii obsługi ka dego ewentualnego błędu,
który pojawi się podczas działania aplikacji. Mo emy zastosować podejście ogólne — opi-
sując po prostu sposób, w jaki powinniśmy zareagować. Z drugiej strony istnieje mo liwość
stworzenia bardzo szczegółowego scenariusza, który określi kod obsługi błędu oraz sposób
zapisu informacji do dziennika. Obsługa wyjątków mo e mieć charakter jednopoziomowy,
ale mo emy zdecydować się te na przesyłanie wyjątków do innych warstw aplikacji. W na-
szym przykładzie scenariusze te moglibyśmy naszkicować mniej więcej tak:
Strategie obsługi błędów dla operacji „tworzenie zamówienia i rezerwacja towaru”
Klasa: 1TFGT2TQEGUUKPI5GTXKEG
Metoda: ETGCVG1TFGT
Ryzyko: Obsługa transakcji
Strategia: Przechwytujemy wyjątki zgłoszone wewnątrz metody. Gdy błąd jest
powa ny, wycofujemy transakcję, zapisujemy informację o błędzie do dziennika,
przywracamy poprzedni stan aplikacji. W zale ności od tego, jak implementacja
jest zło ona, mo na rozwa yć stworzenie osobnej metody słu ącej do wycofania
transakcji.
23. 112 Część II n Planowanie obsługi wyjątków
Ryzyko: Zakłócenie pracy wątku
Strategia: Unikajmy współdzielonych zmiennych odpowiadających za stan obiektu.
Jeśli są one nieodzowne, synchronizujmy dostęp do nich podczas tych operacji,
które wią ą się ze zmianą stanu.
Klasa: +PXGPVQT[5GTXKEG
Metoda: TGUGTXG+VGOU
Ryzyko: Zakłócenie pracy wątku
Strategia: Unikajmy współdzielonych zmiennych odpowiadających za stan obiektu.
Jeśli są one nieodzowne, synchronizujmy dostęp do nich podczas tych operacji,
które wią ą się ze zmianą stanu.
Klasa: +PXGPVQT[#1
Metoda: ETGCVG
Ryzyko: Nieudana próba uzyskania połączenia z bazą danych
Strategia: Przekazujemy wyjątek na zewnątrz metody w celu przerwania całego
procesu (wycofanie transakcji nie jest konieczne). Rozwa yć warto zachowanie
zamówienia i próbę przetwarzania w tle.
Metoda: TGUGTXG+VGO
Ryzyko: Błąd zgłoszony przez bazę danych podczas rezerwacji towarów
Strategia: Przekazujemy wyjątek na zewnątrz metody w celu przerwania całego
procesu (tym razem nale y wycofać transakcję). Rozwa yć warto zachowanie
zamówienia i próbę przetwarzania w tle.
Metoda: FGUVTQ[
Ryzyko: Problemy związane z zakończeniem połączenia z bazą danych
Strategia: Notujemy błąd w dzienniku, usuwamy nieprawidłowo zakończone
połączenie z bazą. Jeśli jest to mo liwe, informujemy pulę połączeń z bazą
o konieczności sprawdzenia tego, z którym mieliśmy problemy.
Klasa: 0COKPIGNGICVG
Metoda: IGV%QPPGEVKQP
Ryzyko: Problem ze znalezieniem lub dostępem do puli połączeń z bazą danych
Strategia: Próbujemy znaleźć pulę połączeń ponownie. Gdy jest ona nadal niedostępna,
przekazujemy wyjątek na zewnątrz metody w celu przerwania całego procesu. Nie
jest wymagane wycofanie adnej transakcji. Mo emy tak e wysłać komunikat do
administratora z prośbą o interwencję lub zgłosić czasową niedostępność systemu.
Metoda: TGNGCUG
Ryzyko: Problemy ze zwolnieniem połączenia
24. Rozdział 6. n Planowanie obsługi wyjątków 113
Strategia: Gdy pula połączeń jest niedostępna, wysyłamy komunikat do
administratora z prośbą o interwencję lub zgłaszamy czasową niedostępność
systemu.
Zauwa , e dyskusja na temat potencjalnych wyjątków mogących wystąpić w omawianym
przykładzie nie zajęła nam a tak wiele czasu. Jest to jedna z mocnych stron prezentowanego
podejścia. Charakteryzuje się te ono du ą elastycznością w sposobie identyfikacji, a następ-
nie uszczegółowienia zagro eń związanych z działaniem aplikacji. Proces ten zastosować mo-
emy bazując na istniejącym ju planie aplikacji lub te dopasować jej strukturę do zidentyfi-
kowanych wcześniej problemów. Pojęcie błędu aplikacji mo e wykraczać te poza jeden
konkretny wyjątek. Potencjalne zagro enie mo e być związane z całą serią wyjątków — nie
jest to wcale rzadki przypadek.
Podstawową zaletą „projektowania z myślą o łatwiejszym zarządzaniu” są znacznie większe
mo liwości planowania obsługi wyjątków, uwzględniając równie sytuacje, w których prze-
kazywane są one między warstwami aplikacji. Gdy poświęcisz nieco czasu na dokładną
analizę problemów, które mogą zaistnieć, Twoja strategia ich obsługi na pewno będzie lepiej
przemyślana i przez to skuteczniejsza. Postawa taka jest na pewno o wiele dojrzalsza ni
traktowanie obsługi błędów jako niewiele znaczącego dodatku podczas pisania kodu.
Jeśli tylko chcesz, mo esz podejść do zagadnienia z jeszcze większą precyzją. Przypomnij
sobie listę opcji obsługi wyjątków omawianą w rozdziale 2. W ka dym przypadku warto
bowiem rozwa yć, jaki sposób reakcji jest w danym wypadku najlepszy.
W sytuacji, gdy rozwa amy obsługę wyjątków w systemie o ustabilizowanej ju strukturze,
zastanawiając się nad strategią wyjątków nie musimy koncentrować się ju na pojedynczych
metodach. Mamy warunki, by spojrzeć na to zagadnienie z perspektywy całej klasy lub nawet
komponentu. Co więcej, wynik takiego planowania mo e zostać włączony na poziom całej
aplikacji, dzięki czemu powstanie system, który na wyjątki reaguje zarówno na poziomie lo-
kalnym, jak te globalnym.
Dalsze rozwijanie i dopracowywanie projektu powinno wiązać się z ponowną analizą i ulep-
szaniem strategii obsługi błędów. Warto więc ten etap włączyć na stałe do procesu tworze-
nia aplikacji. Takie formalne podejście wydaje się po ądane i bezpieczne dla całego zespołu,
jasno wskazując na konieczność wykonania pewnych czynności i określając, kto jest za to
odpowiedzialny.
Projektowanie z myślą o łatwiejszym zarządzaniu — korzyści i wady
Do tego miejsca pisałem o tym, w jaki sposób wprowadzić w ycie postulowane przeze mnie
podejście do projektowania aplikacji. Jest to technika, która pozwala nam identyfikować
i obsługiwać te miejsca, które mogą w naszych aplikacjach sprawiać kłopoty. W ten sposób
lokalizujemy i oceniamy ryzyko, a następnie przygotowujemy całościowy plan na wypadek,
gdyby nasz czarny scenariusz się spełnił. Najlepsze jest to, e dodatkowe etapy związane
z kompleksową obsługą wątków wplatają się zgrabnie w standardowy proces tworzenia
aplikacji, dlatego nie musimy wprowadzać radykalnych zmian i zmieniać dotychczasowych
przyzwyczajeń.
25. 114 Część II n Planowanie obsługi wyjątków
„Projektowanie z myślą o łatwiejszym zarządzaniu” jest techniką elastyczną. Mo na stosować
ją w dowolnym momencie po ustaleniu operacji składających się na proces biznesowy. Korzy-
ści pojawią się zarówno, gdy analizę potencjalnych zagro eń przeprowadzimy mając ogólny
zarys czynności, jak te w momencie, gdy gotowy jest obiektowy model systemu.
Rozwa ania dotyczące konieczności obsługi problemów mogą stanowić podstawę wyznaczenia
pewnych działań, które następnie zdefiniujemy w postaci metod. Tak więc granice pomiędzy
kolejnymi metodami mogą zostać wyznaczone nie tylko na podstawie czynności, które
mają one realizować, ale te potencjalnych błędów wymagających określonej obsługi.
Zaproponowane modyfikacje sposobu projektowania aplikacji są na tyle ogólne, e istnieje
mo liwość zajęcia się określonymi wyjątkami nawet w dosyć późnej fazie procesu tworzenia
aplikacji. Wcześniej mo emy potencjalne błędy traktować w kategorii ogólnych problemów.
Przypisanie odpowiednich wyjątków odbyć się mo e później, gdy będziemy posiadali większą
wiedzę np. na temat u ytej technologii.
Czy w takim razie „projektowanie z myślą o łatwiejszym zarządzaniu” jest w stanie rozwiązać
wszystkie problemy, które mogą pojawić się w kodzie naszych aplikacji? Na pewno nie. Co
więcej, nie jest celem tego podejścia identyfikacja wszystkich mo liwych błędów — chodzi
jedynie o te, które mogą mieć du e znaczenie dla poprawnego działania całości. Technika
została stworzona po to, by zajmować się kluczowymi obszarami ryzyka. Teoretycznie proces
analizy systemu mo emy powtarzać wielokrotnie i za ka dym razem wyszukamy kolejny,
potencjalny błąd, ale takie jego stosowanie prowadzi donikąd. Po raz kolejny okazuje się, e
korzystając z jakichkolwiek metod i zaleceń, nie wolno nam zapominać o podstawowej zasa-
dzie tworzenia oprogramowania, która ka e polegać przede wszystkim na zdrowym rozsądku.
Zauwa , e opisywany proces nie jest metodyką i nie jest idealnym rozwiązaniem radzenia
sobie z obsługą błędów, które sprawdzi się w ka dej sytuacji. Dlatego korzyści ze stosowania
tej techniki nale y starannie rozwa yć i u ywać jej tylko tam, gdzie naszym zdaniem przynie-
sie korzyści.
Identyfikacja błędów
„Projektowanie z uwzględnieniem błędów” wymaga od nas dobrej identyfikacji i zrozumienia
problemów, które mogą wystąpić podczas działania aplikacji. Ju na etapie projektu musimy
wskazać prawdopodobne błędy, jeśli chcemy się nimi zająć. Nie pomo e nam w tym kompi-
lator języka Java, który ostrzega o nieobsłu onych wyjątkach. Ta bardzo przydatna cecha
jest bezu yteczna, gdy szkicujemy schemat aplikacji, poniewa najczęściej nie ma wtedy jesz-
cze ani jednego wiersza kodu. Kompilator potraktujemy raczej jak narzędzie, które sprawdzi,
czy nasz plan obsługi wyjątków zrealizowaliśmy prawidłowo.
Nawet wówczas, gdy nie zdecydujesz się na włączenie do procesu tworzenia aplikacji punktu
związanego tylko i wyłącznie z obsługą wyjątków, zawsze dobrym pomysłem będzie próba
znalezienia czyhających na nas pułapek. Czynność, która analizuje pod tym kątem dany
komponent, bibliotekę czy API, nazywamy identyfikacją błędów. W ten sposób staramy się
znaleźć słabe punkty określonych klas bądź komponentów i znaleźć rozwiązanie, które po-
zwoli w niebezpiecznych dla działania aplikacji momentach odpowiednio zareagować. W ten
sposób identyfikacja błędów daje nam wyraźniejsze spojrzenie na potencjalne błędy i mi-
nimalizuje ryzyko, e zostaniemy przez nie boleśnie zaskoczeni.
26. Rozdział 6. n Planowanie obsługi wyjątków 115
Podsumowanie
W niniejszym rozdziale rozwa ałem podstawowe zasady projektowania aplikacji z uwzględ-
nieniem potencjalnych problemów, które mogą pojawić się w czasie jej działania. Przed-
stawiłem technikę pozwalającą włączyć identyfikację i plan obsługi błędów do typowego
procesu projektowania aplikacji. W kolejnych rozdziałach przystąpię do analizy błędów,
które są typowe dla konkretnych obszarów języka Java i wykorzystywanych powszechnie
bibliotek. Zadaniem będzie zrozumienie działania poszczególnych składników i poznanie ry-
zyka, jakie się z tym wią e. W tabeli 6.2 znajdują się tematy, które opisane są w kolejnych
rozdziałach.
Tabela 6.2. Tematy rozdziałów części drugiej
Rozdział Tematy
7. Język Java: typy podstawowe, tablice, klasy ogólnego przeznaczenia
8. Popularne API: obsługa kolekcji, system wejścia-wyjścia, biblioteka New I/O
9. Aplikacje rozproszone: RMI, JNDI, JDBC
10. J2EE: serwlety, JSP, EJB
W ka dym z tych rozdziałów opisuję zadania poszczególnych API wraz z ich słabymi punktami
i typowymi problemami, które wią ą się z ich u ywaniem. Wska ę najwa niejsze wyjątki
oraz sugerowane sposoby ich obsługi. Lektura kolejnych rozdziałów to bogaty zbiór bardzo
konkretnych porad, które pozwolą Ci pisać znacznie lepsze i bezpieczniejsze programy.