reklama - zainteresowany?

Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie IV - Helion

Profesjonalne programowanie w Pythonie. Poziom ekspert. Wydanie IV
Autor: Micha
Tytuł oryginału: Expert Python Programming: Master Python by learning the best coding practices and advanced programming concepts, 4th Edition
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-283-8743-0
stron: 610, Format: 168x237, okładka: mi
Księgarnia: Helion

Książka będzie dostępna od kwietnia 2022

Tagi: Python - Programowanie

Python cechuje si

Spis treści

Profesjonalne programowanie w Pythonie. Poznaj najlepsze praktyki kodowania i zaawansowane koncepcje programowania. Wydanie IV -- spis treści

O autorach

O recenzencie

Przedmowa

Rozdział 1. Aktualny stan Pythona

  • Gdzie jesteśmy i dokąd zmierzamy?
  • Co zrobić z kodem w Pythonie 2?
  • Jak być na bieżąco?
    • Dokumenty PEP
    • Aktywne społeczności
    • Inne źródła informacji
  • Podsumowanie

Rozdział 2. Nowoczesne środowiska programistyczne Pythona

  • Wymagania techniczne
  • Ekosystem pakietów Pythona
    • Instalowanie pakietów Pythona za pomocą narzędzia pip
  • Izolowanie środowiska uruchomieniowego
    • Izolacja na poziomie aplikacji a izolacja na poziomie systemu
  • Izolacja środowiska na poziomie aplikacji
    • Poetry jako system zarządzania zależnościami
  • Izolacja środowiska na poziomie systemu
    • Konteneryzacja a wirtualizacja
    • Zarządzanie środowiskami wirtualnymi z użyciem Dockera
    • Wirtualne środowiska programistyczne oparte na narzędziu Vagrant
  • Popularne narzędzia do zwiększania produktywności
    • Niestandardowe powłoki Pythona
    • Stosowanie powłoki IPython
    • Stosowanie powłok we własnych skryptach i programach
    • Interaktywne debugery
    • Inne narzędzia do zwiększania produktywności
  • Podsumowanie

Rozdział 3. Nowości w Pythonie

  • Wymagania techniczne
  • Niedawne dodatki do języka
    • Operatory scalania i aktualizacji słownika
    • Wyrażenia przypisania
    • Wskazówki dotyczące typów w typach generycznych
    • Parametry czysto pozycyjne
    • Moduł zoneinfo
    • Moduł graphlib
  • Nie tak nowe, ale wciąż błyszczące
    • Funkcja breakpoint()
    • Tryb roboczy
    • Funkcje __getattr__() i __dir__() na poziomie modułu
    • Formatowanie łańcuchów znaków za pomocą obiektów f-string
    • Podkreślenia w literałach liczbowych
    • Moduł secrets
  • Co może się pojawić w przyszłości?
    • Tworzenie sumy typów za pomocą operatora |
    • Strukturalne dopasowywanie wzorców
  • Podsumowanie

Rozdział 4. Porównanie Pythona z innymi językami

  • Wymagania techniczne
  • Model klas i programowanie obiektowe
    • Dostęp do klas bazowych
    • Wielodziedziczenie i porządek MRO
    • Inicjalizowanie instancji klasy
    • Wzorce dostępu do atrybutów
    • Deskryptory
    • Właściwości
  • Dynamiczny polimorfizm
    • Przeciążanie operatorów
    • Przeciążanie funkcji i metod
  • Klasy danych
  • Programowanie funkcyjne
    • Funkcje lambda
    • Funkcje map(), filter() i reduce()
    • Obiekty i funkcje częściowe
    • Generatory
    • Wyrażenia generatora
    • Dekoratory
  • Wyliczenia
  • Podsumowanie

Rozdział 5. Interfejs, wzorce i modułowość

  • Wymagania techniczne
  • Interfejsy
    • Odrobina historii: zope.interface
    • Stosowanie adnotacji funkcji i abstrakcyjnych klas bazowych
    • Tworzenie interfejsów z wykorzystaniem adnotacji określających typ
  • Odwrócenie sterowania i wstrzykiwanie zależności
    • Odwrócenie sterowania w aplikacjach
    • Stosowanie platform do wstrzykiwania zależności
  • Podsumowanie

Rozdział 6. Współbieżność

  • Wymagania techniczne
  • Czym jest współbieżność?
  • Wielowątkowość
    • Czym jest wielowątkowość?
    • Obsługa wątków w Pythonie
    • Kiedy należy stosować wielowątkowość?
    • Przykładowa aplikacja wielowątkowa
  • Wieloprocesowość
    • Wbudowany moduł multiprocessing
    • Stosowanie puli procesów
    • Stosowanie modułu multiprocessing.dummy jako interfejsu do obsługi wielowątkowości
  • Programowanie asynchroniczne
    • Kooperatywna wielozadaniowość i asynchroniczne operacje wejścia - wyjścia
    • Słowa kluczowe async i await w Pythonie
    • Praktyczny przykład zastosowania programowania asynchronicznego
    • Dostosowywanie nieasynchronicznego kodu do asynchroniczności za pomocą obiektów future
  • Podsumowanie

