Programowanie w języku Delphi - Helion
Tytuł oryginału: Coding in Delphi
TÅ‚umaczenie: Andrzej Watrak
ISBN: 978-83-283-0800-8
stron: 192, Format: ebook
Data wydania: 2015-11-06
Księgarnia: Helion
Cena książki: 36,75 zł (poprzednio: 49,00 zł)
Oszczędzasz: 25% (-12,25 zł)
Poznaj najlepsze techniki pisania kodu w Delphi!
- Klasy generyczne, metody anonimowe i atrybuty — nowe funkcjonalnoÅ›ci jÄ™zyka Delphi
- Testy jednostkowe, poprawianie jakości kodu i wykorzystanie platformy izolacyjnej
- Wstrzykiwanie zależności a tworzenie czytelnego, luźno sprzężonego i łatwego do testowania kodu
Wbrew pozorom na świecie pracuje bardzo wielu programistów posługujących się językiem Delphi. Sęk w tym, że większość z nich nie ma pojęcia o niezwykłych i użytecznych funkcjonalnościach dostępnych w nowszych wersjach tego języka oraz nie umie zastosować tych narzędzi we własnej pracy. Jeśli czujesz, że i Ty zaliczasz się do tego grona, a brak umiejętności sprawia, że nie możesz rozwinąć skrzydeł, ta książka jest dla Ciebie. Są w niej opisane niezwykle przydatne narzędzia oraz sytuacje, w których te narzędzia sprawdzają się szczególnie dobrze, a także kilka ogólnie dostępnych platform.
W gruncie rzeczy ta książka jest poświęcona wyłącznie tworzeniu nowego, dobrego kodu w języku Delphi. Nie znajdziesz w niej nic o projektowaniu okienek, języku VCL ani platformie FMX, ale jeśli chcesz się dowiedzieć więcej o kodowaniu interfejsów zamiast implementacji, o właściwych sposobach korzystania z wyjątków i o ich obsłudze, o testowaniu i poprawianiu kodu, o zastosowaniu platformy Spring for Delphi do lepszego zarządzania kolekcjami danych albo o uzyskiwaniu wglądu w kod podczas jego wykonywania za pomocą nowego, potężnego narzędzia RTTI, z pewnością niniejsza publikacja Cię zachwyci.
- Wyjątki i ich obsługa
- Interfejsy i typy generyczne
- Metody anonimowe
- Kolekcje i enumeratory w Delphi
- Interfejs IEnumerable
- Informacje RTTI i atrybuty
- Klasa TVirtualInterface
- Wstrzykiwanie zależności
- Testy jednostkowe
- Testy z użyciem platformy izolacyjnej
Wykorzystaj w pełni moc i elegancję Delphi!
Nick Hodges — programista zaangażowany w projekt Delphi od poczÄ…tku jego istnienia. ByÅ‚ testerem pierwszej wersji jÄ™zyka i czÅ‚onkiem zespoÅ‚u TeamB, a także menedżerem produktu i kierownikiem dziaÅ‚u badawczo-rozwojowego jÄ™zyka Delphi. Jest czÅ‚onkiem Advisory Board na corocznej konferencji firmy Borland, aktywnym prelegentem, blogerem i autorem artykułów poÅ›wiÄ™conych różnym zagadnieniom jÄ™zyka Delphi.
Osoby które kupowały "Programowanie w języku Delphi", wybierały także:
- Aplikacje w Delphi. Przykłady. Wydanie III 58,98 zł, (29,49 zł -50%)
- Delphi 7. Kompendium programisty 129,00 zł, (77,40 zł -40%)
- Delphi 2007 dla WIN32 i bazy danych 89,00 zł, (66,75 zł -25%)
- Flutter for Jobseekers 88,72 zł, (67,43 zł -24%)
- Arduino Programming Projects 88,72 zł, (67,43 zł -24%)
Spis treści
Programowanie w języku Delphi eBook -- spis treści
Przedmowa (9)
Wprowadzenie (11)
Podziękowania (13)
Platformy wykorzystane w książce (15)
Rozdział 1. Wyjątki i ich obsługa (17)
- 1.1. Wprowadzenie (17)
- 1.2. Strukturalna obsÅ‚uga wyjÄ…tków (17)
- 1.3. Jak nie korzystać z wyjÄ…tków (18)
- Nie "poÅ‚ykaj" wyjÄ…tków (18)
- Nie przechwytuj wyjÄ…tków bezkrytycznie (18)
- Nie nadużywaj wyjÄ…tków (19)
- Nie używaj wyjÄ…tków jako podstawowego sposobu sygnalizacyjnego (19)
- 1.4. Jak prawidÅ‚owo korzystać z wyjÄ…tków (20)
- Używaj wyjÄ…tków tak, aby kod ich obsÅ‚ugi nie zakÅ‚ócaÅ‚ realizacji programu (20)
- Twórcy aplikacji powinni tylko przechwytywać wyjÄ…tki (20)
- Przechwytuj tylko wybrane wyjÄ…tki (20)
- WyjÄ…tki mogÄ… zgÅ‚aszać twórcy komponentów i bibliotek (22)
- Zgłaszaj własne niestandardowe wyjątki (22)
- Niech inni programiści widzą komunikaty o wyjątkach (22)
- Śmiało podawaj dokładne komunikaty o wyjątkach (23)
- W bibliotece twórz dwie wersje każdej metody (23)
- 1.5. Wnioski (24)
Rozdział 2. Interfejsy (25)
- 2.1. Wprowadzenie (25)
- 2.2. Rozprzęganie kodu (25)
- 2.3. Czym jest interfejs? (26)
- 2.4. Interfejsy są wszędzie (26)
- 2.5. Prosty przykład (28)
- 2.6. Implementacja interfejsu (29)
- 2.7. Kilka dodatkowych uwag (30)
- 2.8. Dziedziczenie interfejsów (30)
- 2.9. Inne uwagi warte zapamiętania (31)
- 2.10. Klasa TInterfacedObject (31)
- 2.11. Jak poprawnie używać interfejsów (33)
- 2.12. Dlaczego należy używać interfejsów? (34)
- Kodowanie abstrakcyjne (34)
- Implementacje podłączane (35)
- Komunikacja między modułami (35)
- Testowalny kod (36)
- Wzorce kodu (36)
Rozdział 3. Typy generyczne (37)
- 3.1. Z pomocÄ… przybywa typ generyczny (38)
- 3.2. Ograniczenia (39)
- Ograniczenie constructor (40)
- Ograniczenie class (40)
- Ograniczenie record (41)
- Ograniczenie interface (42)
- Przekazywanie rekordów jako typów parametrycznych (42)
- 3.3. Interfejsy generyczne (43)
- 3.4. Metody generyczne (43)
- 3.5. Kolekcje generyczne (44)
- 3.6. Myślenie generyczne (45)
- 3.7. Wystudiowany, prosty przykład (45)
- 3.8. Praktyczny przykład (46)
- Typ TWylicz (46)
- Problemy z typami generycznymi (48)
- 3.9. Wnioski (49)
- 3.10. Wywiad z typem generycznym (49)
Rozdział 4. Metody anonimowe (51)
- 4.1. Wprowadzenie (51)
- 4.2. Definicja (51)
- 4.3. Po co to wszystko? (52)
- Prosty przykład (53)
- Metody anonimowe jako zmienne (55)
- 4.4. Domknięcia (55)
- 4.5. Deklaracje standardowe (56)
- 4.6. Praktyczny przykład (57)
- 4.7. Inny, jeszcze ciekawszy przykład (58)
- Metody anonimowe sÄ… bardzo elastyczne (59)
- 4.8. Metody anonimowe w bibliotece RTL (61)
- Klasa TThread i metody anonimowe (61)
- 4.9. Predykaty (61)
- I co z tego? (61)
- 4.10. Wnioski (63)
- 4.11. Wywiad z metodÄ… anonimowÄ… (63)
Rozdział 5. Kolekcje (65)
- 5.1. Wprowadzenie (65)
- 5.2. Ogólne uwagi dotyczÄ…ce kolekcji (65)
- 5.3. Kolekcje w języku Delphi (66)
- Kolekcja TList (66)
- Kolekcja TStack (68)
- Kolekcja TQueue (69)
- Kolekcja TDictionary (70)
- Kolekcje obiektów (72)
- 5.4. Kolekcje w platformie Delphi Spring Framework (72)
- Ogólne informacje (72)
- Dwa nieopisane dotychczas typy kolekcji (73)
- 5.5. Dlaczego należy używać kolekcji Spring4D? (73)
- 5.6. Wnioski (74)
Rozdział 6. Enumeratory w Delphi (75)
- 6.1. Wprowadzenie (75)
- 6.2. Interfejs IEnumerator (77)
- 6.3. Specjalistyczne enumeratory (78)
- 6.4. Klasa TEnumerable w module Generics.Collections (80)
- 6.5. Wnioski (80)
Rozdział 7. Interfejs IEnumerable (81)
- 7.1. Interfejs IEnumerable (82)
- 7.2. Predykaty (83)
- 7.3. Wywiad z interfejsem IEnumerable (IEoT) (87)
Rozdział 8. Informacje RTTI (89)
- 8.1. Wprowadzenie (89)
- 8.2. Typ TValue (90)
- 8.3. RTTI i klasy (92)
- Klasa TRttiType (94)
- 8.4. RTTI i instancje klas (96)
- Odczytywanie i nadawanie wartości (96)
- Wywoływanie metod (97)
- 8.5. Uwagi ogólne (98)
- 8.6. RTTI i inne typy danych (98)
- RTTI i typy porzÄ…dkowe (99)
- RTTI i rekordy (99)
- RTTI i tabele (99)
- 8.7. Inne metody RTTI (100)
- 8.8. Dyrektywy kompilatora zwiÄ…zane z RTTI (100)
- Silna konsolidacja typów (102)
- 8.9. Wnioski (102)
Rozdział 9. Atrybuty (103)
- 9.1. Wprowadzenie (103)
- 9.2. Czym sÄ… atrybuty? (103)
- 9.3. Prosty przykład (107)
- 9.4. Wnioski (109)
- 9.5. Wywiad z atrybutem (109)
Rozdział 10. Klasa TVirtualInterface (111)
- 10.1. TrochÄ™ lepsza klasa TVirtualInterface (115)
- 10.2. Naprawdę użyteczny przykład (116)
- 10.3. Interfejs IProstaAtrapa (116)
- 10.4. Klasa TProstaImitacja (118)
- 10.5. Wnioski (120)
Rozdział 11. Wstęp do wstrzykiwania zależności (121)
- 11.1. Wprowadzenie (121)
- 11.2. Czym jest zależność? (121)
- 11.3. Prawo Demeter (122)
- 11.4. Przykład projektu (122)
- 11.5. Prawo Demeter w języku Delphi (123)
- 11.6. Przykładowy kod krok po kroku (124)
- 11.7. Kontener wstrzykiwania zależności (131)
- 11.8. Wnioski (134)
Rozdział 12. Więcej o wstrzykiwaniu zależności (135)
- 12.1. Zależności opcjonalne (136)
- 12.2. Wstrzykiwanie metod przypisujÄ…cych (136)
- 12.3. Wstrzykiwanie metod (137)
- 12.4. Kontener Spring Container i klasa ServiceLocator (138)
- Rejestrowanie interfejsów (139)
- ZarzÄ…dzanie czasem życia obiektów (140)
- Niestandardowe tworzenie obiektów (141)
- Określenie domyślnego obiektu (142)
- Rejestrowanie tych samych klas dla dwóch interfejsów (142)
- Wstrzykiwanie pól i wÅ‚aÅ›ciwoÅ›ci podczas rejestracji (142)
- Wykorzystanie rejestracji do wstrzykiwania konstruktorów i metod (144)
- 12.5. Rejestrowanie elementów za pomocÄ… atrybutów (145)
- 12.6. Klasa ServiceLocator jako antywzorzec (147)
- 12.7. Podsumowanie wstrzykiwania zależności (151)
Rozdział 13. Testy jednostkowe (153)
- 13.1. Co to sÄ… testy jednostkowe? (153)
- Co to jest "jednostka"? (154)
- Czy rzeczywiście wykonuję testy jednostkowe? (154)
- Czym jest platforma izolacyjna? (154)
- 13.2. Po co wykonywać testy jednostkowe? (157)
- Dzięki testom jednostkowym wyszukasz błędy (157)
- DziÄ™ki testom jednostkowym unikniesz bÅ‚Ä™dów (157)
- Dzięki testom jednostkowym oszczędzisz czas (157)
- Testy jednostkowe zapewniajÄ… spokój (157)
- Testy jednostkowe dokumentują właściwe użycie klas (158)
- 13.3. Testy jednostkowe w Delphi (158)
- Platforma DUnit (158)
- Platforma DUnitX (158)
- 13.4. Ogólne zasady testów jednostkowych (159)
- Testuj jednÄ… klasÄ™ w izolacji (159)
- Przestrzegaj zasady AAA (159)
- Najpierw twórz proste testy, "krótkie i na temat" (159)
- Twórz testy sprawdzajÄ…ce zakresy (159)
- Testuj granice (160)
- Jeżeli to możliwe, sprawdź całe spektrum możliwych wartości (160)
- Jeżeli to możliwe, sprawdź każdy przebieg kodu (160)
- Twórz testy wyszukujÄ…ce bÅ‚Ä™dy i poprawiaj je (160)
- Każdy test musi być niezależny od innych testów (160)
- Stosuj w teście tylko jedną asercję (161)
- Nadawaj testom czytelne nazwy i nie przejmuj się, że są długie (161)
- Sprawdzaj, czy każdy wyjątek jest rzeczywiście zgłaszany (161)
- Unikaj stosowania metod CheckTrue i Assert.IsTrue (161)
- Regularnie wykonuj testy (161)
- Wykonuj testy przy każdorazowej kompilacji kodu (161)
- 13.5. Programowanie uwzględniające testy (162)
- 13.6. Prosty przykład (162)
Rozdział 14. Testy z użyciem platformy izolacyjnej (169)
- 14.1. Krótkie przypomnienie (169)
- 14.2. Platformy izolacyjne w Delphi (170)
- 14.3. Jak zacząć (170)
- Do akcji wkracza platforma izolacyjna (170)
- Prosta atrapa (170)
- Testowanie dziennika (172)
- Atrapy, które wykonujÄ… operacje (173)
- Zależności wykonujące oczekiwane operacje (176)
- Zależności zgłaszające wyjątki (178)
- W teście stosuj tylko jedną imitację (179)
- Oczekiwane parametry muszą być zgodne z rzeczywistymi (180)
- 14.4. Wnioski (180)
Dodatek A. Materiały (181)
- Wstrzykiwanie zależności (181)
- Testy jednostkowe (181)
- Systemy kontroli kodu źródÅ‚owego (182)
- Subversion (182)
- Git (182)
- Mercurial (182)
- Projekty (182)
- Inne ciekawe materiały (183)
Dodatek B. Moja przygoda z Delphi (185)
Skorowidz (189)