Mistrz języka C. Najlepsze zasady, praktyki i wzorce - ebook
Mistrz języka C. Najlepsze zasady, praktyki i wzorce - ebook
Język C mimo upływu lat wciąż wydaje się niezastąpiony. Umożliwia pisanie zwięzłego kodu, który działa szybko mimo niewielkich zasobów sprzętowych. Choć wielu programistów używa C, trudno jest znaleźć eksperckie wskazówki dotyczące programowania w tym języku. Tymczasem w profesjonalnych zastosowaniach podjęcie optymalnych decyzji projektowych warunkuje uzyskanie wysokiej jakości gotowego kodu.
To świetna pozycja, dzięki której Twój kod będzie bardziej przejrzysty i łatwiejszy w konserwacji.
David Griffiths, autor książki Head First C
W tym poradniku, skierowanym do początkujących i doświadczonych programistów języka C, zawarto wiele informacji o podejmowaniu decyzji projektowych, pokazano też krok po kroku, jak wpływają one na tworzenie złożonego oprogramowania. Znajdziesz tu odpowiedzi na trudne pytania o projektowanie struktury programów w C, obsługę błędów czy tworzenie elastycznych interfejsów. Liczne wskazówki i przykłady ułatwią Ci przekładanie wiedzy projektowej na działające implementacje. Druga część książki stanowi omówienie zastosowania licznych wzorców projektowych z języka C do tworzenia większych aplikacji. Dowiesz się, jakie wzorce stosuje się w konkretnych sytuacjach, a także w jaki sposób mogą ułatwić Ci pracę dzięki wskazywaniu dobrych decyzji projektowych.
W książce omówiono wzorce dotyczące:
- obsługi błędów i komunikatów o błędach
- zarządzania pamięcią
- elastycznych API i interfejsów iteratorów
- organizowania plików w programach modułowych
- ucieczki z piekła instrukcji #ifdef
Ta książka pokaże początkującym, jak tworzyć w C produkty klasy przemysłowej!
Robert Hanmer, architekt oprogramowania
Spis treści
Przedmowa
Część I. Wzorce w języku C
- 1. Obsługa błędów
- Przykład roboczy
- Podział funkcji
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Klauzula zabezpieczająca
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Reguła samuraja
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Obsługa błędów z użyciem instrukcji goto
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Zapisywanie informacji o porządkowaniu
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Obiektowa obsługa błędów
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Dalsza lektura
- Co dalej?
- 2. Zwracanie informacji o błędach
- Przykład roboczy
- Zwracanie kodów stanu
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Zwracanie adekwatnych informacji o błędach
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Specjalne zwracane wartości
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Rejestrowanie błędów
- Kontekst
- Problem
- Rozwiązanie
- Makra wielowierszowe
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Dalsza lektura
- Co dalej?
- 3. Zarządzanie pamięcią
- Przechowywanie danych i problemy z pamięcią dynamiczną
- Przykład roboczy
- Zacznij od stosu
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Pamięć wieczna
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Leniwe porządkowanie
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Określony właściciel
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Nakładka do alokacji pamięci
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Sprawdzanie wskaźników
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Pula pamięci
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Dalsza lektura
- Co dalej?
- 4. Zwracanie danych z funkcji w C
- Przykład roboczy
- Zwracana wartość
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Parametry wyjściowe
- Kontekst
- Problem
- Rozwiązanie
- Środowiska wielowątkowe
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Zagregowana instancja
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Niemodyfikowalna instancja
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Bufor należący do jednostki wywołującej
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Alokacja w jednostce wywoływanej
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Co dalej?
- 5. Czas życia i własność danych
- Bezstanowy moduł oprogramowania
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Moduł oprogramowania ze stanem globalnym
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Instancja należąca do jednostki wywołującej
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Współdzielona instancja
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Dalsza lektura
- Co dalej?
- Bezstanowy moduł oprogramowania
- 6. Elastyczne API
- Pliki nagłówkowe
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Uchwyt
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Dynamiczny interfejs
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Kontrolowanie funkcji
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Dalsza lektura
- Co dalej?
- Pliki nagłówkowe
- 7. Elastyczne interfejsy iteratorów
- Przykład roboczy
- Dostęp za pomocą indeksu
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Iterator w postaci kursora
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Iterator z wywołaniami zwrotnymi
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Dalsza lektura
- Co dalej?
- 8. Organizowanie plików w modułowych programach
- Przykład roboczy
- Zabezpieczanie instrukcji include
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Katalogi modułów oprogramowania
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Globalny katalog na dołączane pliki
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Samodzielny komponent
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Kopiowanie API
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Co dalej?
- 9. Ucieczka z piekła instrukcji #ifdef
- Przykład roboczy
- Unikanie wariantów
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Izolowane podstawowe jednostki kodu
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Atomowe podstawowe jednostki kodu
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Warstwa abstrakcji
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Rozdzielanie implementacji wariantów
- Kontekst
- Problem
- Rozwiązanie
- Skutki
- Znane zastosowania
- Zastosowanie w przykładzie roboczym
- Podsumowanie
- Dalsza lektura
- Co dalej?
Część II. Historie dotyczące wzorców
- 10. Implementowanie mechanizmu rejestrowania informacji
- Historia wykorzystana do prezentowania wzorców
- Organizowanie plików
- Centralna funkcja rejestrowania informacji
- Filtr źródła rejestrowanych informacji
- Warunkowe rejestrowanie informacji
- Rejestrowanie informacji w różnych miejscach
- Rejestrowanie informacji w pliku
- Pliki działające na różnych platformach
- Stosowanie mechanizmu rejestrowania informacji
- Podsumowanie
- Historia wykorzystana do prezentowania wzorców
- 11. Tworzenie systemu zarządzania kontami użytkowników
- Historia wykorzystana do prezentowania wzorców
- Organizowanie danych
- Organizowanie plików
- Obsługa błędów w procesie uwierzytelniania
- Rejestrowanie błędów w procesie uwierzytelniania
- Obsługa błędów w procesie dodawania użytkowników
- Iterowanie
- Korzystanie z systemu zarządzania kontami użytkowników
- Podsumowanie
- Historia wykorzystana do prezentowania wzorców
- 12. Zakończenie
- Czego się nauczyłeś?
- Dalsza lektura
- Uwagi końcowe
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-8322-723-8 |
Rozmiar pliku: | 7,1 MB |