Rozdział 7. Programowanie sterowane zdarzeniami

  • Wymagania techniczne
  • Czym dokładnie jest programowanie sterowane zdarzeniami?
    • Sterowanie zdarzeniami nie jest tożsame z asynchronicznością
    • Programowanie sterowane zdarzeniami w GUI
    • Komunikacja sterowana zdarzeniami
  • Różne style programowania sterowanego zdarzeniami
    • Styl oparty na wywołaniach zwrotnych
    • Styl oparty na obserwowaniu obiektów
    • Styl oparty na tematach
  • Architektury sterowane zdarzeniami
    • Kolejki zdarzeń i komunikatów
  • Podsumowanie

Rozdział 8. Elementy metaprogramowania

  • Wymagania techniczne
  • Czym jest metaprogramowanie?
  • Stosowanie dekoratorów do modyfikowania działania funkcji przed jej użyciem
    • Następny krok: dekoratory klas
  • Przechwytywanie procesu tworzenia instancji klasy
  • Metaklasy
    • Ogólna składnia
    • Stosowanie metaklas
    • Pułapki związane z metaklasami
    • Stosowanie metody __init_subclass__() jako alternatywy dla metaklas
  • Generowanie kodu
    • Funkcje exec, eval i compile
    • Drzewa składni abstrakcyjnej
    • Haczyki importu
    • Ważne przykłady generowania kodu w Pythonie
  • Podsumowanie

Rozdział 9. Łączenie Pythona z kodem w C i C++

  • Wymagania techniczne
  • C i C++ jako podstawa rozszerzalności w Pythonie
  • Kompilowanie i wczytywanie w Pythonie rozszerzeń napisanych w C
  • Kiedy należy używać rozszerzeń?
    • Zwiększanie wydajności kluczowych fragmentów kodu
    • Integrowanie istniejącego kodu napisanego w różnych językach
    • Integrowanie zewnętrznych bibliotek dynamicznych
    • Tworzenie wydajnych niestandardowych typów danych
  • Pisanie rozszerzeń
    • Rozszerzenia w czystym C
    • Pisanie rozszerzeń za pomocą Cythona
  • Wady korzystania z rozszerzeń
    • Dodatkowa złożoność
    • Trudniejsze debugowanie
  • Komunikacja z bibliotekami dynamicznymi bez używania rozszerzeń
    • Moduł ctypes
    • CFFI
  • Podsumowanie

Rozdział 10. Automatyzacja testów i kontroli jakości

  • Wymagania techniczne
  • Zasady programowania sterowanego testami
  • Pisanie testów z użyciem platformy pytest
    • Parametryzacja testów
    • Konfiguracje testów w platformie pytest
    • Stosowanie "fałszywych" obiektów
    • Atrapy i moduł unittest.mock
  • Automatyzacja kontroli jakości
    • Pokrycie kodu testami
    • Narzędzia do poprawiania stylu i lintery
    • Statyczna analiza typów
  • Testowanie mutacyjne
  • Przydatne narzędzia związane z testami
    • Generowanie realistycznych danych
    • Generowanie dat i czasu
  • Podsumowanie

Rozdział 11. Tworzenie pakietów i udostępnianie kodu w Pythonie

  • Wymagania techniczne
  • Tworzenie pakietów bibliotek i ich udostępnianie
    • Budowa pakietu Pythona
    • Rodzaje dystrybucji pakietów
    • Rejestrowanie i publikowanie pakietów
    • Wersjonowanie pakietów i zarządzanie zależnościami
    • Instalowanie własnych pakietów
    • Pakiety przestrzeni nazw
    • Skrypty i punkty wejścia w pakietach
  • Tworzenie pakietów aplikacji i usług do użytku w internecie
    • Manifest Twelve-Factor App
    • Korzystanie z Dockera
    • Zarządzanie zmiennymi środowiskowymi
    • Rola zmiennych środowiskowych w platformach do tworzenia aplikacji
  • Tworzenie samodzielnych aplikacji wykonywalnych
    • Kiedy samodzielne aplikacje wykonywalne są przydatne?
    • Popularne narzędzia
    • Bezpieczeństwo kodu Pythona w pakietach wykonywalnych
  • Podsumowanie

Rozdział 12. Monitorowanie pracy i wydajności aplikacji

  • Wymagania techniczne
  • Rejestrowanie błędów i logów
    • Podstawy rejestrowania logów w Pythonie
    • Zalecane praktyki z obszaru rejestrowania logów
    • Rozproszone rejestrowanie logów
    • Rejestrowanie błędów w celu ich późniejszej analizy
  • Instrumentacja kodu z wykorzystaniem niestandardowych wskaźników
    • Stosowanie aplikacji Prometheus
  • Śledzenie rozproszone aplikacji
    • Śledzenie rozproszone za pomocą Jaegera
  • Podsumowanie

Rozdział 13. Optymalizacja kodu

  • Wymagania techniczne
  • Częste przyczyny niskiej wydajności
    • Złożoność kodu
    • Nadmierne wykorzystanie zasobów i ich wyciekanie
    • Nadmierna liczba operacji wejścia - wyjścia i operacji blokujących
  • Profilowanie kodu
    • Profilowanie procesora
    • Profilowanie wykorzystania pamięci
  • Zmniejszanie złożoności przez wybór odpowiednich struktur danych
    • Przeszukiwanie listy
    • Stosowanie zbiorów
    • Stosowanie modułu collections
  • Architektoniczne kompromisy
    • Stosowanie heurystyk i algorytmów aproksymacyjnych
    • Stosowanie kolejek zadań i przetwarzania odroczonego
    • Stosowanie probabilistycznych struktur danych
    • Zapisywanie wyników w pamięci podręcznej
  • Podsumowanie

Skorowidz

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.